Android NDK 配置:
网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享。
要玩NDK,你或多或少要用到以下一些东西,所以先做一下准备
- 有关Eclipse下的Android与NDK配置,请网上搜,不再描述,不用Eclipse的同学请忽略。简单提示一下:网上凡是用Help>Install New Software的方法基本正确;
- 有关NDK的下载,当然是google官方的,搜索Android NDK即可,我都懒得贴出地址了;
- 如果在Windows下,会用到Cygwin,模拟Linux/Unix/Mac命令行,不管你爱不爱,必须下载安装,地址我也懒得贴出了。方法也是网上搜即可,简单提示下:Cygwin的setup-x86xxx.exe 其实是个包管理器,想要安装或卸载组件随时打开它,记得安装Devel组件,很重要。Cygwin的安装也很费时间,主要是下载需组件要时间,其home目录在Cygwin安装目录下,各盘符号表示为cygdrive/<小写盘符>形式,如E盘: cygdrive/e 没用过unix命令? 你要学一下,可能会花上一到两个小时时间。
上面步骤准备好了吗?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://android100.cnblogs.com/p/android-sdk-config.html
或者网上找找,学会写这两个文件和写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 脚本。过程可能会出现一些错误,多做一些功课和给些耐心是都可以解决的。