天天看點

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

解析 Android ART 到底是什麼?「附:實測資料」

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

[核心提示] 本文的重點就是以新版 Nexus7 來作為樣機來介紹和測試一下這個神秘的 ART。ART 是一個什麼東西?

盼星星盼月亮,11 月 1 日,谷歌終于釋出了代号為 KitKat 的 Android4.4 和 Nexus5。個人認為 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)進行的測試,不排除不同版本之間存在誤差。在本文釋出時不排除應用已經更新進而對新系統進行了适配。以下所有的測試都是進行多次實驗算得的平均值。

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

應用占空間大小對比表:

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

從上面的測試可以看出,應用安裝上後分别使用 ART 和 Dalvik 方式所占的空間大小還是有很大差別的。京東和微信兩個應用甚至都快達到兩倍的關系了。PS Touch 卻相差很少。在 16G 是智能手機的标配,存儲器越來越大,越來越便宜的今天,如果 ART 能大幅提高 Android 使用者體驗及功耗的話,這點存儲損耗還是可以接受的。那第一次搭載的 ART Andoid4.4 到底争不争氣,是不是能帶來很大提升,接着往下看。

啟動時間對比表:

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

軟體相容性對比表:

解析 Android ART 到底是什麼?(附:實測資料) 解析 Android ART 到底是什麼?「附:實測資料」

這一次的測試結果顯而易見,使用 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 的到來吧。

除非特别聲明,極客觀察均為極客公園原創報道,轉載請注明作者及原文連結。

原文位址:http://www.geekpark.net/read/view/193134