跟核心虛擬機(jī)Dalvik說(shuō)再見(jiàn)Android Runtime(ART)登場(chǎng)
Dalvik是Android的核心組成部分之一,Android上的應(yīng)用程序需要依靠它才可以正常運(yùn)行?,F(xiàn)在Google準(zhǔn)備用新的運(yùn)行環(huán)境ART來(lái)替代它。在***的Android4.4上,有兩個(gè)運(yùn)行環(huán)境供開(kāi)發(fā)者選擇——默認(rèn)的Dalvik和測(cè)試中的ART。
在以前的Android系統(tǒng)上,所有的應(yīng)用程序都是運(yùn)行在Dalvik中。應(yīng)用程序每次運(yùn)行時(shí)其中一部分代碼都要需要機(jī)器重新編譯。這個(gè)過(guò)程即消耗時(shí)間又要消耗系統(tǒng)資源,所以執(zhí)行效率難免會(huì)降低。但其優(yōu)點(diǎn)在于這種機(jī)制可以讓各種各樣的應(yīng)用程序運(yùn)行在多種硬件架構(gòu)上。相比Dalvik,ART的處理機(jī)制完全不同,它會(huì)在應(yīng)用程序安裝時(shí)就把程序代碼轉(zhuǎn)換成機(jī)器語(yǔ)言,讓程序成為真正的本地應(yīng)用。這樣做的好處是程序的啟動(dòng)時(shí)間被極大的提高,運(yùn)行速度也會(huì)更快。電量消耗的更少,系統(tǒng)行也跟著更加流暢。
對(duì)于想嘗鮮的Nexus5用戶(hù)可以到設(shè)置的開(kāi)發(fā)者選項(xiàng)里選擇ART選項(xiàng),確認(rèn)之后機(jī)器會(huì)重啟,根據(jù)手機(jī)內(nèi)安裝的應(yīng)用程序數(shù)量不同,***次開(kāi)機(jī)消耗的時(shí)間也不相同。
由于ART還處于測(cè)試階段,所以目前還很難精確地度量出其為Android設(shè)備提升的效率。但是一些基準(zhǔn)測(cè)試表明它將大多數(shù)應(yīng)用程序的執(zhí)行時(shí)間削減了一半左右。這就意味著那些需要大量處理器性能和長(zhǎng)時(shí)間運(yùn)行的任務(wù)會(huì)被更快地執(zhí)行完畢,系統(tǒng)也會(huì)更多地停留在閑置狀態(tài)。電量損耗會(huì)減少,流暢度也自然會(huì)提升。
當(dāng)然ART帶來(lái)一些優(yōu)點(diǎn)的同時(shí),也會(huì)帶來(lái)一些缺點(diǎn)。
其一,由于ART需要應(yīng)用程序在安裝時(shí)就把程序代碼轉(zhuǎn)換成機(jī)器語(yǔ)言,所以這會(huì)消耗掉更多的存儲(chǔ)空間,但消耗掉空間的增幅通常不會(huì)超過(guò)應(yīng)用代碼包大小的20%。
其二,由于有了一個(gè)轉(zhuǎn)碼的過(guò)程,所以應(yīng)用安裝時(shí)間難免會(huì)延長(zhǎng)。拿***的Google+應(yīng)用為例,其apk格式的安裝包大小為28.3MB,但其代碼僅為6.9MB,所以多消耗掉的存儲(chǔ)空間并不驚人。至于第二個(gè)缺點(diǎn)那就只能等待了。
事實(shí)上,ART項(xiàng)目在Google內(nèi)部已經(jīng)進(jìn)行了2年左右的時(shí)間。回溯一下,當(dāng)時(shí)差不多就是Google和甲骨文因?yàn)镴ava專(zhuān)利官司鬧得不可開(kāi)交的那段時(shí)期。雖然到今天我們很難判斷發(fā)起ART項(xiàng)目的初衷是哪一個(gè),但既然它能提升Android設(shè)備的性能,我們?yōu)槭裁床粴g迎呢?