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