由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设备、接口、驱动控制的应用开发,不得不使用到本文的NDK开发环境(基于Android源码或内核源码修改),开发语言使用C/C++,NDK开发更接近于Linux开发,需要更多关于Linux应用编程知识。
本文演示环境:Windows 8+Cygwin+NDK r7
一、下载android NDK
您可以下载NDK r4 for Windows或NDK r5 for Windows安装包,下载地址:
地址:http://developer.android.com/sdk/ndk/index.html (被墙的请自行翻墙)
下载后解压缩到你的工作目录,例如:D:\android-ndk-r7-windows
二、下载Cygwin
由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境
下载地址:http://www.cygwin.com/
下载后是个setup.exe文件,使用过程如下:
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
第三步:选择安装目录,比如C:\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。
第四步:设置本地包暂存路径
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似http%3a%2f%2fcygwin.petsads.us%2f这样格式。
第五步:设置网络连接方式
第六步:选择下载站点地址
起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。
第七步:等待加载安装项载入,选择安装项
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
第八步:等待下载完成
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时(请耐心等待^_^),下载后压缩包约750M,下载完成后会自动安装到上文设置的安装目录。
PS:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)这样就不用再下多次文件了。
三、验证Cygwin环境
安装完成后,先运行Cygwin一次,以便创建一些用户环境文件,分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来,如下图。
四、配置NDK路径设置
可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量
NDK=/cygdrive/d/android-ndk-r7-windows
export NDK
其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,"NDK"这个名字随便起,以后经常用不要太长。
重启cygwin,输入:
cd $NDK
可进入ndk对应目录说明设置OK。
五、编译演示工程
现在就可以编译相关NDK工程了(一些用c/c++写的程序),编译方法如下:
1、在cygwin命令行下,进入android项目工作目录:
cd $NDK
2、依次进入samples\hello-jni目录,(完整路径示例:D:\android-ndk-r7-windows\samples\hello-jni)
3、运行
$NDK/ndk-build
注意:该命令$NDK和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$NDK/ndk-build,不要只打ndk-build。
4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。