(1)什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 (2)为什么使用NDK? 1)代码的保护:由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 2)可以方便地使用现存的开源库:大部分现存的开源库都是用C/C++代码编写的。 3)提高程序的执行效率:将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。 4)便于移植:用C/C++写得库可以方便在其他的嵌入式平台上再次使用。 (3)什么是JNI? JNI全称为:Java Native Interface。JNI是本地编程接口,它使得在 Java 虚拟机内部运行的 Java代码能够与用其它语言(如 C、C++)编写的代码进行交互。...