android JNI中JNIEnv类型和jobject类型的解释

JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj)
{
cout<<"Hello World"<<endl;
}

对于这个方法参数中的JNIEnv* env参数的解释:数组

JNIEnv类型实际上表明了Java环境,经过这个JNIEnv* 指针,就能够对Java端的代码进行操做。例如,建立Java类中的对象,调用Java对象的方法,获取Java对象中的属性等等。JNIEnv的指针会被JNI传入到本地方法的实现函数中来对Java端的代码进行操做。函数

JNIEnv类中有不少函数能够用:spa

NewObject:建立Java类中的对象指针

NewString:建立Java类中的String对象对象

New<Type>Array:建立类型为Type的数组对象class

Get<Type>Field:获取类型为Type的字段object

Set<Type>Field:设置类型为Type的字段的值方法

GetStatic<Type>Field:获取类型为Type的static的字段demo

SetStatic<Type>Field:设置类型为Type的static的字段的值static

Call<Type>Method:调用返回类型为Type的方法

CallStatic<Type>Method:调用返回值类型为Type的static方法

等许多的函数,具体的能够查看jni.h文件中的函数名称。

 

参数:jobject obj的解释:

若是native方法不是static的话,这个obj就表明这个native方法的类实例

若是native方法是static的话,这个obj就表明这个native方法的类的class对象实例(static方法不须要类实例的,因此就表明这个类的class对象)

相关文章
相关标签/搜索