android ndk 环境搭建及基本编程思路

本文主要是介绍一下android ndk环境搭建及基本编程思路。

本文测试环境为 Windows Xp3+Eclipse Indigo+jdk6.0+Android2.2+ADT1.6+android+ndk-r7b+Cygwin1.7

一、下载androidndk(以最新版本为准)

您可以下载android-ndk-r7b安装包,下载地址:

地址:http://developer.android.com/sdk/ndk/index.html

下载后解压缩到你的工作目录,例如:C:\Android\android-ndk-r7b,结果如下图:

android ndk 环境搭建及基本编程思路

Androidndk包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。

其中samples下面包含几个实例开发演示项目。

二、下载安装Cygwin

由于ndk开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:

http://www.cygwin.com/

下载后是个setup.exe文件,使用过程如下:

第一步:运行setup程序,第一步图略,直接点击Next进入下一步。

第二步:选择安装方式,第一次可以采用Install from Internet在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)

android ndk 环境搭建及基本编程思路

第三步:选择安装目录,比如C:\Android\cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。

android ndk 环境搭建及基本编程思路

第四步:设置本地包暂存路径暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。

android ndk 环境搭建及基本编程思路

第五步:设置网络连接方式,默认即可。

android ndk 环境搭建及基本编程思路

第六步:选择下载站点地址可以尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。

android ndk 环境搭建及基本编程思路

第七步:等待加载安装项载入,选择安装项编译ndk,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中红色方框所示),其它均为默认状态。

android ndk 环境搭建及基本编程思路

第八步:等待下载并安装

下载完成后会自动安装到上文设置的安装目录。

第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。

android ndk 环境搭建及基本编程思路

三、验证Cygwin环境

安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:

make-v和gcc-v

如果安装成功,会有make和gcc相关版本信息打印出来,如下图。

android ndk 环境搭建及基本编程思路

四、配置ndk路径设置

可以在cygwin中通过vim修改,也可以在windows安装目录中修改home\<你的用户名>\.bash_profile文件中最后添加环境变量

ndk=/cygdrive/c/Android/android-ndk-r7b

exportndk

其中ndk=/cygdrive/<你的盘符>/<androidndk目录>,"ndk"这个名字随便起,以后经常用不要太长。

android ndk 环境搭建及基本编程思路

重启cygwin,输入:

cd$ndk

可进入ndk对应目录说明设置正常。

android ndk 环境搭建及基本编程思路

五、编译演示工程

现在就可以编译相关ndk工程了(一些用c/c++写的程序),编译方法如下:

1、在cygwin命令行下,进入android项目工作目录:

cd$ndk

2、依次进入samples\hello-jni目录,(完整路径示例:C:\Android\android-ndk-r7b\samples\hello-jni)

3、运行

$ndk/ndk-build

注意:该命令$ndk和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$ndk/ndk-build,不要只打ndk-build。

4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 libhello-jni.so文件。

六、导入静态目标库到Android项目

编译完成后会得到*.so静态目标库后,就可以导入工程环境EclipseAndroid项目中使用,本步骤演示属于ndk目标库+AndriodAPK样式,

此外还有Android源码直接开发、直接编译方式。使用方法如下(示例):

1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考ndk对应samples下的演示代码调用方法。

或者直接将samples中的hello-jni导入到Eclipse中。

2、将ndk编译项目目录下的jni和libs文件夹拷贝到新建工程目录下,这两个文件夹要和工程中的src和res文件在同一目录下。

3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。

相关推荐