JNI學習(3)(我是菜鳥)-jstring介紹
阿新 • • 發佈:2019-01-28
所有內容為記錄學習過程,不是大牛敬請諒解。所有分析都參考深入理解Android 卷一
Java中的String 也是引用型別,不過由於它的使用頻率有點高,所以再JNI 規範中,單獨建立了一個 jstring 型別表示java中的String型別,雖然jstring 是一種獨立的資料型別,但是它並沒有提供成員函式以便操作,而C++中的string 類有自己的成員哈數,那麼操作jstring的過程,不用多說應該是儲存在那個JNIEnv中了。
以下介紹幾個jstring的函式
1,呼叫JNIEnv的NewString(JNIEnv *env,const jchar *unicodeChars,jsize len),
呼叫JNIEnv 的NewStringUTF將根據Native的一個UTF-8字串得到一個jstring物件。
上面兩個函式將本地字元轉換成了java的String物件,JNIEnv還提供了GetStringChars加盟手機進而GetStromgUFTChars函式,他們可以將JavaString
如果呼叫了上面幾個函式,做完相關工作後,就需要呼叫ReleaseStringChars函式,或者ReleaseStringUTFChars 函式來對應的釋放資源,否則可能會導致JNI記憶體洩露。這個問題需要特別注意
來個示例