zhaazha 2013-10-28
Android NDK 配置:
网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享。
要玩NDK,你或多或少要用到以下一些东西,所以先做一下准备
上面步骤准备好了吗?Android NDK r9的配置就是不用配置,呵呵。好吧,我再说详细一点,其实网上说的一些设置啊,make啊,都已经不需要,直接把下载回来的包解压即可。存放目录不要有空格,这点很重要,让你省去很多麻烦,信我。
在r4版本之前,要求你进行
build/host-setup.sh
现在已经没有了,即使你要找也找不到这个脚本;
在Cygwin里记得设置好ndk目录变量,例如输入cd $NDK就直达NDK目录,很方便,信我,你会在之后经常用到它。
NDK怎么使用?
先要在Android项目下新建jni目录,把c或c++脚本写成组件,例如mymodule.c,同时写一个Android.mk来描述它,mymodule.c和Android.mk其实都是文本文件,用你喜欢的编辑器编辑它们,但具体怎么弄,看别人写的:《关于Android NDK中调用第三方的动态库》http://blog.csdn.net/fantasyhujian/article/details/8554182 或者网上找找,学会写这两个文件和写Java接口就可以了。
编译C组件
完成上一步后,才可到达这里,相信你在网上其它地方看到很多教程方法并且实践了,来到里是很不容易的,但如果没有,你看到这里是没有意义的。
编译C组件的方法其实也很简单,如果只是入门,只要把c文件和mk文件放在Eclipse项目下的jni即可,不要放到别的地方,至少目前不要。方法是:
通过Cygwin进入项目目录,就是那个AndroidManifest.xml所在的项目根目录。在Cygwin上一个一个输入目录名很费时,教你一个快捷方法,把目录拖到Cygwin中就可以得到正确的字符串,cd进去就可。记住,一定要进入项目根目录,然后,执行ndk目录下的ndk-build,因为上面设置了目录别名,所以我只要这样即可:
$NDK/ndk-build
接着就会出现类似
Compile xxxxxx
的信息,没错误的话,项目根目录下会生成libs/libxxxx.so文件。
非ARM架构CPU的编译
运行项目用的如果是Genymotion或者非ARM架构CPU的模拟器,会报错,不怕,只要编译时加上APP_ABI=x86 即可:
$NDK/ndk-build APP_ABI=x86
结语
至此,ndk的使用就是如此简单,关键还是$NDK/ndk-build 脚本。过程可能会出现一些错误,多做一些功课和给些耐心是都可以解决的。