百度百科: http://baike.baidu.com/view/3968.htm
2.什么是android ndk?
Android NDK 即Native Development Kit,因此又被称为“NDK”。
在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。
不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
NDK包括了:
从C / C++生成原生代码库所需要的工具和build files。
将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
支持所有未来Android平台的一些列原生系统头文件和库
3.为什么要使用cygwin?
cygwin是一个模拟unix环境,可以对C或C++代码进行编译成android识别的so文件。
4.cygwin如何获得?
cygwin的官方网站: http://www.cygwin.com/
5.开始安装cygwin
网上有很多介绍cygwin安装的文章,百度一下会有很多。根据我的经验发现下载cygwin组件,使用mirrors.163.com镜像速度会快于其他镜像,如下图:
![android JNI开发(1)--搭建cygwin环境 - 蒋委员长 - Loft Program](http://static.oschina.net/uploads/img/201301/18103028_T6ci.jpg)
![android JNI开发(1)--搭建cygwin环境 - 蒋委员长 - Loft Program](http://static.oschina.net/uploads/img/201301/18103029_F4N4.jpg)
勾选选项的安装下面的图片选择,否则可能没有需要的库,如下图:
![android JNI开发(1)--搭建cygwin环境 - 蒋委员长 - Loft Program](http://static.oschina.net/uploads/img/201301/18103029_jzXP.jpg)
6.测试cygwin安装环境
cygwin的版本:cygcheck -c cygwin
gcc的版本:gcc --version
g++的版本:g++ --version
make的版本:make --version
gdb的版本:gdb --version
原文地址:http://maidini.blog.163.com/blog/static/37762704201111713438193/
不错的文章http://www.oschina.net/question/195301_31710