<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Java中的String也是引用類型,不過由于它的使用非常頻繁,所以在JNI規范中單獨創建了一個jstring類型來表示Java中的String類型。雖然jstring是一種獨立的數據類型,但是它并沒有提供成員函數供操作。相比而言,C++中的string類就有自己的成員函數了。那么該怎么操作jstring呢?還是得依靠JNIEnv提供的幫助。這里看幾個有關jstring的函數: - 調用JNIEnv的NewString(JNIEnv *env, const jchar*unicodeChars,jsize len),可以從Native的字符串得到一個jstring對象。其實,可以把一個jstring對象看成是Java中String對象在JNI層的代表,也就是說,jstring就是一個Java String。但由于Java String存儲的是Unicode字符串,所以NewString函數的參數也必須是Unicode字符串。 - 調用JNIEnv的NewStringUTF將根據Native的一個UTF-8字符串得到一個jstring對象。在實際工作中,這個函數用得最多。 - 上面兩個函數將本地字符串轉換成了Java的String對象,JNIEnv還提供了GetStringChars和GetStringUTFChars函數,它們可以將Java String對象轉換成本地字符串。其中GetStringChars得到一個Unicode字符串,而GetStringUTFChars得到一個UTF-8字符串。 - 另外,如果在代碼中調用了上面幾個函數,在做完相關工作后,就都需要調用ReleaseStringChars或ReleaseStringUTFChars函數對應地釋放資源,否則會導致JVM內存泄露。這一點和jstring的內部實現有關系,讀者寫代碼時務必注意這個問題。 為了加深印象,來看processFile是怎么做的: **android_media_MediaScanner.cpp** ~~~ static void android_media_MediaScanner_processFile(JNIEnv*env, jobject thiz, jstring path, jstring mimeType, jobject client) { MediaScanner *mp = (MediaScanner *)env->GetIntField(thiz,fields.context); ...... //調用JNIEnv的GetStringUTFChars得到本地字符串pathStr constchar *pathStr = env->GetStringUTFChars(path, NULL); ...... //使用完后,必須調用ReleaseStringUTFChars釋放資源 env->ReleaseStringUTFChars(path, pathStr); ...... } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看