Android NDK开发环境搭建

时间:2022-12-23 17:22:44

本文是基于AndroidSDK开发环境搭建完成的基础上进行的。在搭建NDK开发环境时,我也参考了网上很多的教程,但是在搭建的时候遇到了一些问题,写这篇文章的目的仅仅是把自己遇到问题的解决办法分享给大家。
其实NDK开发与SDK开发都是Android应用开发的一系列工具的组合,只不过前者NDK比较偏重于底层开发,使用的语言是C或者C++,可以实现一些使用SDK比较难实现的功能,为SDK开发提供支持,两者相辅相成。


Android NDK安装与配置


同SDK安装和配置一样,NDK也需要先下载,下载地址:

http://developer.android.com/tools/sdk/ndk/index.html

下载后解压缩到工作目录,例如:F:\androidTools\android-ndk-r8;

在Eclipse--Windows--Preferences打开Preferences窗口,选中Android--NDK,在NDK Location下,选择之前下载的NDK存放目录,点击OK后配置完成。参考下图:

Android NDK开发环境搭建


安装Cygwin

由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要用Cygwin模拟Linux编译环境。

Cygwin的下载地址:http://www.cygwin.com/,如图:

Android NDK开发环境搭建

点击上图红框中的“setup-x86.exe”即可下载。

下载完成后点击安装:

第一步:运行setup-x86.exe程序,直接点击Next进入下一步。

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

Android NDK开发环境搭建

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

Android NDK开发环境搭建

第四步:设置本地包暂存路径。暂存目录默认是放到setup-x86.exe的同级目录下,建议放到指定的文件夹,如D:\cygwin\Downloads。安装完成后把这个文件夹打包备份,以后再配置时不用重新下载。

Android NDK开发环境搭建

第五步:设置网络连接方式。选第一个即可。

Android NDK开发环境搭建

第六步:选择下载站点地址。推荐使用国内163站点。

Android NDK开发环境搭建

第七步:等待加载安装项载入,选择安装项。

方法一:Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包。那四个单选按钮是选择下边树的样 式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,一定要去掉勾选,否则一些隐藏的包找不到,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包;

然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号,而Src项是源码,这个就没必要选了。

Android NDK开发环境搭建

方法二:点击Devel-Default,使之变成Devel-Install,展开后可以看到其下的子项被选中了(直接全下载,全选多了150M左右)。

第八步:等待下载完成

下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,下载完成后会自动安装到上文设置的安装目录。

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

Android NDK开发环境搭建

第九步:安装完成。

Android NDK开发环境搭建


验证Cygwin环境

测试一下cygwin是不是已经安装好了。
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc --version,g++ --version,make –version,gdb –version进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了.


为Cygwin配置NDK路径

第一步,在cygdrive安装目录中修改 home\<你的用户名>\.bash_profile 文件最后添加环境变量:

NDK=/cygdrive/F/androidTools/android-ndk-r8

export NDK

其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> 

(NDK这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存)

(这里还要注意的是盘符是"/"而不是"\",因为cygwind是Linux,不是windows的)


第二步,修改系统环境变量

在windows的系统环境变量中添加NDK的路径。使用“/cygdrive/F/androidTools/android-ndk-r8”这种Linux风格路径,如果使用Windows下的“F:\androidTools\android-ndk-r8”,Cygwin在编译时会发出警告。 

重启Cygwin Terminal,输入:

cd $NDK

如果输出上面配置的/cygdrive/F/androidTools/android-ndk-r8信息,则表明环境变量设置成功了。如下图:

Android NDK开发环境搭建


 用NDK来编译程序  

1、 现在我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于F:\androidTools\android-ndk-r8\samples\hello-jni(根据你具体的安装位置而定),

2、 运行Cygwin Terminal,输入命令cd /cygdrive/F/androidTools/android-ndk-r8/samples/hello-jni,进入到F:\androidTools\android-ndk-r8\samples\hello-jni目录。

3、 输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)

4、 此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!