안드로이드 스터디 - Android One
(글 수 60)
Test 대상
C:\Android\android-ndk-r7-windows\android-ndk-r7\samples\hello-jni
Android.mk
LOCAL_SRC_FILES := hello-jni.c
LOCAL_SRC_FILES := hello-jni.cpp
hello-jni.c 에서 jni 문법
jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
hello-jni.cpp 에서 jni 문법
extern "C" {
JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz );
};
JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz )
{
return (env)->NewStringUTF("Hello from JNI ! Cpp");
}
Name mangling [name decoration] 에 의해서 extern "C" 를 선언해줘야 하는거 같음..
JNIEXPORT ... JNICALL 규격이 따로 있음..
extern "C"가 잴 중요하죠.... 모르면 고치기 어려운 버그중 하나....