Android Coding

[NDK] chars To JString

오마로 2018. 4. 9. 15:10
반응형

Android Navtive 에서 NDK로 개발을 해야겠다.

메모리도 그렇고, 속도 개선을 위해서 필요한 작업인 것 같다.

하나 하나 필요한 기능들을 모아서 기능을 업글해 봅시다.

기존 chars를 jstring으로 반환하는 기능


jstring NativeDecoder::charsToJString(const char *chars) {

std::string str(chars);
jbyteArray array = env->NewByteArray(str.size());
env->SetByteArrayRegion(array, 0, str.size(), (const jbyte*)str.c_str());
jstring strEncode = env->NewStringUTF("UTF-8");
jclass cls = env->FindClass("java/lang/String");
jmethodID ctor = env->GetMethodID(cls, "<init>", "([BLjava/lang/String;)V");
jstring object = (jstring) env->NewObject(cls, ctor, array, strEncode);
return object;


}


반대로, jPath를 char로 변환

const char *strPath = NULL;

strPath = env->GetStringUTFChars(jPath, 0);




예전에는 한글 변환이 안되어서 애먹었는데, 요즘은 그냥 되는 듯하네 ^^;

반응형