Ndk學習之JNI建構函式(java-->C-->Java)
阿新 • • 發佈:2019-02-19
1.在Java中定義建構函式(無參的不寫沒事,不被覆蓋就行)並獲取
public native Object accessConstaructor();
2.javah生成標頭檔案
JNIEXPORT jobject JNICALL Java_com_boom_JNITest_accessConstaructor
(JNIEnv * env, jobject jobj)
3.原始碼中進行具體實現
//訪問構造方法 //使用java.util.Date產生一個當前的時間戳 JNIEXPORT jobject JNICALL Java_com_boom_JNITest_accessConstaructor (JNIEnv * env, jobject jobj){ //jclass jclass cls = (*env)->FindClass(env,"java/util/Date"); //jmethodID jmethodID constaructor_mid = (*env)->GetMethodID(env,cls,"<init>","()V"); //例項一個Date物件 jobject date_obj = (*env)->NewObject(env,cls,constaructor_mid); //呼叫getTime方法 jmethodID mid = (*env)->GetObjectClass(env,date_obj); jlong time = (*env)->CallLongMethod(env,date_obj,mid); printf("\ntime:%lld\n",time); return date_obj; }
3.原始碼中進行具體實現