相關文章

0bb703bdede69420f97ca6a2406dd575 從 Android 4.4 開始,Google 開發者引進了新的 Android 運行環境 ART,以替代舊的 Dalvik VM。它目前仍然是實驗中的項目,系統預設的運作環境仍然是 Dalvik。ART 會為 Android 帶來什麼改變呢?

與 iOS 相比,Android 的使用者體驗有個相對糟糕的開始。在很長的時間裡,Android的介面比較不那麼突出,卡頓也是揮不去的痛。不過,在 Google 的全力推動,以及硬體廠商的努力下,Android 還是跨越各種阻礙,逐漸壯大起來了。

在此過程中,Google 也在經歷著重大的變化。它逐漸從一個只重視資料的公司,轉變為一個重視設計和用戶體驗的公司。從 Android 4.0 開始,Android 擁有了自己的設計語言和APP設計指導。與此同時,Google 也在著手解決卡頓問題。Android 4.1 的「奶油計畫」,Android 4.3 的 TRIM 支援,都顯著提高了系統運做的順暢度,而 Android 4.4 的「Project Svelte」則提升了記憶體管理,使得系統能夠順利的在硬體較低階的設備上運作。

不過,要解決app卡頓,還是要針對核心問題下手,就是app運行環境。Dalvik VM 效率並不是最高的。從 Android 4.4 開始,Google 開發者引進了新的 Android 運行環境 ART(意思就是 Android Runtime。Android 官方頁面的介紹中,也將其稱作新的虛擬機器),以替代舊的 Dalvik VM。它目前仍然是實驗中的項目,系統預設的運作環境仍然是 Dalvik。ART 會為 Android 帶來什麼改變呢?AndroidPolice 網站對此進行了分析。

ART 的機制與 Dalvik 不同。在 Dalvik 下,app每次運行的時候,位元組碼(Bytecode)都需要透過即時編譯器轉換為機器語言,這會拖慢app的執行效率,而在 ART 環境中,app在第一次安裝的時候,位元組碼就會預先編譯成機器語言,使其成為真正的本地app。這個過程叫做預編譯(AOT,Ahead-Of-Time)。這樣的話,app的啟動和執行都會變得更加快速。

根據一些基準測試,新的執行環境能夠使大多數app的執行時間減半。這意味著,CPU 消耗大、執行時間長的app能夠更加快速地完成,而一般的app也能更加流暢,例如動畫效果更順暢,觸控回饋更加即時。在多核處理器的設備上,多數情況下只需啟動少量的核心,或者能夠更好的利用 ARM 的 big.LITTLE 架構。另外,它將會顯著提升電池的續航能力以及系統的性能。

預編譯也會帶來一些缺點。一方面,機器語言佔用的儲存空間更大。位元組碼變為機器語言之後,可能會增加 10%-20%,不過在app包中,可執行的程式碼常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是程式碼只有 6.9 MB。另一方面,app的安裝時間會變長。至於延長多少時間,取決於app本身,一些複雜的app如 Facebook 和 Google+ 會讓你等待更長時間。

總的來說,ART 的優點還是遠遠超越其缺點的。畢竟,影響使用者體驗的要素中,電池續航和app順暢運行更為重要。我們仍然不知道 ART 何時能夠替代 Dalvik,不過 AndroidPolice 網站說,Google 已經秘密開發了兩年之久。Android 擺脫卡頓的希望,看來就是它了。

使用 Facebook 留言

FUCXSOP
4.  FUCXSOP (發表於 2013年11月11日 22:07)
曾經有人問我
Android 最大的問題在哪裡?

我回答他
Android 最大的問題就是永遠都在解決 iPhone 上不會發生的問題

這個問題很明顯的
就是卡頓
文中也說了 Android 已經多次嘗試解決這個問題
但始終不得其解
當然我也是已經不抱什麼希望了
要不是 Android 陣營的手機有大螢幕 ( 硬體開放 ) 的選擇
光憑那 Android 虛弱的跛腳系統體質
根本不可能有今天的市場份額 ╮(╯_╰)╭
G8gle
5.  G8gle (發表於 2014年6月20日 21:11)
曾經有人問我
iOS 最好用的功能是什麼?

我回答他
iOS 最好用的功能就是永遠都在新增 Android 上已經有的功能

發表回應

謹慎發言,尊重彼此。按此展開留言規則