標籤:android 應用程式 google
Android系統是以Linux系統為底層構建的,開源的Android系統需要配置到不同硬體設定的裝置上,為了降低應用的開發難度,在Linux底層之上構築了一個名為"Dalvik"的虛擬機器,名為虛擬機器,實際是一種應用編譯模式,Android4.4開始引入的ART模式是一種全新的應用編譯模式,Android5.0徹底從Dalvik轉換到ART。
Dalvik模式:
Dalvik是Google公司自己設計用於Android平台的Java虛擬機器,Dalvik虛擬機器是Google等廠商合作開發的Android行動裝置平台的核心組成部分之一,它可以支援已轉換為.dex格式的java應用程式的運行,.dex格式是專為Dalvik設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。每一個Dalvik應用作為一個獨立的Linux進程執行,在有限的記憶體中允許同時運行多個虛擬機器的執行個體。獨立的進程可以防止在虛擬機器崩潰時所有程式都被關閉。
因為Dalvik虛擬機器,Android開發人員只需按照Google提供的SDK即可輕鬆建立APP,不需要顧忌硬體、底層驅動等問題,在每次執行應用時,Dalvik虛擬機器都會將程式的語言由進階語言編譯為機器語言,Dalvik依靠一個Just-In-Time(JIT)編譯器去解釋位元組碼,每次運行程式都需要做上述操作,將位元組碼編譯為機器語言;所以很長時間以來,Dalvik虛擬機器一直被使用者指責為拖慢安卓系統運行速度不如IOS的根源。
ART模式:
ART模式的完整名稱是Android Runtime,Google收購了一家名為Flexycore的公司,該公司一直致力於Android系統的最佳化,ART模式也是在該公司的最佳化方案上演化而來。
啟用ART模式後,系統在安裝應用的時候會進行一次先行編譯,在安裝應用程式時會先將代碼轉換為機器語言儲存在本地,這樣運行程式時就不會每次都進行一次編譯了,將提高執行效率。
區別:
| 編譯模式 |
RAM記憶體 |
ROM記憶體 |
流暢度 |
省電 |
相容性 |
載入速度 |
| Dalvik |
大 |
小 |
普通 |
普通 |
好 |
慢 |
| ART |
小 |
大 |
好 |
好 |
有待最佳化 |
快 |
Android運行環境Dalvik模式和ART模式的區別