<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                初次接觸JNI,感覺最神奇的就是,Java竟然能夠調用Native的函數,可它是怎么做到的呢?網上有很多介紹JNI的資料。由于Android大量使用了JNI技術,本節就將通過源碼中的一處實例,來學習相關的知識,并了解它是如何調用Native的函數的。 這個例子,是和MediaScanner相關的。在本書的最后一章,會詳細分析它的工作原理,這里先看和JNI相關的部分,如圖2-2所示: :-: ![](http://img.blog.csdn.net/20150802093807202?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖2-2 MediaScanner和它的JNI 將圖2-2與圖2-1結合來看,可以知道: - Java世界對應的是MediaScanner,而這個MediaScanner類有一些函數是需要由Native層實現的。 - JNI層對應的是libmedia_jni.so。media_jni是JNI庫的名字,其中,下劃線前的“media”是Native層庫的名字,這里就是libmedia庫。下劃線后的”jni“表示它是一個JNI庫。注意,JNI庫的名字可以隨便取,不過Android平臺基本上都采用“lib模塊名_jni.so”的命名方式。 - Native層對應的是libmedia.so,這個庫完成了實際的功能。 - MediaScanner將通過JNI庫libmedia_jni.so和Native的libmedia.so交互。 從上面的分析中還可知道: - JNI層必須實現為動態庫的形式,這樣Java虛擬機才能加載它并調用它的函數。 下面來看MediaScanner。 >[info] **提示**:MediaScanner是Android平臺中多媒體系統的重要組成部分,它的功能是掃描媒體文件,得到諸如歌曲時長、歌曲作者等媒體信息,并將它們存入到媒體數據庫中,供其他應用程序使用。
                  <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>

                              哎呀哎呀视频在线观看