JNI函数的注册方法:
1. 静态方法:
a. 将编写好的java文件编译生成class文件(java 方法中带native关键字)
b.使用javah javah -o output package.classname 生成output.h 头文件
c. 实现头文件中的方法
2 动态注册
JNINativeMethod 结构体
typedef struct {
const char* name; // java中native函数的名字,不用携带包路径
const char* signature; //java函数的签名信息,是参数类型和返回值类型的集合
void* fnPtr;// JNI曾对应函数的函数指针,
} JNINativeMethod;
AndroidRunTime 类提供了一个registerNativeMethods函数来完成注册工作,(实际上是JNIEnv 的registerNatives函数完成注册的)
当java层通过System.loadLibrary加载完JNI动态库后,紧接着在该库中查找JNI_OnLoad的函数,动态注册的工作在盖函数中完成。