프로그래밍/Android

JNI/네이티브 코드에서 자바 메서드 호출 방법

우진샘 2013. 6. 12. 18:23

JNI/네이티브 코드에서 자바 메서드 호출 방법



JNIEXPORT void JNICALL Java_com_example_helloworld_HelloWorld_call (JNIEnv* env, jobject obj)
{
jclass cls = (*env)->GetObjectClass(env, obj);

// 이름이 "func01"인 함수를 찾음, 함수 타입은()V
jmethodID metID = (*env)->GetMethodID(env, cls, "func01", "()V");
if (funcM == 0) {
printf("Can't find func01!\n"):
} else {
printf("Find func01!\n");
(*env)->CallVoidMethod(env, obj, metID );
}

jbyte a = 0;
jint b = 3;

// 이름이 "func02"인 함수를 찾음, 함수 타입은(B,I)I
jmethodID metID = (*env)->GetMethodID(env, cls, "func02", "(B,I)I");
if (funcM == 0) {
printf("Can't find func02!\n"):
} else {
printf("Find func02!\n");
(*env)->CallIntMethod(env, obj, metID, a, b);
}
}