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對象)

相關文章
相關標籤/搜索