android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家。
内容目录:
1.默认基础环境
2.NDK下载与配置
3.安装Cygwin
4.用NDK编译
5.安装CDT插件
6.安装Sequoyah插件
7.JNI编译环境配置

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

-----------------------------------------------
一、默认基础环境为已经完成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,可以备份下来。

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

 
5.设置网络连接方式。选第一个即可。
 
6.选择下载站点地址,直接选第一个163的站点就可以了,这个我下载的速度最高可以达到185k。
 
7.出现加载安装项后,点击Devel-Default,变成Devel-Install,其他设置都不用动,下一步下载。

 
8.等待下载完成,大约需要一个小时左右。下载完成后再点击下一步安装,安装也需要很长时间。

 
9.运行安装目录(D:\Cygwin)下的“Cygwin.bat”,输入:“cygcheck -c cygwin”命令,会打印出当前Cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
 
10.输入:“make –v”和,“gcc –v”命令如果检测成功,会有make和gcc相关版本信息打印出来。
11.设置NDK路径,在windows的系统环境变量中添加NDK的路径。
使用“/cygdrive/e/android/android-ndk-r8”这种Linux风格路径,如果使用Windows下的“E:\android\android-ndk-r8”,Cygwin在编译时会发出警告。
 
12.运行Cygwin命令行,可以直接使用$ndk环境变量,不用每次都手动输入目录
 
 
四、使用NDK编译程序:
 
1)编译NDK提供的sample程序hello-jni(E:\android\android-ndk-r8\samples\hello-jni)。
1.运行Cygwin,输入“cd $ndk/samples/hello-jni/”,进入到“hello-jni”工程目录。
2.输入“$ndk/ndk-build”编译。ndk-build是调用ndk的编译程序。

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文件。

2)导入NDK的hello-jni示例到Eclipse中
1.在Eclipse中新建一个Android工程HelloJni。
在Create Android Project时勾选“Create project from existing source”,Location中填E:\android\android-ndk-r8\samples\hello-jni

2.直接以Android Aplication运行com.example.hellojni.HelloJni项目。要先有.so文件才能运行起来。
 
 
五、在Eclipse中集成C/C++开发环境CDT
CDT插件可以在一个工程中同时开发基于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版本不匹配,重新下载匹配的重新安装就可以了。

另外需要重启eclipse后才生效。
安装完成重启后,在Eclispe中新建一个项目,如果出现了C/C++项目,则表明CDT插件安装成功了。
六、安装Sequoyah插件(必须先安装CDT之后才能安装这个,可以直接安装最新版2.0的)
Sequoyah插件用于设置Android工程对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的路径。

这个插件安装后也需要重启eclipse的
重启后右键之前建立的“HelloJni”项目,在“Android Tools”选项中包含“Add Native Support…”选项即成功。
七、JNI编译环境配置
现在修改“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件不会被重新编译生成。
需要给JNI项目添加编译配置和依赖库后才行。
1.转换工程:新建项目,选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。
2.选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”,点击Finish创建项目。
 
3.在“HelloJni”工程上右键,选择“属性”。配置“C/C++ Build”:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。

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

4.配置依赖库:C/C++ General ->  Paths and Symbols:在Includes下add新的GNU,C依赖路径。
“HelloJni”工程需要“E:\android\android-ndk-r8\platforms\android-8\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。 
5.将“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”,改为“Hello JNI from ZDZ!”

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

到现在你可以在一个工程中同时开发基于C/C++的Native代码和基于Java的代码,开发NDK应用和开发普通android应用感觉不到什么差别了。

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

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

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)的更多相关文章

  1. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

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

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  3. Window 下 MySQL 环境的安装

    Window 下 MySQL 环境的安装 简介: MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Manageme ...

  4. react native window下的环境搭建和调试方案

    这几天使用react native开发app,遇到一些坑,先记录下来,以后再继续补充 环境搭建 打开react native中文网,发现环境搭建特么也太复杂了,安装各种插件/软件,对于我们 编辑器+浏 ...

  5. 最新OpenCV2.4.6与VS2010开发环境搭建

    OpenCV2.4.6与VS2010开发环境搭建 由于很久没有用OpenCV了,之前用的是1.0版本和VC++6.0.现在已经到了VS2010+OpenCV2.4.6.安装使用之后,发现OpenCV的 ...

  6. 若依微服务版本 Windows下开发环境搭建

    看了若依官网的教程,搭建环境还是踩了坑,简单整理一下 1.下载地址:https://gitee.com/y_project/RuoYi-Cloud 2.本地环境(仅供参考) JDK1.8 Mysql  ...

  7. React Native在window下的环境搭建(一)

    React Native官方开发文档 以下是本人抄录的: 初次接触React Native感觉和React很像,却是有点类似,但不完全是,React Native有自己的组件对象,不过它也自定义的组件 ...

  8. cocos2dx 3.0 windows8下开发环境搭建搭建 不须要cygwin

    已经接触cocos2dx有一段时间,但一直也仅仅是看看Demo,没有真正的去写代码.由于本人仅仅是java的coder.还是半路出家的coder,编程基础太浅. 对于c++.lua也不懂.近期coco ...

  9. hadoop2.6---windows下开发环境搭建

    一.准备插件 1.自己编译 1.1 安装Ant 官网下载Ant,apache-ant-1.9.6-bin.zip 配置环境变量,新建ANT_HOME,值是E:\apache-ant-1.9.6:PAT ...

随机推荐

  1. 【转载】pygame的斜线运动

    pygame是用来写2D游戏的. 实现斜线运动,无非是在x和y两个方向上分运动的合成.x方向上的运动,当撞到边界的时候取相反速度就好了. 这里是用网球王子中的图片,以及一个网球实现,效果截图: 注意看 ...

  2. markdown转换为html

    想要自己实现markdown编辑器,欲使用markdown-it作为编辑器,有着比较多的插件,可以实现代码高亮以及对数学公式转换等功能. // Activate/deactivate rules, w ...

  3. 成功实施的APS项目故事分享---我们数据治理的心路历程

    一.故事背景 A企业是易普优APS重要客户之一,是某行业的龙头企业:APS项目历时7个月顺利上线,十个月验收!通过易普优APS的顺利实施,建成了集团的精益计划管控运营平台,树立计划的权威与指挥棒作用, ...

  4. PHP各种经典算法

    <?  //--------------------  // 基本数据结构算法 //--------------------  //二分查找(数组里查找某个元素)  function bin_s ...

  5. 使用apache的ab命令进行压测

    1. 背景:互联网发达的今天,大大小小的网站如雨后春笋,不断出现,但是想要做出一个网站很简单,但是想要做好一个网站,非常非常难,首先:网站做好之后的功能怎么样这都是次要的,主要的是你的网站能承受怎么样 ...

  6. hdu-4027线段树练习

    title: hdu-4027线段树练习 date: 2018-10-10 18:07:11 tags: acm 算法 刷题 categories: ACM-线段树 # 概述 这道线段树的题可以说是我 ...

  7. JAVAEE——宜立方商城11:sso登录注册功能实现、通过token获得用户信息、Ajax跨域请求(jsonp)

    1. 学习计划 第十一天: 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 4.Ajax跨域请求(jsonp) 2. Sso系统工程搭建 需要创建一个sso服务工程,可 ...

  8. 机器学习之路: python线性回归 过拟合 L1与L2正则化

    git:https://github.com/linyi0604/MachineLearning 正则化: 提高模型在未知数据上的泛化能力 避免参数过拟合正则化常用的方法: 在目标函数上增加对参数的惩 ...

  9. Linux内核中断处理机制

    <什么是中断> 计算停下当前处理任务,并保存现场,转而去处理其他是任务,当完成任务后再回到原来的任务中去. <中断的分类> a:软中断     软中断时执行中断指令产生的,软中 ...

  10. 浅谈期望的线性性(可加性)【CodeForces280c】【bzoj3036】【bzoj3143】

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63399955 向大(hei)佬(e)势力学(di ...