[Android实例] android 的NDK在Windwos环境搭建

NDK的Windwos环境搭建Eclipse版本是3.6以上的   
一、下载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路径>/ndk-build" 。如下图

依赖库 选择Gennera-》paths and。。。-》includes选项卡,选择GNU c。添加依赖路径
\android-ndk-r7\platforms\android-8\arch-arm\usr\include

相关推荐