Android NDK應用原理

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   java   使用   io   檔案   

轉:http://shihongzhi.com/ndk/

那麼首先看一下Android的系統架構:

 

最底層是Linux Kernel,然後上面是封裝的庫及Android runtime。再上面是Application Framework。最頂層的就是App了。

而App開發人員最主要的就是專註於App層。但是由於某些原因要使用到NDK編程,所以會涉及到系統開發(中介層)的開發。系統開發的流程如所示:

 

Java App通過JNI(Java Native Interface)Java本地介面機制調用開發人員自己添加的C或者C++本地原生庫。

NDK類似於Android的系統開發,也是需要通過JNI來做中間調用的。NDK的全稱是Native Developing Kit,當然官方還提供了一些NDK本地API供開發人員調用。

為NDK應用的五大開發流程步驟:

 

應用程式調用流程如所示:Android App通過Java Framework調用Java SDK API, 通過JNI調用本地庫檔案,也就是NDK API。

而具體的NDK調用過程如所示:

 

當然在瞭解了原理之後還是需要進行實際的代碼測試。我選擇了彩度轉灰階圖及高斯模糊這兩個例子,分別用JAVA和NDK實現比較效能。在Android2.3系統模擬器,NDK的速度比JAVA快一倍。但是換成Android4.0之後的系統之後,JAVA的速度反而比NDK快了。可見在Android4.0系統之後,Google對JVM做了很大的最佳化啊。具體的測試代碼我已經上傳到GitHub上了。代碼連結

Android NDK應用原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.