Android NDK是Android Native Developement kit的缩写。
Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
Android 应用开发中,可以通过Android NDK来使用C/C++语言开发的native动态库供Java代码调用。
在android应用中调用动态库有几个原因:1、可以把一些CPU运算量大的内存消耗少的核心功能通过C++实现成动态库,然后在Java中通过JNI调用这些动态库,这样做可以提高Android应用的运行效率;2、用C++编写native动态库的时候,可以调用已有的大量的第三方C/C++库,这样可以节省开发时间;3、代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大;4、 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。
使用NDK开发也有一些缺点:由于使用了NDK,所以android应用的复杂性加大,导致程序的调试难度加大。使用NDK开发也要注意,不是所有的核心功能都适合用NDK开发,只有cpu运算量大、内存消耗小的核心功能才适合用ndk开发,比如目前有比较多的游戏引擎在Android上的实现采用了通过NDK的方式来实现,通过直接封装OpenGL ES来实现。音频和视频解码也使用了NDK来开发。
1、下载Android NDK
去http://developer.android.com/tools/sdk/ndk/index.html下载NDK的压缩包,然后解压到任何目录(比如我解压到了D:\,解压后NDK的根目录是D:\android-ndk-r8e)。
2、下载安装Cygwin
去http://www.cygwin.com/下载Cygwin,然后安装
3、配置NDK环境变量
找到cygwin的/home/youruser/bash_profile文件,在此文件的头部加入环境变量NDK=/cygdrive/yourdrive/ndk-path(比如我的是NDK=/cygdrive/d/android-ndk-r8e),export NDK。
至此Android NDK开发环境就配置好了。