Android內(nèi)存優(yōu)化(一)Dalvik虛擬機(jī)和ART虛擬機(jī)對(duì)比
1.概述
Android4.4以上開始使用ART虛擬機(jī),在此之前我們一直使用的Dalvik虛擬機(jī),那么為什么Google突然換了Android運(yùn)行的虛擬機(jī)呢?答案只有一個(gè):ART虛擬機(jī)更優(yōu)秀。
2.Dalvik vs ART
Dalvik
Android4.4及以前使用的都是Dalvik虛擬機(jī),我們知道Apk在打包的過程中會(huì)先將java等源碼通過javac編譯成.class文件,但是我們的Dalvik虛擬機(jī)只會(huì)執(zhí)行.dex文件,這個(gè)時(shí)候dx會(huì)將.class文件轉(zhuǎn)換成Dalvik虛擬機(jī)執(zhí)行的.dex文件。Dalvik虛擬機(jī)在啟動(dòng)的時(shí)候會(huì)先將.dex文件轉(zhuǎn)換成快速運(yùn)行的機(jī)器碼,又因?yàn)?5535這個(gè)問題,導(dǎo)致我們?cè)趹?yīng)用冷啟動(dòng)的時(shí)候有一個(gè)合包的過程,最后導(dǎo)致的一個(gè)結(jié)果就是我們的app啟動(dòng)慢,這就是Dalvik虛擬機(jī)的JIT特性(Just In Time)。
ART
ART虛擬機(jī)是在Android5.0才開始使用的Android虛擬機(jī),ART虛擬機(jī)必須要兼容Dalvik虛擬機(jī)的特性,但是ART有一個(gè)很好的特性AOT(ahead of time),這個(gè)特性就是我們?cè)诎惭bAPK的時(shí)候就將dex直接處理成可直接供ART虛擬機(jī)使用的機(jī)器碼,ART虛擬機(jī)將.dex文件轉(zhuǎn)換成可直接運(yùn)行的.oat文件,ART虛擬機(jī)天生支持多dex,所以也不會(huì)有一個(gè)合包的過程,所以ART虛擬機(jī)會(huì)很大的提升APP冷啟動(dòng)速度。
3.總結(jié)
ART優(yōu)點(diǎn):
加快APP冷啟動(dòng)速度
提升GC速度
提供功能全面的Debug特性
ART缺點(diǎn):
APP安裝速度慢,因?yàn)樵贏PK安裝的時(shí)候要生成可運(yùn)行.oat文件
APK占用空間大,因?yàn)樵贏PK安裝的時(shí)候要生成可運(yùn)行.oat文件
參考:
http://liuwangshu.cn/application/performance/ram-1-dvm-art.html
posted on 2018-07-17 09:43 安卓筆記俠 閱讀(2646) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)