1. 程式人生 > >Android Dalvik虛擬機和ART虛擬機對比

Android Dalvik虛擬機和ART虛擬機對比

x文件 開始 過程 優秀 clas 編譯 apk 但是 好的

1.概述
  Android4.4以上開始使用ART虛擬機,在此之前我們一直使用的Dalvik虛擬機,那麽為什麽Google突然換了Android運行的虛擬機呢?答案只有一個:ART虛擬機更優秀。

2.Dalvik vs ART
Dalvik
  Android4.4及以前使用的都是Dalvik虛擬機,我們知道Apk在打包的過程中會先將java等源碼通過javac編譯成.class文件,但是我們的Dalvik虛擬機只會執行.dex文件,這個時候dx會將.class文件轉換成Dalvik虛擬機執行的.dex文件。Dalvik虛擬機在啟動的時候會先將.dex文件轉換成快速運行的機器碼,又因為65535這個問題,導致我們在應用冷啟動的時候有一個合包的過程,最後導致的一個結果就是我們的app啟動慢,這就是Dalvik虛擬機的JIT特性(Just In Time)。
ART
  ART虛擬機是在Android5.0才開始使用的Android虛擬機,ART虛擬機必須要兼容Dalvik虛擬機的特性,但是ART有一個很好的特性AOT(ahead of time),這個特性就是我們在安裝APK的時候就將dex直接處理成可直接供ART虛擬機使用的機器碼,ART虛擬機將.dex文件轉換成可直接運行的.oat文件,ART虛擬機天生支持多dex,所以也不會有一個合包的過程,所以ART虛擬機會很大的提升APP冷啟動速度。

3.總結
ART優點:
  加快APP冷啟動速度
  提升GC速度
  提供功能全面的Debug特性
ART缺點:
  APP安裝速度慢,因為在APK安裝的時候要生成可運行.oat文件
  APK占用空間大,因為在APK安裝的時候要生成可運行.oat文件

Android Dalvik虛擬機和ART虛擬機對比