從Android 4.4開始就已經支持並且可選則的在運行時用ART替代Dalvik。
ART(Android RunTime)是Dalvik的下一個版本,Dalvik運行時的是字節碼,且虛擬機的用途就是用來運行Android系統的應用程序。
ART有相較於Dalvik有兩大特色:
(1)超前編譯(AOT:Ahead-of-Time),主要用於提升速度和減少內存(沒有JIT,當然會減少相應的內存開銷)。
(2)提升了垃圾回收性能。
AOT意味着我們的app被一次性的編譯成本地代碼(native code),這種本地代碼存儲在手機上,在運行時是執行的高效的本地代碼而不是字節碼。但是因爲解釋器很慢(解釋字節碼時),所以虛擬機開發者發明了一個新的技術叫做Just-in-Time(即JIT)編譯,這種技術將我們的代碼飛快的編譯爲native coed。Dalvik就是典型的JIT虛擬機,但是JIT虛擬機的缺點在於:JIT編譯器運行於我們在使用app的時候,也就是說只要我們在使用app,那麼就伴隨着JIT編譯器的運行(想想都覺得對內存的消耗夠大了。。。),這也就增加了內存潛在的壓力。不過JIT編譯器的優勢在於:JIT編譯器可以考慮將你正在使用的代碼進行優化。
AOT和JIT類似,但是它只運行一次----當app在安裝的時候運行一次。雖然AOT缺乏優化代碼的能力,但是它缺可以通過較少的編譯來執行更廣泛的優化過的代碼。自然地,在開機時ART會比Dalvik要慢,因爲他編譯系統一些apk需要時間,但是一旦運行起來,ART就會比Dalvik要快了。
值得一提的是,雖然在4.4上已經放出ART,但是並不是默認的選擇,可以到設置>開發者選項>選擇運行時間>使用ART。
ART和Dalvik的比較
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
獲取android設備信息
GB_young
2018-08-27 17:11:44
JNI示例 - 3
ruanchao2012
2018-08-27 03:52:20
使用GDB調試Android手機中的程序
ruanchao2012
2018-08-27 03:52:17
SKIA圖形庫
ruanchao2012
2018-08-27 03:52:17
JNI示例 - 2
ruanchao2012
2018-08-27 03:52:17
Android顯示系統相關文章
ruanchao2012
2018-08-27 03:52:17
Android圖形系統
ruanchao2012
2018-08-27 03:52:17
SKIA中的JPEG編解碼
ruanchao2012
2018-08-27 03:52:03
Android圖形繪製
ruanchao2012
2018-08-27 03:52:03
飛行模式(AIRPLANE_MODE_RADIOS與AIRPLANE_MODE_TOGGLEABLE_RADIOS)
运动图像流
2018-08-26 22:30:00
Android adb shell 常用命令
anlory
2018-08-26 21:17:44
INotify的介紹和使用
anlory
2018-08-26 21:17:41
對apk進行系統簽名
anlory
2018-08-26 21:17:39
Android添加硬件訪問服務
anlory
2018-08-26 21:17:15
Android系統源碼編譯環境搭建(清華鏡像,想編譯什麼版本都可以,只是有JDK和make的版本要求)
aknew123
2018-08-26 17:26:55