android NDK入门 windows下安装cygwin
一、Android NDK环境简介
Android NDK 是运行于Android 平台上的Native Development Kit 的缩写。
Android 应用开发者可以通过NDK 调用C 或C++ 本地代码。
更多介绍参见:http://developer.android.com/sdk/ndk/1.5_r1/index.html
二 、搭建Android NDK环境
安装cygwin
要在Windows 平台上进行NDK的开发,需要安装cygwin(一个在windows平台上模拟linux的软件),NDK 编译需要用到Cygwin 中的make 和gcc, 所以先来下载并安装Cygwin 关于cygwin 安装比较复杂,其下载地址:http://www.cygwin.com/
安装步骤:
1.选择安装方式:
1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。
2、选择第一项,然后点击下一步:
3、选择要安装的目录,注意,最好不要放到有中文和空格的目录里,似乎会造成安装出问题,其它选项不用变,之后点下一步:
4、上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目 录,直接点下一步就可以:
5、此时你共有三种连接方式选择:
1) Direct Connection:直接连接。
2) Use IE5 Settings:使用IE的连接参数设置进行连接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。
用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,
6、 这是选择要下载的站点,在提供的下载站点中选择一个,选择后点下一步
7、 此时会下载加载安装包列表
8、Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包。那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包
9、 然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号,而Src项是源码,这个 就没必要选了。
10、 下面测试一下cygwin是不是已经安装好了。
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状 态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc –version,g++ --version,make –version,gdb –version进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!

安装 Android NDK
可到Android官网下载:http://developer.android.com/sdk/ndk/index.html
注意选择相应的版本下载,下载后将其解压就可以了。
配置cygwin,用UtriaEdit打开cygwin安装目录下的home/<你的用户名>/.bach-profile文件,在后面加上
NDK=/cygdrive/<NDK安装路径>
export NDK

两行,也可以在windows 下添加 环境变量 $NDK=<NDK安装路径>。
注意:这里如果是中文OS 使用记事本或者写字板打开编辑后,重新启动Cygwin 会报错(编码不同)。
(这部有可能不成功 需要用一个dos2unix.exe把bash_profile这个文件转下编码,具体下载地址大家自己找找) 我直接用的 notepad++ 修改的没有问题。
至此,我们就可以用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于d/android-ndk-r7c/samples/hello-jni (根据你具体的安装位置而定),
运行cygwin,输入命令cd /cygdrive/d/android-ndk-r7c/samples/hello-jni,进入到d/android-ndk-r7c/samples/hello-jni目录。
输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)
如图:


现在我们终于可以用NDK来编译完成 jni 例子了 。 以上的需要命令来编译,下就用Eclipse CDT 插件来完成
安装CDT插件
CDT是一个使Eclipse支持C/C++的插件。这是下载地址:http://www.eclipse.org/cdt/downloads.php
可以通过在Eclipse 中 help > Install New Software 中安装, 现在,进入Help – Install New Software菜单项,增加一项:CDT - http://download.eclipse.org/tools/cdt/releases/helios, 等待更新项目树加载,然后选中Programming Languages分支下的Eclipse C/C++ Development Tools,然后点击Next按钮。按照后续的提示,接受缺省的选项,最后必须接受许可,以便让Eclipse完成更新。完成后,你将会看到要求重启Eclipse的提示,点击Yes按钮,等待Eclipse重启。现在你的Eclipse就支持C/C++了。
也可以下载插件到本地 ,从本地安装插件。(网络有时候比较。。。)
注意,下载对应 Eclipse 版本的插件 附正版本图

配置C/C++的编译器
1、 打开eclipse,导入ndk自带的hello-jni例子,右键单击项目名称,点击Properties,弹出配置界面,之后再点击Builders,弹出项目的编译工具列表,之后点击New,新添加一个编译器,点击后出现添加界面,选择Program,点 击OK
2、出现了添加界面,首先给编译配置起个名字,如:C_Builder
设置Location为<你cygwin安装路径>\bin\bash.exe程序,例如:E:\cygwin\bin\bash.exe,设置Working Directory为<你cygwin安装路径>\bin目录,例如:E:\cygwin\bin
设置Arguments为
--login -c "cd /cygdrive/d/android-ndk-r7c/samples/hello-jni && $NDK/ndk-build"

上面的配置中 d/android-ndk-r7c/samples/hello-jni 是你当前要编译的程序的目录,$NDK是之前配置 的ndk的环境变量,这两个根据你具体的安装目录进行配置,其他的不用变,Arguments这串参数实际是 给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序
3、接着切换到Refresh选项卡,给Refresh resources upon completion打上钩

4、然后切换到Build Options选项卡,勾选上最后三项

5、之后点击Specify Resources按钮,选择资源目录,勾选你的项目目录即可

6、 最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:如果你配置的编译器在其它编译器下边,记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改

7、 编译配置也配置完成啦,现在来测试一下是否可以自动编译呢,当你点击 ok 完成之后 其实在console 就可以看到 自动编译信息
如图:

打开项目jni目录里的hello-jni.c文件把提示Hello from JNI!改成其他的文字:如:Hello,My name is 。。。。,然后再模拟器中运行你的程序,模拟器中应该就显示了你最新修改的文字! 如果以上的步骤都没错的话。
请参考 http://blog.csdn.net/janronehoo/article/details/7497040
android NDK入门 windows下安装cygwin的更多相关文章
- windows下安装cygwin及配置(转)
reference:https://cygwin.com/install.html 对比:MinGW vs. CygWin https://www.cnblogs.com/findumars/p ...
- Windows下安装Cygwin及包管理器apt-cyg(转)
本文为转载文章: http://www.2cto.com/os/201212/176551.html Cygwin可以在Windows下使用unix环境Bash和各种功能强大的工具,对于Linux管理 ...
- 入门-windows下安装ETH挖矿
对刚入门的区块链开发者来说,刚开始可以在windows本地搭建私有链,便于操作,毕竟,要想真正挖到币还是有难度的,下面以ETH为例,在windows环境下安装并实现挖矿. 步骤一.安装geth环境.下 ...
- Windows下安装Cygwin
1.去官网下载Cygwin http://www.cygwin.com/ 注意32位和64位的选择,完了直接点击exe文件开始安装. 2.安装 (1)“下一步”: (2)“Install form I ...
- Vim入门——Windows下安装
下载页面:https://www.vim.org/download.php Windows选用的是MS-Windows: 下图为展示: 因为最近被墙,镜像貌似没中国内陆地区,因此,选择使用GitHub ...
- 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境
在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环境,2013-8-1更新. 一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86 ...
- ElasticSearch入门 第一篇:Windows下安装ElasticSearch
这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 :Windows下安装ElasticSearch
这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- Windows 平台下安装Cygwin后,sshd服务无法启动
Windows 平台下安装Cygwin后,sshd服务无法启动 系统日志记录信息: 事件 ID ( 0 )的描述(在资源( sshd )中)无法找到.本地计算机可能没有必要的注册信息或消息 DLL 文 ...
随机推荐
- HTTP1.0和HTTP1.1的主要区别是
HTTP/.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象 HTTP/.1默认使用持久连接(然而,HTTP/.1协议的客户机和服务器可以配置成使用非持久连接)在持久连接下, ...
- java的final用法
转自:http://blog.163.com/maomaoyu_1012/blog/static/19060130520116269329894/ 1. 修饰基础数据成员的final ...
- ****php:require_once(dirname(__FILE__)."/./config_uc.php");
Q:麻烦清楚地讲解一下这句的意思,具体路径是怎样的,这个文解在 根目录,如果我想放在根目录下的tieba文件夹里,应该怎么修改/./ 这个是表示什么? A: require_once(dirname( ...
- 【Python】 用python实现定时数据解析服务(前言)
一.Why do it? 背景:项目里上传上来的数据都是未解析的数据,而且数据量还算挺庞大的,每天上传的数据有5kw左右,如果用数据库自带的作业来解析的话,数据库会造成严重的阻塞.因此打算把数据读到外 ...
- Logcat打印调试信息
Android Logcat调试中的V.D.I.W.E的分别代表什么? Log.v -- 黑色 -- verbose infoLog.d -- 蓝色 -- debug infoLog.i -- 绿色 ...
- 【译】Visual Studio 15 预览版更新说明
序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...
- HDU5558 Alice's Classified Message(合肥区域赛 后缀数组)
当初合肥区域赛的题(现场赛改了数据范围就暴力过了),可惜当初后缀数组算法的名字都没听过,现在重做下. i从1到n - 1,每次枚举rank[i]附近的排名,并记录当起点小于i时的LCP(rank[i] ...
- <转>SQL语句执行顺序说明
原文地址:http://www.cnblogs.com/summer_adai/archive/2011/10/28/2227605.html SQL 不同于与其他编程语言的最明显特征是处理代码的顺序 ...
- 6-05使用SQL语句删除数据
删除数据语法: DELETE FROM 表名 WHERE 删除条件. TRUNCATE TABLE 表名. --[1]基本删除,省略WHERE条件,将删除表中的所有数据 DELETE FROM ...
- 在windows系统的文件右键菜单中增加“命令提示符”
本实用小工具能够在windows系统的文件右键菜单中增加“命令提示符”,方便快速进入制定文件的命令提示窗口,避免逐层输入或复制文件夹路径,极其实用. 工具下载地址如下:360云盘(访问密码:5b71) ...