原文鏈接:https://blog.csdn.net/liangtianmeng/article/details/82454589
JIT:全稱Just in time即時編譯,Dalvik VM采用的就是這種編譯,我們知道apk被安裝到手機中時,對應目錄會有dex或odex和apk文件,apk文件存儲的是資源文件,而dex或odex(經(jīng)過優(yōu)化后的dex文件內(nèi)部存儲class文件)內(nèi)部存儲class文件,每次運行app時虛擬機會將dex文件解釋翻譯成機器碼,這樣才算是本地可執(zhí)行代碼,之后被系統(tǒng)運行。
AOT:全稱Ahead of time預編譯,ART(andorid runtime)與Dalvik不同在于,它在安裝apk的同時將字節(jié)碼dex解釋成了機器碼,也就是安裝完成就生成了本地可執(zhí)行機器碼,這樣app啟動及運行速度就會快很多。
Dalvik與Art的區(qū)別:
Dalvik每次都要編譯再運行,Art只會安裝時啟動編譯
Art占用空間比Dalvik大(原生代碼占用的存儲空間更大),就是用“空間換時間”
Art減少編譯,減少了CPU使用頻率,使用明顯改善電池續(xù)航
Art應用啟動更快、運行更快、體驗更流暢、觸感反饋更及時