盼星星盼月亮,11 月 1 日,谷歌終于發(fā)布了代號為 KitKat的 Android4.4 和 Nexus7。 個人認(rèn)為 Android4.4 最大的更新就是針對 RAM 占用進(jìn)行了優(yōu)化并且推出 ART 來代替 Dalvik,其甚至可以在一些僅有 512MB RAM 的老款手機(jī)上流暢運(yùn)行。它也進(jìn)一步優(yōu)化了系統(tǒng)在低配硬件上的運(yùn)行效果,似乎是為了更好地在眾多智能穿戴設(shè)備上運(yùn)行。11 月 13 日,谷歌放出了 nexus7 和 nexus10 的 Android4.4。
本文的重點(diǎn)就是以新版 Nexus7來作為樣機(jī)來介紹和測試一下這個神秘的 ART。ART 是一個什么東西?在過去,安卓的應(yīng)用程序由 Dalvik Java 虛擬機(jī)運(yùn)行,Dalvik 依靠一個 Just-In-Time(JIT) 編譯器去向硬件“解釋” App 字節(jié)碼,代碼和硬件打交道時(shí)平白無故多出一個解釋過程,顯而易見,這種方式并不能直接調(diào)用底層的硬件,而是通過了一個中間介紹人來讓 App 運(yùn)行,這就是為什么搭載 Android 系統(tǒng)的手機(jī)相比 iPhone 來說耗電快,軟件占內(nèi)存大,卡頓嚴(yán)重。從而 Dalvik 被看作安卓運(yùn)行效率低下的“毒瘤”。當(dāng)然,Dalvik 虛擬機(jī)讓應(yīng)用能更容易在不同硬件和架構(gòu)上運(yùn)行,是安卓系統(tǒng)普及的功臣。
Android 操作系統(tǒng)已逐漸成熟,谷歌開始將注意力轉(zhuǎn)向一些底層組件,谷歌已經(jīng)花了很長時(shí)間開發(fā)更快執(zhí)行效率更高、更省電的 ART 運(yùn)行時(shí)。自 Android 4.4 開始,谷歌將逐漸用 ART 運(yùn)行時(shí)替代 Dalvik。而新的 ART 則完全改變了 Dalvik 這套做法,其處理應(yīng)用程序執(zhí)行的方式完全不同于 Dalvik,在應(yīng)用安裝時(shí),ART 就直接把代碼預(yù)編譯成機(jī)器語言,這一機(jī)制叫 Ahead-Of-Time (AOT)編譯。和 Dalvik 相比,經(jīng)過 ART 編譯后的應(yīng)用從根本上省略了解釋字節(jié)碼這個過程,運(yùn)行起來更有效率、耗電更少、占的內(nèi)存也更低。當(dāng)然,預(yù)編譯也帶來了兩個問題,一個是應(yīng)用占用的存儲空間 將會更大,另一個是這個過程也會讓應(yīng)用安裝耗時(shí)更長。預(yù)編譯的 App 體積會大一些,安裝時(shí)間則要看 App 本身的復(fù)雜程度。不過,App 的安裝過程只有一次,相信大部分人是能忍受這個時(shí)間的。以下是用 2013 版 Nexus7(16G)進(jìn)行的測試,不排除不同版本之間存在誤差。在本文發(fā)布時(shí)不排除應(yīng)用已經(jīng)更新從而對新系統(tǒng)進(jìn)行了適配。以下所有的測試都是進(jìn)行多次實(shí) 驗(yàn)算得的平均值。
應(yīng)用占空間大小對比表:
從上面的測試可以看出,應(yīng)用安裝上后分別使用 ART 和 Dalvik 方式所占的空間大小還是有很大區(qū)別的。京東和微信兩個應(yīng)用甚至都快達(dá)到兩倍的關(guān)系了。PS Touch 卻相差很少。在 16G 是智能手機(jī)的標(biāo)配,存儲器越來越大,越來越便宜的今天,如果 ART 能大幅提高 Android 用戶體驗(yàn)及功耗的話,這點(diǎn)存儲損耗還是可以接受的。那第一次搭載的 ART Andoid4.4 到底爭不爭氣,是不是能帶來很大提升,接著往下看。
啟動時(shí)間對比表:
軟件兼容性對比表:
這一次的測試結(jié)果顯而易見,使用 Dalvik 的兼容性完爆使用 ART 的。雖然說在使用 Dalvik 時(shí)也出現(xiàn)了少許不兼容,但這應(yīng)該是更新了新系統(tǒng)導(dǎo)致的,屬于正?,F(xiàn)象,而使用 ART 時(shí)多個應(yīng)用和游戲出現(xiàn)不兼容這就說不過去了。
筆者又對系統(tǒng)流暢性和耗電進(jìn)行了粗略性的測試發(fā)現(xiàn) Android4.4 在 ART 和 Dalvik 情況下耗電和流暢度基本差不多,但相比 Android4.3,系統(tǒng)流暢性還是有比較明顯地提升。至于安裝應(yīng)用所用的時(shí)間,筆者粗略測試使用 ART 模式所用的時(shí)間是 Dalvik 模式下的兩倍。新版的 Nexus7 跳屏問題是眾所周知的,谷歌對此打了補(bǔ)丁也是無效,很多人悲觀的認(rèn)為是硬件的問題,我的 N7 也時(shí)不時(shí)的犯病,讓人驚喜的是更新了 4.4 后,我使用了一整天再也沒有出現(xiàn)過這個問題,難道就是系統(tǒng)問題?現(xiàn)在還不能下定論,讓時(shí)間來檢驗(yàn)吧??吹竭@不用說大家也能得出結(jié)論,現(xiàn)在的 ART 還不能與 Dalvik 抗衡。那為什么谷歌還要加上這個功能呢?從技術(shù)上來講,ART 的執(zhí)行效率肯定比 Dalvik 高,可能由于部分軟件沒有針對其進(jìn)行優(yōu)化,加上這項(xiàng)技術(shù)谷歌可能還沒有消化好,從而出現(xiàn)了性能反而不如 Dalvik 的情況。Androd 默認(rèn)使用的是 Dalvik 模式,再加上這個功能本來就是針對開發(fā)者測試用的,所以建議普通用戶還是不要切換的好。話又說回來了,這項(xiàng)技術(shù)能從根源上解決或者是緩解耗電快,軟件占內(nèi) 存大,卡頓嚴(yán)重的問題,相信通過谷歌的優(yōu)化,下一個 Android 版本 ART 會直接是默認(rèn)的運(yùn)行模式。該來的總會來的,讓我一起等待 Android5.0 的到來吧。
來源:極客公園