NativeType Call
它们与于实例方法的唯一区别在于第二个参数jclass classzz代表的是类引用,而不是类实例。
////////////////////////////////////////////////////////////////////////////////////////////////////////////
七、注册本地方法
jint RegisterNatives (JNIEnv *env, jclass clazz, const JNINativeMethod *methods, jint nMethods);
功能:向 clazz 参数指定的类注册本地方法。methods 参数将指定 JNINativeMethod 结构的数组,其中包含本地方法的名称、 签名和函数指针。nMethods 参数将指定数组中的本地方法数。JNINativeMethod 结构定义如下所示: typedef struct { char *name; char *signature; void *fnPtr; } JNINativeMethod; 函数指针通常必须有下列签名:
ReturnType (*fnPtr)(JNIEnv *env, jobject objectOrClass, ...); 参数: env:JNI 接口指针。 clazz:Java 类对象。
methods:类中本地方法和具体实现方法的映射指针。
nMethods:类中的本地方法数。 返回值: 成功时返回 \;失败时返回负数。
抛出: NoSuchMethodError:如果找不到指定的方法或方法不是本地方法。
jint UnregisterNatives (JNIEnv *env, jclass clazz);
功能: 取消注册类的本地方法。类将返回到链接或注册了本地方法函数前的状态。该函数不应在常规平台相关代码中使用。相反,它可以为某些程序提供一种重新加载和重新链接本地库的途径。 参数: env:JNI 接口指针。 clazz:Java 类对象。
返回值: 成功时返回“0”;失败时返回负数。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////