static jstring dy(JNIEnv *env, jobject obj) {
return env->NewStringUTF("HelloJNI.SO");
}
JNINativeMethod nativeMethod[] = {
{"dy", "()Ljava/lang/String;", (void *) dy}
};
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved)
{
JNIEnv *env;
if (jvm -> GetEnv((void**) &env, JNI_VERSION_1_6) != JNI_OK)
{
return JNI_ERR;
}
jclass cls=env->FindClass("org/love/foyou/myjni/Ha");
env -> RegisterNatives(cls, nativeMethod, sizeof(nativeMethod) / sizeof(nativeMethod[0]));
return JNI_VERSION_1_6;
}
说明:这个方法是动态注册的本地方法
static jstring dy(JNIEnv *env, jobject obj) {
return env->NewStringUTF("HelloJNI.SO");
}
说明:Java与JNI方法的映射数组
JNINativeMethod nativeMethod[] = {
{"dy", "()Ljava/lang/String;", (void *) dy}
};
说明:在Java中执行加载库后就会执行这个,==》函数动态注册
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved)
{
JNIEnv *env;
if (jvm -> GetEnv((void**) &env, JNI_VERSION_1_6) != JNI_OK)
{
return JNI_ERR;
}
jclass cls=env->FindClass("org/love/foyou/myjni/Ha");
env -> RegisterNatives(cls, nativeMethod, sizeof(nativeMethod) / sizeof(nativeMethod[0]));
return JNI_VERSION_1_6;
}