Android4.4 ART省電原理
Nexus 5在本月初悄然發(fā)布,它共同發(fā)布的還有Android 4.4操作系統(tǒng)。雖然目前預(yù)裝Android 4.4操作系統(tǒng)的機(jī)型還只有Nexus 5一款,但在不久的將來,眾廠商一定會(huì)給我們帶來更多預(yù)裝Android 4.4的機(jī)型,而且目前一些主流的旗艦產(chǎn)品也毫無疑問會(huì)升級至Android 4.4。
按照谷歌的說法,Android 4.4相比以往的版本來說更加省電,因?yàn)樗谟布讓臃矫姘l(fā)生了巨大的改變么?那么這其中的原理是什么呢?下面我們就來詳細(xì)為大家解答一下。
首先,我們要搞清楚一個(gè)問題,那就是什么是Dalvik?
在整個(gè)Android 4.4的更新特性中,最引人矚目的應(yīng)該就是虛擬機(jī)由Dalvik轉(zhuǎn)成ART,也就是“中間件”的變更(Midware)。先來看看什么是Dalvik。
如圖,Dalvik虛擬機(jī)是一個(gè)Android運(yùn)行時(shí)的一部分,作用在于連接底層核心、周邊庫與上層應(yīng)用。
Dalvik的存在保證了Android在發(fā)展的初期可以讓大量JAVA程序員轉(zhuǎn)行做Android開發(fā)。同時(shí)也在兼容性上給予了保證。對于眾多的JAVA程序員來說,只要維持好Dalvik虛擬機(jī)和上下層的接口,上層應(yīng)用開發(fā)可以無視底層硬件。
當(dāng)然,還有另一個(gè)跟專利有關(guān)的原因:直接上JVM虛擬機(jī)會(huì)跟Sun公司扯皮。所以Google弄出來了這個(gè)Dalvik。把所有JAVA字節(jié)碼轉(zhuǎn)成Dalvik字節(jié)碼。
在Android 2.2時(shí)代,Google給Dalvik加入一個(gè)非常重要的特性——即為JIT(Just in time),即時(shí)編譯技術(shù)。
應(yīng)用程序每次運(yùn)行時(shí),其中一部分字節(jié)碼都要需要機(jī)器重新編譯為機(jī)器碼。這個(gè)過程即消耗時(shí)間又要消耗系統(tǒng)資源,所以執(zhí)行效率難免會(huì)降低。但其優(yōu)點(diǎn)在于這種機(jī)制可以讓各種各樣的應(yīng)用程序運(yùn)行在多種硬件架構(gòu)上。這也促成了海量山寨機(jī)在Android 2.2后井噴。
但最新的Android 4.4上,Google引入了新的ART(Android Runtime)虛擬機(jī)。在 ART 環(huán)境中,應(yīng)用在第一次安裝的時(shí)候,字節(jié)碼就會(huì)預(yù)先編譯成機(jī)器碼,使其成為真正的本地應(yīng)用。這樣的話,應(yīng)用的啟動(dòng)和執(zhí)行都會(huì)變得更加快速。
ART哪些地方比Dalvik優(yōu)秀?
一些基準(zhǔn)測試表明ART將大多數(shù)應(yīng)用程序的執(zhí)行時(shí)間削減了一半左右。這就意味著那些需要大量處理器性能和長時(shí)間運(yùn)行的任務(wù)會(huì)被更快地執(zhí)行完畢。搭配更加省電的Sensor Hub技術(shù),可以完美做到電量耗損減少的同時(shí),提升流暢度。
當(dāng)然,要做到這些也需要付出一些代價(jià)。首先,由于在安裝時(shí),ART需要應(yīng)用程序的字節(jié)碼轉(zhuǎn)換成機(jī)器碼,所以會(huì)消耗掉更多的存儲(chǔ)空間。
其次,由于有了一個(gè)轉(zhuǎn)碼的過程,所以安裝時(shí)間會(huì)延長。當(dāng)然,這個(gè)沒什么太大影響,只需要等會(huì)就行。
目前還有消息顯示魅族的Flyme OS可能會(huì)升級至Android 4.4,但這必然會(huì)需要一定的時(shí)間,在Android 4.4的幫助下,F(xiàn)lyme OS的續(xù)航表現(xiàn)可能會(huì)更好一些。