下面内容均是基于Linux下到设置,如需要在Windows下设置,可参考关于Cygwin的使用。
部分转自:http://eshock.blogbus.com/logs/61459223.html
前言
Android系统中的应用程序都是用Java开发的。Android NDK使我们能够在android上使用C/C++开发的原生代码。有两个理由使用NDK:
一是合理的重用现有的代码;
二是在程序中某些关键的部分提高执行效率。
这里先讲几个符号的约定:
<project> - 你的Android应用程序工程的目录
<ndk> - 你的ndk安装的目录
捷径
这里先扯一句题外话 -- 如果你不需要使用NDK开发,只是需要使用第三方用NDK开发的库,那么你只需要这样做:
把第三方提供的libxxx.so放到你的<project>/libs/armeabi/下, 然后在程序随便什么地方中加入
Java代码
static {
System.loadLibray("xxx");
}
就可以使用该库了。
安装NDK
NDK的安装很简单:
1. 首先要将SDK升级至最新,然后下载ndk(可能要翻下墙,恩恩)将它解压到某个目录<ndk>下。
其实,下载地址没有被和谐,输入
http://dl.google.com/android/ndk/xxxx.zip是可以直接下载的
用在线代理看下到 http://developer.android.com/sdk/ndk/
最新的版本,例如:
把xxxx替换成图中的版本号:
http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip
直接下载即可
2. 运行: <ndk>/build/host-setup.sh
这步已经不必要了
However, this step has been removed in release 4 (a.k.a. r4).
注意,应养成读文档的习惯,文档中往往都对本软件或者包的使用有详细说明。
笔者最初按一本Android的参考书来做,安装了上面讲的一个较老版本,然后需要运行 /build/host-setup.sh命令,然后出现过诡异现象,后来Google到方法(http://blog.chinaunix.net/u3/114712/showart_2246264.html),虽然最终解决了,但是还是推荐用新的版本,无论是ndk还是常用的sdk,更新都是比较快的,所以学习的时候,多网络下,多去官方网站看看,与大牛们多做交流。
3. 把<ndk>加入到环境变量中,然后到<ndk>/samples/hello-jni/下运行ndk-build,看能否生成
libhello-jni.so
关于环境变量的设置
首先通过命令:gedit ~/.bashrc进入编辑,在最后一行敲入下面内容,其中/usr/local......显然为sdk或者ndk的安装路径,另注意sdk中:usr/lib/eclipse:$PATH 在Linux中,以":"来作为间隔,当然也需要你下好eclipse,在Ubuntu中,用软件中心搜一下就能下到eclipse,然后按照Windows下安装Android ADT和SDK的方法安装就行了。
#android sdk
export PATH=/usr/local/android-sdk/tools:usr/lib/eclipse:$PATH
#android ndk
export PATH=$PATH:/usr/local/android-sdk/android-ndk-r4b
NDKROOT=/usr/local/android-sdk/android-ndk-r4b
export NDKROOT
保存退出后,命令: source ~/.bashrc 保存修改(既然在Gedit中保存过了,是否就可以不用了呢,有待验证)
(上面两句设置后)以后可在命令行敲入:cd $NDKROOT
就会发现,进入了NDKROOT下设置的路径,如此可方便很多,可进行推广应用。
环境变量的设置还有其他方法,我们会在后面的文章中转载一些文章做些说明。
4. 如果成功的话就OK了,如果失败的话检查一下你是不是下载了正确的ndk版本(例如你的操作系统是linux而下载了windows版的ndk).