Android JNI ,jni基本数据类型转换
jstring转换为c string:
- GetStringUTFChars将jstring转换成为UTF-8格式的char*
- GetStringChars将jstring转换成为Unicode格式的char*
- ReleaseStringUTFChars释放指向UTF-8格式的char*的指针
- ReleaseStringChars释放指向Unicode格式的char*的指针
- NewStringUTF创建一个UTF-8格式的String对象
- NewString创建一个Unicode格式的String对象
- GetStringUTFLengt获取 UTF-8格式的char*的长度
- GetStringLength获取Unicode格式的char*的长度
注意:在使用完你所转换之后的对象之后,需要显示调用 ReleaseStringUTFChars方法,让JVM释放转换成UTF-8的string的对象的空间,如果不显示的调用的话,JVM中会一直保存 该对象,不会被垃圾回收器回收,因此就会导致内存溢出。
const char *str = (*env)->GetStringUTFChars(env, prompt, 0); printf("%s", str); (*env)->ReleaseStringUTFChars(env, prompt, str);
原创文章欢迎转载,转载请注明出处:http://www.cnblogs.com/zhouchanwen