今天有空搭建了下androidNDK,顺便对搭建的过程进行了整理,下面就一起看下在window7(旗舰版)下搭建androidNDK的过程。
一.androidNDK简介
NDK全称:Native Development Kit。
1、NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。
二.androidNDK安装
1.下载ndk
ndk的下载地址:http://developer.android.com/tools/sdk/ndk/index.html 在Downloads中下载对应的NDK,如图2.1.1
图2.1.1
把ndk解压到一个磁盘里即可(例如:E:\AndroidNDK\下)。
2.下载cygwin
cygwin的下载地址:http://cygwin.com/setup.exe
双击setup.exe出现安装界面
点击下步。
选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。点击下一步。
选择安装目录,比如E:\DevelopmentTools\androidNDK\Cygwin,此目录是指Cygwin最终的安装目录,不是下载文件目录
点击下一步。
选择下载文件目录,暂存目录默认是放到setup.exe的同级目录下,下载后名字类似E:\Android\Softs这样格式。
点击下一步。
设置网络连接方式,点击下一步。
选择下载站点地址,起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再来),点击下一步。
等待加载完成后点击下一步。
根据个人需求安装对应的包,这里我们只安装Devel,所以点击Devel后边的Default改为install,点击下一步。
点击下一步开始下载。
耐心等待下载完成,下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约830M左右,下载完成后会自动安装到上文设置的安装目录,下载完成后最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式。安装完成后显示如图。
点击完成,完成安装。
三、验证Cygwin环境
安装完成后,运行cygwin,
第一次使用时,会创建一些用户环境文件,
在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来。
四、配置NDK
安装完成后,运行cygwin,运行如下命令
在最后配置解压的NDK路径
配置成功后输入如下命令验证
输入命令后进入NDK目录表示配置成功,再输入make -v和gcc -v可以查看对应的版本,可测试安装成功如图
到此安装配置全部结束。
五.常见问题(待完善,欢迎大家讨论)
1.-bash: /home/lenovo/.bash_profile: line 47: syntax error: unexpected end of file
在配置NDK路径时,也可以在cybwin\home\XXX(you computer name)目录下的.bash_profile中末尾添加
ANDROID_NDK_ROOT=/cygdrive/d/andorid/NDK/android-ndk-r7b
export ANDROID_NDK_ROOT
ANDROID_NDK_ROOT(可以随意命名)。当用windows自带的写字板或记事本,或用UE转化了格式打开修改后,在打开cybwin就会出现上述问题。如图
这是由于在window下和linux中回车符是不相同的导致的。
解决办法:在cygwin中输入:dos2unix -n .bash_profile .bash_profile
关闭重新打开cygwin,ok了。所以再一次提醒,不要用window里的记事本或者写字本打开修改,使用UltraEdit不要转化格式。
最后为了学习方便总结了vi常用的一些命令,附上链接:http://blog.csdn.net/u010538765/article/details/9253199