Android系統架構、JVM和DalvikVM的區別

來源:互聯網
上載者:User

標籤:android   系統架構   dalvikvm   

一、系統架構

1.Anroid大致分為四層結構,五塊地區
1)應用程式層(Applications)
所有安裝在手機上的應用程式都屬於這一層。
2)應用程式架構(Application Framework)
提供大量的API供開發人員使用,Android內建的一些核心應用就是使用這些API完成的。
3)函數庫(Libraries)
—Surface Manager:管理對顯示子系統的訪問,並可以對多個應用程式的2D和3D圖層機提供無縫整合
—Media Framework:基於PacketVideo的OpenCORE,支援播放和錄製多種流行的音頻和視頻格式,以及查看靜態圖片
—SQLite提供資料庫的支援
—OpenGL|ES提供3D繪圖的支援
—FreeType:位元影像和向量字型顯示
—WebKit:Web瀏覽器引擎,為Android瀏覽器提供支援
—SGL:底層的2D圖形引擎
—SSL:在Android中通訊實現握手
—C/C++(libc)庫來為Android系統提供了主要的特性支援
4)運行時(Android Runtime)
由兩部分組成:Android核心庫集和Dalvik虛擬機器。核心庫集提供了Java語言核心庫所能使用的絕大部分功能,Dalvik虛擬機器負責運行Android應用程式。

5)Linux核心
Linux核心提供安全性、記憶體管理、進程管理、網路通訊協定棧和驅動模型等核心系統服務,Linux核心也是系統硬體和軟體疊層之間的抽象層。

二、JVM和DalvikVM的區別

DalvikVM:
Dalvik虛擬機器是Google的用於行動裝置的Android平台的一個主要部分。虛擬機器可運行Java平台應用程式,這些應用程式被轉換成緊湊的Dalvik可執行格式(.dex),該格式適合記憶體和處理器速度受限的系統。



區別:
1.Dalvik並未完全遵守JVM規範,兩者也不相容。
2.JVM虛擬機器啟動並執行是位元組碼,Dalvik啟動並執行是其專有的dex(Dalvik Executable)檔案。
3.JVM直接從.class檔案或者jar包中載入位元組碼然後運行,而Dalvik則無法從.class檔案或jar包中載入位元組碼,而是通過DX工具將應用程式所欲的.class檔案編譯成.dex檔案,然後運行.dex檔案。
4.Dalvik 基於寄存器,而 JVM 基於棧。基於寄存器的虛擬機器對於更大的程式來說,在它們編譯的時候,花費的時間更短。
5.Dalvik負責進程隔離和線程管理,每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機器執行個體,其代碼在虛擬機器的解釋下得以執行。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android系統架構、JVM和DalvikVM的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.