学习怎么做网站,自己公司做公益网站怎么弄,外贸网站推广费用,西安网页设计培训费用JNIEnv是指向可用JNI函数表的接口指针#xff0c;原生代码通过JNIEnv接口指针提供的各种函数来使用虚拟机的功能。JNIEnv是一个指向线程-局部数据的指针#xff0c;而线程-局部数据中包含指向线程表的指针。实现原生方法的函数将JNIEnv接口指针作为它们的第一个参数。 原生代… JNIEnv是指向可用JNI函数表的接口指针原生代码通过JNIEnv接口指针提供的各种函数来使用虚拟机的功能。JNIEnv是一个指向线程-局部数据的指针而线程-局部数据中包含指向线程表的指针。实现原生方法的函数将JNIEnv接口指针作为它们的第一个参数。 原生代码是C以及原生代码是C其调用JNI函数的语法不同C代码中JNIEnv是指向JNINativeInterface结构的指针为了访问任何一个JNI函数该指针需要首先被解引用。因为C代码中的JNI函数不了解当前的JNI环境JNIEnv实例应该作为第一个参数传递给每一个JNI函数调用者。 jstring Java_com_example_jni_MainActivity_stringFromC(JNIEnv* env,jobject thiz){return (*env)-NewStringUTF(env,hello, I am from C);
} 然而在C代码中JNIEnv实际上是C类实例JNI函数以成员函数形式存在因为JNI方法已经访问了当前的JNI环境因此JNI方法调用不要求JNIEnv实例作参数在C中完成同样的功能代码应该是下面这样 extern C jstring Java_com_example_jni_MainActivity_stringFromCpp(JNIEnv* env,jobject thiz){return env-NewStringUTF(hello, I am from C);
}