JNI相关

来源:互联网 发布:软件测试经理招聘 编辑:程序博客网 时间:2024/06/02 06:53

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的函数,动态注册的工作在盖函数中完成。

0 0