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