Android在4.2之前的虛擬機叫做 DVM
在4.2的時候多了一個虛擬機選擇,這是新的虛擬機 ART。Android Runingtime
那時ART還不夠成熟,需要測試,所以默認虛擬機是DVM。國內的ROM廠商直接把ART給割了。
Android5.0起,默認使用ART虛擬機,刪掉了DVM。
?
兩者的功能是一樣的,都是將.class文件轉為機器碼執行程序。
區別之處在于: 將.class文件轉為機器碼的時候。
?
DVM ?實時
每次運行應用的時候,實時將字節碼轉化為機器碼,再運行程序。中間多了一道轉換手續,使得程序響應需要更多的時間,因為實時,消耗了更多的電量,內存。(這就是相同配置的手機Android不如Apple流暢的原因。)
?
ART ?安裝時
在安裝應用的時候,就將應用的字節碼轉換為機器碼,保存在手機里。每次運行應用的時候,無需實時轉換,直接使用轉換好的機器碼。打開應用更快,應用響應更及時,內存占用,電量消耗都減少。(拉近了與Apple的流暢距離)
缺點:同一款應用安裝后比DVM占更多的空間,多出的空間用來保存機器碼了,安裝時間也更長點。一個應用里代碼的大小是很小的,大都是資源素材大,因而多出的空間是很小的,現在手機都是16G+,不影響使用。