自Android 1.5开始,Google 开始发布 Android NDK, 开发者可以使用 C/C++ 来开发Android 的部分功能.
NDK 生成的共享库(lib*.so 文件) 和静态库(lib*.a文件) 都必须是Linux 下的共享库和静态库 的二进制格式,在Windows 下需要使用Cygwin 模拟 Linux 的环境来生成lib*.so 或lib*.a文件,在生成lib*.so 或 lib*.a文件的过程中需要两个配置文件: Android.mk 和 Application.mk
Android NDK (Native Development Kit) 是一套允许将本地代码嵌入 Android 应用程序的开发包.这些本地代码以 动态链接库(lib...so)的形式存在.
NDK 的这个特性既有利于代码的重用(可以被多个Android 应用程序使用), 也可以一定程序上提高程序的运行速度
NDK 由几部分组成:
1. 提供一套工具集, 可以将C/C++ 源代码生成本地代码
2. 用于定义NDK 接口的C头文件(*.h) 和实现这些接口的库文件
3. 一套编译系统,可以通过很少的配置生成目标文件.
使用 NDK 可以大大提高运行速度,但也会带来很多副作用:
1. 并不总会提高应用程序的性能,但却一定会增加程序的复杂度
2. 必须要开发者自己控制内存的分配和释放,这样将无法利用Dalvik 虚拟机来管理内存,会给程序带来很大风险.
比较适用的情况是: 需要大幅度提高程序运行速度, 或需要保密, 防止反编译
安装、配置NDK 开发环境步骤如下:
一. 从以下地址下载 Android NDK 的最新版本:
http://developer.android.com/tools/sdk/ndk/index.html ,下载后,将Android 的压缩包解压缩即可。
二 下载和安装Cygwin
从如下地址 下载 Cygwin 的最新版本 http://www.cygwin.com, Cygwin 是用来模拟 linux 开发环境
Cygwin 是一套在 Windows 下模拟 Linux 环境的工具集. 包括如下部分
1. 一个 cygwin1.dll 文件
2. 模拟 Linux 环境的工具集.
这个下载过程比较久