一、下载android NDK
您可以下载NDK r4 for Windows或NDK r5 for Windows安装包,下载地址:
地址: http://developer.android.com/sdk/ndk/index.html
下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图:
Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。
二、下载Cygwin
由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:
http://www.cygwin.com/
下载setup.exe文件。 http://cygwin.com/setup.exe
使用过程如下:
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
第三步:选择安装目录,比如E:\Android\cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。
第四步:设置本地包暂存路径
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似E:\Android\Softs这样格式。
第五步:设置网络连接方式
第六步:选择下载站点地址
起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。国内的话,我感觉163的速度不错。
第七步:等待加载安装项载入,选择安装项
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包
第八步:等待下载完成
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约830M左右,下载完成后会自动安装到上文设置的安装目录。
提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。
三、验证Cygwin环境
安装完成后,运行cygwin,
第一次使用时,会创建一些用户环境文件,
在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来,
四、编译示例
1、设置NDK路径。
在windows的系统环境变量中添加NDK的路径。如:e/Andriod/tools/android-ndk-r7
2、也可以不添加,每次打开目录时,输入该路径即可。
/cygdrive/e/Andriod/tools/android-ndk-r7
四:用NDK来编译程序
1、现在我们用安装好的NDK来编译一个NDK提供的示例的程序。
我们选择ndk自带的例子hello-jni,我的位于android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定),
2、运行cygwin,输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\android-ndk-r5\samples\hello-jni目录。
3、输入 ../ndk-build ,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。(ndk-build是调用ndk的编译程序)
错误:
Android NDK: Host 'awk' tool is outdated。
找到目录
E:\Android\tools\android-ndk-r7\prebuilt\windows\bin\awk.exe:
删除awk。(为保险起见可先cp一份),重新ndk-build
成功编译:
4、此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。
hello-jni目录中多了一个libs目录。打开目录,发现到so文件。
导入示例s到Android项目
ndk自带例子是无法直接导入的,需要使用方法如下(示例):
1、在Eclipse中新建一个工程HelloJni。
在
eclipse
中通过
Create project from existing source
方法建立起
hello-jni
项目。需要注意的是在选择
API level
时需要选择
1.5
或更高的版本。如图所示:
2、导入成功后,目录。
3、运行该代码
五:在eclipse中集成c/c++开发环境
1、装Eclipse的C/C++环境插件:CDT。
首先登录 http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址。
如图,首先是一个Eclipse C/C++ IDE Indigo SR-1的下载链接,该链接是用于下载自带集成了CDT插件的Eclipse开发环境,如果当前计算机上没有安装任一版本的Eclipse,则可以选择下载安装此版本Eclipse,则无需再另外安装CDT。
如
果已经安装了Eclipse Indigo,则可以使用第二个连接“p2 software repository”在Eclipse的Help菜单下选择Install New Software并复制如上所述链接进行在线安装。
2、在线安装。然后点Help菜单,找到Install New Software菜单
3、点击Add按钮,把取的地址填进去,出来插件列表后,选Select All,然后选择下一步即可完成安装。
勾选
Group items by category
,会按分类出现供安装的组件。此处可以不需要安装所有的组件,推荐勾选
CDT Main Features
分类并勾选
CDT Optional Features
下的“
C/C++ Development Platform
”、“
C/C++ DSF GDB Debugger Integration
”、“
C/C++ GCC Cross Compiler Support
”、“
C/C++ GNU Toolchain Build Support
”、“
C/C++ GNU Toolchain Debug Support
”、“
Eclipse Debugger for C/C++
”、“
Miscellaneous C/C++ Utilities
”这些组件,其他组件可以在需要用的的时候再进行安装。
3、离线安装
如果在线安装的方法由于网络原因或者其他原因不能够成功完成,则可以通过下载离线安装包的方式进行安装,首先需要通过如图13-10中最下方的链接下载CDT安装包,例如目前最新的8.0.1版本,下载到本地后,在如图13-11所示的界面中点击地址栏右方的Add…按钮,然后点击Archive按钮并定位到刚下载的cdt-master-8.0.1.zip压缩包,再进行安装即可。
4、安装完成后,在eclispe中右击新建一个项目,如果出现了c/c++项目,则表明你的CDT插件安装成功啦!
六、使用Sequoyah
插件来配置。
1、Sequoyah插件的官方下载点为http://www.eclipse.org/sequoyah/downloads/,在该网页上同样提供了用于在线安装的update site地址以及安装包的下载地址,需要注意的是在安装界面要确认Group items by category复选框处于未选中状态,否则可能出现列表为空(There are no categorized items)的情况。全部勾选列出的安装包并完成安装。
http://download.eclipse.org/sequoyah/updates/2.0/
Sequoyah安装完成后,
添加ndk路径。
在windows-》preferences。
右键点击任意的Android Project会发现在Android Tools中多出了一个“Add Native Support…”选项
Add Native Support…
点击后会弹出一个简单的设置界面。
JNI编译环境配置
对于jni项目,需要添加c编译以及依赖库。
右击项目-》Properties。
编译设置:
在弹出界面中选择c/c++Build。在builder setting选项卡的build command输入 “bash /ndk-build" 。如下图
依赖库
选择Gennera-》paths and。。。-》includes选项卡,选择GNU c。添加依赖路径
\android-ndk-r7\platforms\android-8\arch-arm\usr\include
参考:
http://www.cnblogs.com/hummersofdie/archive/2011/03/01/1967996.html windows系统上安装与使用Android NDK r5
http://www.metsky.com/archives/525.html Windows环境下Android NDK环境搭建