對於Dalvik虛擬機器管理說明

來源:互聯網
上載者:User

Dalvik虛擬機器還是比較常用的,於是我研究了一下Dalvik虛擬機器,在這裡拿出來和大家分享一下,希望對大家有用,經過長時間學習Dalvik虛擬機器,於是和大家分享一下,看完本文你肯定有不少收穫,希望本文能教會你更多東西。

很多實現代碼都是來自Apache Harmony項目,主要目的是保證虛擬機器的類庫能夠和Java SE的類庫最大可能的相容,從而降低應用開發人員從Java SE陣營轉移到Android開發陣營的難度,增加其可用性。

Dalvik虛擬機器主要是完成對象生命週期的管理,堆棧的管理,線程管理,安全和異常的管理,以及記憶體回收等等重要功能。 Dalvik虛擬機器的主要特徵Dalvik 虛擬機器非常適合在移動終端上使用,相對於在案頭系統和伺服器系統啟動並執行虛擬機器而言,它不需要很快的CPU速度和大量的記憶體空間。

根據Google的測算,64M的RAM已經能夠令系統正常運轉了。其中24M被用於底層系統的初始化和啟動,另外20M被用於高層啟動高層服務。當然,隨著系統服務的增多和應用功能的擴充,其所消耗的記憶體也勢必越來越大。 歸納起來,Dalvik虛擬機器有如下幾個主要特徵:

Java虛擬機器啟動並執行是Java位元組碼,而Dalvik虛擬機器啟動並執行則是其專有的檔案格式DEXDalvik Executable)。
在Java SE程式中的Java類會被編譯成一個或者多個位元組碼檔案.class)然後打包到JAR檔案。而後Java虛擬機器會從相應的CLASS檔案和JAR檔案中擷取相應的位元組碼;

Android應用雖然也是使用Java語言進行編程,但是在編譯成CLASS檔案後,還會通過一個工具dx)將應用所有的CLASS檔案轉換成一個DEX檔案,而後Dalvik虛擬機器會從其中讀取指令和資料,Dalvik和Android系統Android作為新一代的基於Linux的開源手機作業系統,其系統架構由下而上可以分為以下幾部分: Linux核心 本地庫 Android運行庫 應用程式框架應用。

DEX的最佳化 DEX檔案的結構是緊湊的,然是如果我們還想要求運行時的效能有進一步提高,我們就仍然需要對DEX檔案進行進一步最佳化。最佳化主要是針對以下幾個方面:
◆調整所有欄位的位元組序LITTLE_ENDIAN)和對齊結構中的沒一個域
◆驗證DEX檔案中的所有類
◆對一些特定的類進行最佳化,對方法裡的作業碼進行最佳化
◆最佳化後的檔案大小會有所增加,應該是原DEX檔案的1-4倍。
◆最佳化發生的時機有兩個:對於預置應用,可以在系統編譯後,產生最佳化檔案,以ODEX結尾。這樣在發布時除APK檔案不包含DEX)以外,還有一個相應的ODEX檔案;對於非預置應用,包含在APK檔案裡的DEX檔案會在運行時被最佳化,最佳化後的檔案將被儲存在緩衝中。

基於寄存器 相對於基於堆棧的虛擬機器實現,基於寄存器的虛擬機器實現雖然在硬體通用性上要差一些,但是它在代碼的執行效率上卻更勝一籌。一般來講,虛擬機器中指令的解釋執行時間主要花在以下三個方面:
◆分髮指令
◆訪問運算數
◆執行運算

聯繫我們

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