Android執行環境Dalvik模式和ART模式的區別對比
Android系統是以Linux系統為底層構建的,開源的Android系統需要配置到不同硬體配置的裝置上,為了降低應用的開發難度,在Linux底層之上構築了一個名為"Dalvik"的虛擬機器,名為虛擬機器,實際是一種應用編譯模式,Android4.4開始引入的ART模式是一種全新的應用編譯模式,Android5.0徹底從Dalvik轉換到ART。
1、介紹:
Dalvik模式:
Dalvik是Google公司自己設計用於Android平臺的Java虛擬機器,Dalvik虛擬機器是Google等廠商合作開發的Android移動裝置平臺的核心組成部分之一,它可以支援已轉換為.dex格式的java應用程式的執行,.dex格式是專為Dalvik設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。每一個Dalvik應用作為一個獨立的Linux程序執行,在有限的記憶體中允許同時執行多個虛擬機器的例項。獨立的程序可以防止在虛擬機器崩潰時所有程式都被關閉。
因為Dalvik虛擬機器,Android開發者只需按照谷歌提供的SDK即可輕鬆建立APP,不需要顧忌硬體、底層驅動等問題,在每次執行應用時,Dalvik虛擬機器都會將程式的語言由高階語言編譯為機器語言,Dalvik依靠一個Just-In-Time(JIT)編譯器去解釋位元組碼,每次執行都進行一次預編譯,將位元組碼編譯為機器語言;所以很長時間以來,Dalvik虛擬機器一直被使用者指責為拖慢安卓系統執行速度不如IOS的根源。
ART模式:
ART模式的完整名稱是Android Runtime,啟用ART模式後,系統在安裝應用的時候只會進行一次預編譯,在安裝應用程式時會先將程式碼轉換為機器語言儲存在本地,這樣執行程式時就不會每次都進行一次編譯了,將提高執行效率,但所帶來的問題就是會增加檔案儲存的大小。
2、體驗上的區別:
Dalvik模式:
1、所佔用執行記憶體大、2、所佔用程式儲存空間小、3、載入速度慢、4、省電、5、相容性好
ART模式:
1、所佔用執行記憶體小、2、所佔用程式儲存空間大、3、載入速度快、4、相對較費電、5、相容性相對較差