NDK:
Native Development Kit的缩写,即Android NDK 是在SDK前面又加上了“原生”二字。
Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
NDK包括了:
- 从C / C++生成原生代码库所需要的工具和build files
- 将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中
- 支持所有未来Android平台的一些列原生系统头文件和库
为何要用到NDK?
- 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
- 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的
- 便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用
SDK:
software development kit 的缩写,即软件开发工具包,被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。