馬上註冊  |  找回密碼

SAY討論區

查看: 179|回復: 12
打印 上一主題 下一主題

新Android系統ART解析:流暢度、性能猛提升 [複製鏈接]

Rank: 7Rank: 7Rank: 7

好友
0
帖子
4928
積分
9785
最後登錄
2018-7-31
在線時間
0 小時
跳轉到指定樓層
樓主
發表於 2014-7-7 12:29:24 |只看該作者 |倒序瀏覽
Android 下一個版本將會有兩個重大改變。其中一個是明顯的改變,系統界面采用全新的Material Design,另一個改變屬於底層部分,但是也直接影響到用戶體驗。Google將徹底拋棄 Davik,啟動新的應用環境ART(Android Runtime)。ART 能否解決長期困擾Android的卡頓問題?AnandTech網站對此進行了深入的分析。
架構
ART 完全兼容Dalvik的字節碼格式dex,因此,開發者編寫軟件不會受到影響,也無需擔心兼容性問題。ART的一大變化是,它不僅支持即時編譯(JIT),而且支持預先編譯(AOT)。在Dalvik上,每次軟件運行,都需從字節碼編譯為原生代碼,ART可以隻編譯一次。然後,軟件每次運行時,執行編譯好的原生代碼。預先編譯也為新的優化帶來了可能性。同時,這也會明顯改善電池續航,因為軟件運行時不用編譯了,從而減少了CPU的使用頻率,降低了能耗。
ART 也有一些缺點。其中一個是,設備首次啟動,以及應用的首次啟動時間會變長,不過,Google 宣稱說,這種差別不是很大,而且他們會在這方面努力,使其接近甚至超過 Dalvik。另一個缺點是原生代碼占用空間更大,不過,現在設備的空間應該都足夠。
垃圾回收
Android 虛擬機是自動內存管理。優點是,開發者無需擔心內存管理,缺點是,開發者失去了控制權,依賴於系統本身的機制。Dalvik 的垃圾回收機制是造成系統卡頓的原因之一。在Dalvik虛擬機下,啟動垃圾回收機制會造成兩次暫停(一次在遍歷階段,一次在標記階段)。所謂暫停,就是應用的所有線程都不再執行。如果暫停時間過長,應用渲染中就會出現掉幀。用戶體驗上來說,就是應用運行的時候出現卡頓。
Google宣稱,Neuxs 5的平均暫停時間是54ms,結果就是,每次垃圾回收啟動,平均掉幀是4幀。如果應用編寫的不好,情況會更加糟糕。Anandtech測試了FIFA遊戲。Dalvik環境下,啟動應用的幾秒內,垃圾回收啟動9次,應用暫停時間總和603ms,總共掉幀是214幀。在ART下,情況有了極大改善。同樣時間裡,應用暫停時間總和是12.364ms(4次前臺垃圾回收,2次後臺垃圾回收),總共掉幀是63幀。
ART 能夠做到這一點,是因為應用本身做了垃圾回收的一些工作。垃圾回收啟動後,不再是兩次暫停,而是一次暫停。在遍歷階段,應用不需要暫停,而標記階段的暫停時間也大大縮短,因為 Google使用了一種新技術(packard pre-cleaning),在暫停前就做了許多事情,減輕了暫停時的工作量。Google承諾說,他們已經把平均暫停時間降到了3ms,遠遠超過Dalvik的垃圾回收。
與此同時,Google還改進了內存分配系統,把分配速度加快了10倍。垃圾回收算法也進行了修改,以增強用戶體驗,避免應用被打斷。
64位支持
ART支持64位系統,這會帶來性能上的提升,加密能力的大幅改進,同時保持與現有32位應用的兼容性。與蘋果不同的是,Google使用了指針壓縮,以避免轉換到64位後,空間占用大幅增加,其虛擬機仍然是 32 位指針。
Google宣稱,現有Play Store上應用中,85%都可以轉移到64位,剩下的15%有原生代碼,需要重新編譯。總的來說,轉移到64位應該會在短時間內完成。
總結
從許多方面來說,Google兌現了其提升性能的承諾,解決了困擾Android的諸多問題。Android的一些致命弱點,原因在於非原生應用和自動內存管理系統,ART在這些方面做出了大量改進。總之,在應用的流暢度和性能方面,Android終於可以與iOS一決高下了。
b4kgfb4mdyb21.jpg
分享分享0 收藏收藏0 讚好讚好0 Unlike!Unlike!0 分享 傳送 邀請

好友
0
帖子
130099
積分
135708
最後登錄
2019-2-28
在線時間
0 小時
No.1回覆者
發表於 2014-7-7 18:07:46 |只看該作者
強人,佩服死了。呵呵,不錯啊

好友
0
帖子
124604
積分
124614
最後登錄
2019-2-28
在線時間
0 小時
跟尾2
發表於 2014-7-7 22:30:47 |只看該作者
終於看完了~~~

好友
0
帖子
125032
積分
125046
最後登錄
2019-2-28
在線時間
0 小時
跟尾3
發表於 2014-7-8 03:38:18 |只看該作者
長時間沒來看了 ~~

好友
0
帖子
125299
積分
125305
最後登錄
2019-2-28
在線時間
0 小時
5#
發表於 2014-7-8 05:48:22 |只看該作者
呵呵,找個機會...

好友
0
帖子
124245
積分
124252
最後登錄
2019-2-28
在線時間
0 小時
6#
發表於 2014-7-8 07:44:05 |只看該作者
天天尼伊達,快樂似神仙

好友
0
帖子
129971
積分
135466
最後登錄
2019-2-28
在線時間
0 小時
7#
發表於 2014-7-8 12:44:11 |只看該作者
快站沙發,不知道有沒有成功

好友
0
帖子
123922
積分
123949
最後登錄
2019-2-28
在線時間
0 小時
8#
發表於 2014-7-8 16:33:24 |只看該作者
太棒了!

好友
0
帖子
123912
積分
123922
最後登錄
2019-2-28
在線時間
0 小時
9#
發表於 2014-7-9 10:09:54 |只看該作者
這是一篇不錯的帖子

好友
0
帖子
125013
積分
125023
最後登錄
2019-2-28
在線時間
0 小時
10#
發表於 2014-7-11 06:48:35 |只看該作者
賺點分不容易啊
您需要登錄後才可以回帖 登錄 | 馬上註冊 |

Archiver|手機版|SAY討論區

GMT+8, 2026-7-10 16:49 , Processed in 0.754147 second(s), 11 queries .

Powered by go2tutor.comDiscuz! X2

© 2026 Community Networks Limited

回頂部