麦子学院Android开发教程通过NDK用C语言开发程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用C/C++开发Android应用需要通过NDK(Native Development Kit),网上对于NDK的教程已经有很多了,windows下大多要自己配置cygwin和MinGW,非常折腾。

新的NDK已经不需要折腾这些了,所以笔者决定基于新的NDK写一个入门教程。

同本系列上篇教程,不假设本文读者懂Java或C++,只假设读者会上网、下载、解压等基本操作。

本文只讨论入门内容,包括开发环境如何配置,代码如何编辑运行。

本文以Windows为例,在Linux下操作几乎一样。

在开始正题之前,强调一下,对于大多数应用使用C/C++开发Android应用并不能提升性能,因为C/C++与Java之间的调用有不小的开销。

主要是下面两类情况需要使用NDK:
1. 代码里有非常耗CPU但占用内存小的部分可以用C/C++编写,比如信号处理算法。

2. 将已有的C/C++应用移植到Android平台。

引用google官网的话:不要仅仅因为你偏好C/C++而使用NDK。

本文的大部分内容包括下载链接都包含在官方教程,如果
你英文还行,直接看这个网页就行。

当然本文并不是官方教程的简单翻译。

好的,开始正题。

一、下载安装NDK
官方下载地址就在官方教程里
/tools/sdk/ndk/index.html,下载对应操作系统、对应
位数的不带legacy字样的压缩包下载就行了。

如果你被盾了,去麦子学院找找吧,地址是:。

32位64
位都有,是以android-ndk开头的zip包。

下载完成后进行解压,得到一个android-ndk-r9文件夹,可以对它改名,但完整目录名都不要有空格或中文。

解压时如果问你是否覆盖选是。

这样NDK的安装就搞定了,什么都不需要配置,happy。

下文里我假设你解压后的文
件夹全名为<ndk>。

二、生成一段测试代码
打开eclipse,点击菜单File-->New-->Project,选择Android Project From Existing Code,点Next。

在弹出的窗口里,点击RootDirectory右边的Browse,选择<ndk>\samples\hello-jni,之后在下面找到的工程里选择HelloJni,取消tests。

其它选项使用默认就好。

完成
后点Finish。

接下来,打开DOS窗口(开始菜单-->运行-->cmd),cd到<ndk>\samples\hello-jni 目录,输入<ndk>\ndk-build,开始编译C++代码。

然后就可以运行这个工程了。

如果你不知道如何运行Android代码,请参考我在麦子
学院的上一篇教程,本文不再述,地址是,如果想系统的学
习的话就去Android在线培训吧/career/11,这里就不多说了。

运行结果出来后,你可以小改一下代码,C++代码在HelloJni工程的jni\hello-jni.c里,可以在eclipse里直接编辑。

你可以尝试将字符串Hello from JNI !改为其它的,然后再重新运行<ndk>\ndk-build,再重新运行应用看看字符串是否发生了改变。

注意直接用中文字符是不行的,这里不深入讨论。

如果你对于每次要打开DOS窗口输入命令觉得很不爽,你可以在工程目录下建一个批
处理文件调用ndk-build进行编译。

如果你希望直接在eclipse里编译,那欢迎进入下一
章节。

三、在eclipse里直接编译C代码
如果你能接受在命令行里编译C代码,可以跳过本章节。

要直接在eclipse里编译C代码,需自己配制一个编译方法调用ndk-build。

方法如下。

在eclipse左栏右击HelloJni,选择Properties,弹出的对话框里左侧选择Builders,点击New。

再在弹出的对话框里双击Program。

在接下来弹出的窗口里,Name中随便给编译方法取个名字,比如NDK_Builder,Main选项卡中,Location是编译命令,点Browse File System选择<ndk>\ndk-builder.cmd。

Working Directory输入${workspace_loc:/HelloJni},如果你换了工程名就将HelloJni替换为你的工程名。

其它用默认。

别急着点OK,还没配完。

再点击Refresh选项卡,点击Refresh resources upon completion,选择The entire workspace。

Environment选项卡不管,再点Build Options选项卡,勾选During manual builds,勾选During auto builds,勾选Specify working set of relevant resources,点按钮Specify Resources,选择工程(这里是HelloJni)目录里的jni子目录。

点Finish,点OK,再点OK。

这样一来每次代码发生变动时就能自动编译了。

如果你希望手动编译,点击eclipse菜
单的Project-->Build Automatically可以关闭自动编译(再点一次启动自动编译)。

关闭自动编译后,左栏右击工程弹出的菜单里就会多出Build Project菜单项,点它开始编译。

本方法可以在eclipse里直接调用编译器,并可实现自动编译。

缺点时建新的工程之后
你得重新添加编译方法,即将本章节重新做一遍。

总结
小结一下,本文介绍了如何利用NDK使用C/C++进行Android应用开发,内容包括
安装NDK、生成示例代码、(可选)在eclipse中配置编译器。

要注意的地方有:
1. 不需要自己折腾Cygwin,MinGW等toolchain。

2. NDK解压之后的目录名不要包含空格或中文。

另外本文中第三章节介绍的配置eclipse自动编译C/C++代码的方法的缺点时每次建新的工程都要重新配置一遍,如果您有更方便的方法请给我留言,多谢。

相关文档
最新文档