http://blog.sina.com.cn/s/blog_80c9582b0100so65.html
使用JNI時,最常見的操作是將jstring轉換成UTF字符串。JNI提供了幾個轉換函數:GetStringUTFChars,GetStringUTFRegion。
GetStringUTFChars返回一個指向UTF字符串的指針,該函數會分配內存空間存儲該字符串,因此使用完後一定要記得調用對應的釋放函數ReleaseStringUTFChars釋放分配的空間。
GetStringUTFRegion將UTF字符串存儲到預分配的內存空間。相比GetStringUTFChars,它沒有重新分配內存空間,因此也無需釋放。
開發時,根據需要選擇適當的函數。
Android源代碼大量使用GetStringUTFChars和ReleaseStringUTFChars。僅在少數幾處使用了GetStringUTFRegion。
創建一個jstring對象使用:
jstring
str = (*env)->NewStringUTF(env, your_utf_string); |