JNI和NDK编程
Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C、C++等本地代码所封装的一层接口。通过Java JNI,用户可以调用C、C++所编写的本地代码。 NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便地通过JNI来访问本地代码,比如C或C++。NDK还提供了交叉编译器,开发人员只需要简单的修改mk文件就可以生成特定CPU平台的动态库。 使用NDK的好处: 1.提高代码的安全性。由于so库反编译比较困难,因此NDK提高了Android程序的安全性。 2.可以很方便的使用目前已有的C/C++开源库 3.便于平台间的移植。通过C/C++实现的动态库可以很方便的在其他平台上使用。 4.提高程序在某些特定情形下的执行效率,但是并不能明显提升Android程序的性能。 JNI和NDK开发所用到的动态库的格式是以.so为后缀的文件 一、JNI 的开发流程 1.在Java中声明native方法 2.编译Java源文件得到class文件,然后通过javah命令导出JNI的头文件 3.实现JNI方法 4.编译so库并在Java中调用 二、NDK的开发流程(NDK的开发是基于JNI的) 1.下载并配置NDK 2.创建一个Android的项目,并声明所需的native方法 3