android ndk r8 r9环境配置,Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说...

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 具体图文解说。完整实际配置过程记录(原创)

一直想搞NDK开发却一直给其它事情耽搁了,參考了些网上的资料今天最终把环境搭建起来了。把过程记录下来分享给大家。

内容文件夹:

1.默认基础环境

2.NDK下载与配置

3.安装Cygwin

4.用NDK编译

5.安装CDT插件

6.安装Sequoyah插件

7.JNI编译环境配置

画了一个思维导图让大家一目了然配置过程

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3L05ESyVFNSVBRSU4OSVFOCVBMyU4NSVFNiVBRCVBNSVFOSVBQSVBNCVFNiU4MCU5RCVFNyVCQiVCNCVFNSVBRiVCQyVFNSU5QiVCRS5qcGc=.jpg

-----------------------------------------------

一、默认基础环境为已经完毕Android开发环境的搭建

本人的环境是 jdk1.6.0_07 、Eclipse3.6(Helios)、Android SDK 、 ADT 能够正常开发android应用。

要先创建android虚拟机,能够跑一个android应用起来再跑ndk的

二、Android NDK 下载与配置

下载Android NDK:http://developer.android.com/tools/sdk/ndk/index.html

近期google的网站打开都非常慢 有时候还可能打不开,须要有点耐心。

选择Windowsandroid-ndk-r8c-windows.zip233787657 bytes (104MB)

下载后解压缩到你的工作文件夹,比如:E:\android\android-ndk-r8,

samples文件夹以下包括12个实例开发演示项目。是学习的好资源。

三、安装Cygwin

C/C++的编译环境须要Linux的gcc,所以在Windows环境下用Cygwin来模拟Linux

下载地址:http://cygwin.com/install.html

随便点击一个 setup.exe 的连接就可以下载,这个仅仅是个下载的引导程序,实际内容到下一步才下载,有0.97GB须要的时间比較长的。

1.执行setup.exe程序,直接点击Next进入下一步。

2.选择安装方式。

第一次能够採用Direct Connection在线下载安装。如有现成的离线包。能够选择离线安装(Install from Local Directory)。

3.选择安装文件夹。比方D:\Cygwin。注意此文件夹是指Cygwin这个虚拟机的安装文件夹。不是下载文件暂存文件夹,也不是NDK的文件夹。

4.设置本地包暂存路径。暂存文件夹默认是放到setup.exe的同级文件夹下 我的是http%3a%2f%2fmirrors.163.com%2fcygwin%2f。能够备份下来。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFOSU4MCU4OSVFNiU4QiVBOSVFNyVBNiVCQiVFNyVCQSVCRiVFNSVBRSU4OSVFOCVBMyU4NS5qcGc=.jpg

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFOSU4MCU4OSVFNiU4QiVBOSVFNyVBNiVCQiVFNyVCQSVCRiVFNSVBRSU4OSVFOCVBMyU4NSVFNSU4QyU4NSVFOCVCNyVBRiVFNSVCRSU4NC5qcGc=.jpg

注:第一次安装会弹出个警告框,不要管他,点击确认就能够了。

5.设置网络连接方式。选第一个就可以。

6.选择下载网站地址,直接选第一个163的网站就能够了。这个我下载的速度最高能够达到185k。

7.出现载入安装项后,点击Devel-Default,变成Devel-Install。其它设置都不用动,下一步下载。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3L2RldmVsRGVmYXVsdCVFNSU4RiU5OCVFNiU4OCU5MEluc3RhbGwuanBn.jpg

8.等待下载完毕。大约须要一个小时左右。下载完毕后再点击下一步安装。安装也须要非常长时间。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSVBRSU4OSVFOCVBMyU4NWN5Z3dpbiVFOCVCRiU4NyVFNyVBOCU4Qi5qcGc=.jpg

9.执行安装文件夹(D:\Cygwin)下的“Cygwin.bat”,输入:“cygcheck -c cygwin”命令,会打印出当前Cygwin的版本号和执行状态,假设status是ok的话。则cygwin执行正常。

10.输入:“make –v”和。“gcc –v”命令假设检測成功,会有make和gcc相关版本号打印信息出来。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFOSVBQSU4QyVFOCVBRiU4MWN5Z3dpbiVFNSVBRSU4OSVFOCVBMyU4NSVFNiU5OCVBRiVFNSU5MCVBNiVFNiU4OCU5MCVFNSU4QSU5Ri5qcGc=.jpg

11.设置NDK路径,在windows的系统环境变量中加入NDK的路径。

使用“/cygdrive/e/android/android-ndk-r8”这样的Linux风格路径。假设使用Windows下的“E:\android\android-ndk-r8”。Cygwin在编译时会发出警告。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFOSU4NSU4RCVFNyVCRCVBRW5kayVFNyU4RSVBRiVFNSVBMiU4MyVFNSU4RiU5OCVFOSU4NyU4Ri5qcGc=.jpg

12.执行Cygwin命令行,能够直接使用$ndk环境变量。不用每次都手动输入文件夹

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNyU5NCVBOCVFNyU4RSVBRiVFNSVBMiU4MyVFNSU4RiU5OCVFOSU4NyU4RiVFOCVCRiU5MCVFOCVBMSU4Q2NkJUU1JTkxJUJEJUU0JUJCJUE0LmpwZw==.jpg

四、使用NDK编译程序:

1)编译NDK提供的sample程序hello-jni(E:\android\android-ndk-r8\samples\hello-jni)。

1.执行Cygwin。输入“cd $ndk/samples/hello-jni/”,进入到“hello-jni”project文件夹。

2.输入“$ndk/ndk-build”编译。ndk-build是调用ndk的编译程序。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNyU5NCVBOE5ESyVFNyVCQyU5NiVFOCVBRiU5MWhlbGxvLWpuaS5qcGc=.jpg

3.用ls命令查看libs/armeabi/下是否生成了so文件。有libhello-jni.so说明ndk执行正常。

$ ls libs/armeabi/

gdb.setup  gdbserver  libhello-jni.so

也能够到E:\android\android-ndk-r8\samples\hello-jni\libs\armeabi文件夹下看有没有生成的.so文件。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNiU5RiVBNSVFNyU5QyU4QiVFNyU5NCU5RiVFNiU4OCU5MCVFNyU5QSU4NHNvJUU2JTk2JTg3JUU0JUJCJUI2LmpwZw==.jpg

2)导入NDK的hello-jni演示样例到Eclipse中

1.在Eclipse中新建一个AndroidprojectHelloJni。

在Create Android Project时勾选“Create project from existing source”,Location中填E:\android\android-ndk-r8\samples\hello-jni

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSU4OCU5QiVFNSVCQiVCQWppbiVFNSVCNyVBNSVFNyVBOCU4QjEuanBn.jpg

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSU4OCU5QiVFNSVCQiVCQWppbiVFNSVCNyVBNSVFNyVBOCU4QjIuanBn.jpg

2.直接以Android Aplication执行com.example.hellojni.HelloJni项目。要先有.so文件才干执行起来。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSVBRiVCQyVFNSU4NSVBNWVjbGlwc2UlRTglQkYlOTAlRTglQTElOEMlRTclQkIlOTMlRTYlOUUlOUMuanBn.jpg

五、在Eclipse中集成C/C++开发环境CDT

CDT插件能够在一个project中同一时候开发基于C/C++的Native代码和基于Java的代码。加上Sequoyah插件能够一次编译两部分代码。

下载地址:http://www.eclipse.org/cdt/downloads.php

不同eclipse版本号要下载相应的包,否则安装不了。

Help-->About Eclipse 下能够看到自己用的版本号,我的是 Version: Helios Service Release 2 即Helios版本号

http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/helios/dist/cdt-master-7.0.2.zip

cdt-master-7.0.2.zip:这个是CDT的离线安装包。(因为文件比較大推荐使用离线包,7.0.2的54.8M,8.1.1的103MB)

安装:Eclipse -> Help -> Install New Software。点击add。

Name:CDT_版本号。

Location:点击Archive,定位到下载的“cdt-master-7.0.2.zip”文件。

假设Location的以下出现“Duplicate location”错误。请到Window -> preferences -> Install/Update -> Avaliable Software Site中找到remove掉。

假设出现缺少eclipse包说明你下载的版本号和eclipse版本号不匹配,又一次下载匹配的又一次安装就能够了。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSVBRSU4OSVFOCVBMyU4NUNEVCVFNiU4RiU5MiVFNCVCQiVCNiVFNSVBNCVCMSVFOCVCNCVBNSVFNSU4RSU5RiVFNSU5QiVBMC5qcGc=.jpg

另外须要重新启动eclipse后才生效。

安装完毕重新启动后,在Eclispe中新建一个项目。假设出现了C/C++项目。则表明CDT插件成功安装了。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSVBRSU4OSVFOCVBMyU4NUNEVCVFNiU4RiU5MiVFNCVCQiVCNiVFNiU4OCU5MCVFNSU4QSU5Ri5qcGc=.jpg

六、安装Sequoyah插件(必须先安装CDT之后才干安装这个,能够直接安装最新版2.0的)

Sequoyah插件用于设置Androidproject对Native开发的支持。

官方网址:http://www.eclipse.org/sequoyah/downloads/

打开上面网址就能够看到具体的安装说明了

Location:http://download.eclipse.org/sequoyah/updates/2.0/

For Helios SR2 Sequoyah version: http://download.eclipse.org/sequoyah/updates/1.0.2/

注:仅仅是安装1.0.2的没有出来“本机开发”的配置所以没法用,本人又一次安装了2.0的能够了,这个应该直接安装最新版2.0的就能够了。

在安装界面不要勾选“Group items by category”复选框。选中出现了列表为空(There are no categorized items)的情况。

在“window –> preferences ->Android -> 本机开发”中加入NDK的路径。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFOSU4NSU4RCVFNyVCRCVBRWVjbGlwc2UlRTQlQjglOEJOREslRTglQjclQUYlRTUlQkUlODQuanBn.jpg

这个插件安装后也须要重新启动eclipse的

重新启动后右键之前建立的“HelloJni”项目。在“Android Tools”选项中包括“Add Native Support…”选项即成功。

1d26d36ba0b872070e0cfec3c24cc685.png

七、JNI编译环境配置

如今改动“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件不会被又一次编译生成。

须要给JNI项目加入编译配置和依赖库后才行。

1.转换project:新建项目,选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。

进入“下一步”。

2.选中你刚才建的“HelloJni”project,以下左边选“Makefile project”右边选“Cygwin GCC”,点击Finish创建项目。

2da940a1195f0c0c0f6d43556e639170.png

3.在“HelloJni”project上右键,选择“属性”。

配置“C/C++ Build”:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。

设置Build command为“bash E:\android\android-ndk-r8\ndk-build”。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNiU5QiVCNCVFNiU5NCVCOWJ1aWxkJUU1JTkxJUJEJUU0JUJCJUE0LmpwZw==.jpg

4.配置依赖库:C/C++ General ->  Paths and Symbols:在Includes下add新的GNU,C依赖路径。

“HelloJni”project须要“E:\android\android-ndk-r8\platforms\android-8\arch-arm\usr\include”就可以,以后依据不同项目选择不同的依赖库。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNSVBMiU5RSVFNSU4QSVBMGMlRTQlQkUlOUQlRTglQjUlOTYlRTUlQkElOTMuanBn.jpg

5.将“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”,改为“Hello JNI from ZDZ!”

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNCVCRiVBRSVFNiU5NCVCOWMlRTYlOTYlODclRTQlQkIlQjYlRTUlODYlODUlRTUlQUUlQjkuanBn.jpg

6.执行后在模拟器上输出的字符串为“Hello JNI from ZDZ!”即说明配置成功。

L3Byb3h5L2h0dHBzL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS96ZHo4MjA3LyVFNCVCRiVBRSVFNiU5NCVCOWMlRTUlODYlODUlRTUlQUUlQjklRTUlOTAlOEUlRTglQkYlOTAlRTglQTElOEMlRTclQkIlOTMlRTYlOUUlOUMuanBn.jpg

到如今你能够在一个project中同一时候开发基于C/C++的Native代码和基于Java的代码,开发NDK应用和开发普通android应用感觉不到什么区别了。

欢迎大家评论讨论。如有不清楚的能够在评论里面提出来。将会更新补充清楚,已经补充了部分cygwin安装过程的截图和注意事项。

有空再整理一篇用NDK移植ffmpeg的文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值