NDK native develop kit 原生开发工具集
优点:复用、提高性能、防逆向
缺点:开发复杂
JNI java native interface
用于java 和 c/c++的交互,jni是jvm的一部分,可以在所有java虚拟机中运行,实现跨平台复用
JNI native方法注册的两种方式
静态注册(jvm实现):
1、编写带有native方法的Java类
2、使用Javah命令生成.h头文件
3、编写代码实现头文件中的方法
动态注册(开发者实现):
1、在cpp文件中实现JNI_OnLoad方法
2、定义JNINativeMethod数组,用于关联c/c++方法和java方法,JNINativeMethod包含3个参数:java函数名、java参数描述、c/c++函数指针
3、在JNI_OnLoad方法中调用RegisterNatives方法,传入JNINativeMethod数组进行注册