Android Runtime(縮寫為ART),是一種在Android操作系統上的運行環境,由Google公司研發,並在2013年作為Android 4.4系統中的一項測試功能正式對外發布,在Android 5.0及後續Android版本中作為正式的運行時庫取代了以往的Dalvik虛擬機。ART能夠把應用程序的字節碼轉換為機器碼,是Android所使用的一種新的虛擬機。它與Dalvik的主要不同在於:Dalvik採用的是JIT技術,而ART採用Ahead-of-time英語Ahead-of-time compilation(AOT)技術。ART同時也改善了性能、垃圾回收(Garbage Collection)、應用程序出錯以及性能分析。

Dalvik虛擬機和ART原理的對比

JIT最早在Android 2.2系統中引進到Dalvik虛擬機中,在應用程序啟動時,JIT通過進行連續的性能分析來優化程序代碼的執行,在程序運行的過程中,Dalvik虛擬機在不斷的進行將字節碼編譯成機器碼的工作。與Dalvik虛擬機不同的是,ART引入了AOT這種預編譯技術,在應用程序安裝的過程中,ART就已經將所有的字節碼重新編譯成了機器碼。應用程序運行過程中無需進行實時的編譯工作,只需要進行直接調用。因此,ART極大的提高了應用程序的運行效率,同時也減少了手機的電量消耗,提高了移動設備的續航能力,在垃圾回收等機制上也有了較大的提升。為了保證向下兼容,ART使用了相同的Dalvik字節碼文件(dex),即在應用程序目錄下保留了dex文件供舊程序調用,然而.odex文件則替換成了可執行與可鏈接格式(ELF)可執行文件。一旦一個程序被ART的dex2oat命令編譯,那麼這個程序將會只通過ELF可執行文件來運行。因此,相對於Dalvik虛擬機模式,ART模式下Android應用程序的安裝需要消耗更多的時間,同時也會占用更大的內部儲存空間,用於儲存編譯後的代碼,但節省了很多Dalvik虛擬機用於實時編譯的時間。

Google公司在Android 4.4中帶來的ART模式僅僅是ART的一個預覽版,系統默認仍然使用的是Dalvik虛擬機,4.4上面提供的預覽版ART相對於Android 5.0以後的ART運行時庫有較大的不同,尤其體現在兼容性上。

擴展閱讀 編輯

  • Android歷史版本-對Android所有歷史版本的介紹,包括Android版本所對應的API版本
  • 虛擬機-一種特殊的計算機軟件,通過它可以模擬出一個獨立的環境供程序執行

外部連結 編輯