原文地址:http://developer.android.com/sdk/ndk/overview.html
【译文】
NDK:Native Development Kit
Android NDK是一个让开发人员在Android应用中嵌入使用本地代码编写的组件的工具集。
Android应用运行在Dalvik虚拟机中。NDK允许开发人员使用本地代码语言(例如C和C++)实现应用的部分功能。这样以代码重用的形式能够给某类应用提供方便,而且在某些情况下能提高运行速度(感谢老婆的帮助)。
NDK提供:
l 将C和C++代码编译成库的工具集
l 将本地库嵌入到应用包(.apk)中并发布在Android设备上的方法
l 一套本地系统头文件和库,这些文件和库将在Android1.5以后的版本中被支持。使用native activies的应用必须运行在Android2.3及以上版本。
l 文档、样例和教程
最新发布的NDK支持一下ARM指令集:
l ARMv5TE (including Thumb-1 instructions)
l ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optionalsupport for NEON/VFPv3-D32 instructions)
l x86 instructions (see CPU-ARCH-ABIS.HTML for more information)
ARMv5TE机器代码能运行在以ARM为基础的Android设备上。ARMv7-A只能在VerizonDroid和Google NexusOne上运行。这两种指令集的主要区别是ARMv7-A支持hardware FPU、Thumb-2和NEON 指令。开发人员可以使用这两种指令或其中之一,缺省支持ARMv5TE,但通过在应用的Appliation.mk文件中加上一行代码就能很简单的切换到ARMv7-A,不需要其他的任何改变。开发人员也可以同时编译这两种架构并存储在最终的.apk中。NDK包CPU-ARCH-ABIS.HTML 提供了完整的信息。
NDK提供了稳定的头文件,包括libc(C库)、libm(数学库)、OpenGL ES(3D 图形库),JNK接口和其他的一些库。详细清单见Development Tools章节。