麦子学院Android开发教程通过NDK用C语言开发程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++代码的方法的缺点时每次建新的工程都要重新配置一遍,如果您有更方便的方法请给我留言,多谢。