Android O開發者預覽系統體驗[Nexus 6P] Skia GPU介紹和測試
農步祥 于 2017.04.23 17:41:26 | 源自: | 版權:原創
平均/總評分:10.00/100

上個月,谷歌提供了Android O的第一個開發者預覽版的系統鏡像下載, 雖然它對應的正式版系統Android 8要在今年第三季度才會正式發布,但未來新系統的許多重要變化,將會在開發者預覽系統中進行體驗和測試。由于是早期開發者固件,穩定性尚未達到Beta級別,谷歌并未向申請了系統測試的用戶推送更新。目前支援Android O的機型有Pixel C、Pixel、Pixel XL和Nexus 5X、Nexus 6P等,由于Pixel XL正用于拍攝樣張,因此我們在Nexus 6P上手動下載安裝了Android O系統用于體驗。

在界面上,由于的原生Android機型會保持獨立的風格,因此界面風格并不是統一的,即使Nexus 6P在更新后,桌面和應用抽屜風格和原來一致,并沒有向Pixel XL的界面樣式靠攏。和去年的Android N和前年的Android M對比,Android O在“開發預覽”的部分增加了相當多的新功能,雖然許多功能看起來和手機的應用無關,但還是和用戶日常使用體驗密切掛鉤的。其中就包括了Skia功能的開放。4年前,我們在一篇技術分析文章的翻譯中介紹并測試了Skia和Skia GPU加速的性能表現,不過近年來Soomal的新增了大量圍觀群眾和讀者,這部分對許多人來說或許是全新的內容,所以首先還是來回顧一下Skia和過去Android GPU加速的小知識。

Skia介紹

Skia是一個2D圖形顯示引擎,使用C++編寫,在2005年被谷歌收購,目前是Chrome OS、Chrome瀏覽器Firefox和Android的圖形渲染核心,并以BSD協議開放源碼。不過目前穩定的Android系統并未使用完整的Skia API進行2D圖形的渲染,許多圖形處理仍通過OpenGL向幀緩沖輸出進行顯示。不過開發者和系統愛好者可以自行下載Skia的源代碼編譯強制替換成為Android預設的2D顯示引擎。

從Android 3.0開始,谷歌在開發者選項中提供了一個GPU硬體加速功能,但此功能一直處于測試狀態,表現并不穩定。但這個功能可以很好地測試GPU硬體加速對Android性能的影響。在當時,Skia GPU加速實測表現還遠不如直接使用CPU進行圖形處理。與之相對的是,即使如英特爾BayTrail Atom這樣CPU性能較弱的X86處理器,借助Windows 8/10優秀的GPU硬體加速效率和圖形處理能力也能獲得流暢的系統使用體驗。

當然這樣的表現對比并不會讓人意外,畢竟從Linux演變而來的Android繼承了Linux在圖形性能上的缺點[超算電影CG渲染那種堆節點的暴力應用案例不算],不過隨著OpenGL自身的進步,以及性能效率媲美DirectX 12的Vulkan API發布,Android的3D圖形性能上的表現是在逐步改善的。另外各個ARM處理器廠商針對Android的圖形系統特點進行硬體級的優化,已經做得比較成熟。甚至還有NVIDIA的Tegra處理器依靠強大全面的GPU紋理壓縮功能對2D和Web界面進行優化傳輸,以達到實質上的GPU加速效果。

然而隨著熒幕解析度的大幅度提高,單純依靠CPU優化的方案在高解析度顯示下已經力不從心,也越來越耗電。雖然大多數網路APP本質就是網頁瀏覽器套個應用外殼[一般被稱為WebView,對比淘寶的手機瀏覽器版和手機APP的差別便知],在微信支付寶臉書等日漸復雜和越發變態的網路應用面前,2000元價位的主流性能手機已經不大可能只依靠CPU優化和記憶體硬吃等簡單粗暴的手段改善應用體驗了。

在Android O開發預覽版中,谷歌開放了完整的Skia系統渲染功能,并且可以在開發者選項中進行切換,對于Android開發者用戶來說省去了下載源碼編譯和安裝集成的步驟。可以方便地比較Skia和Skia GPU加速的性能表現區別。

Skia GPU性能測試

在截下來的理論性能測試中我們主要測試Android O的預設渲染器、Skia和Skia GPU加速的性能表現差異。測試主要使用browserbench.org的HTML/javascript測試和Vellamo的瀏覽器測試部分。由于手機系統重啟后渲染器的選項會重置,因此每次測試后只能通過清理進程和加強散熱的方式確保系統運行的狀態。

MotionMark主要測試的是網頁的圖片、矢量圖形和動畫效果的顯示性能,Skia GPU還是比CPU渲染稍慢一些,但差距很小。

JetStream是用于測試模擬運行復雜Javascript腳本時瀏覽器的性能表現。使用Skia GPU時,JetStream的Javascript性能提高了10%,看起來不多。不過在PC上同樣電腦配置下[i7 6700+GTX1080]微軟的Edge瀏覽器也只比Chrome快10%而已,而且腳本加載、加密和頁面的讀取速度等幾個單項有明顯提升,說明GPU加速對復雜Javascript的部分運算還是有明顯影響的。

Vellamo得出的整體成績是Skia比Skia GPU好一些,可以視為區別不大,在驍龍820處理器平臺上測試的對比效果應該更好,因為Nexus 6P的驍龍810容易出現過熱降頻的問題,無法連續長時間運行測試。

總結和展望

目前以Android O為基礎應用還無法進入Google Play市場,至于一些主要的國內網路應用,能在測試系統上正常運行的還較少。而Nexus 6P本身網頁瀏覽表現就不好,在使用Skia GPU加速時,動畫和劃動頁面效果還是要比預設的渲染器明顯更慢,除了處理器的性能和運行穩定性成為了瓶頸,Skia GPU本身還是存在一些問題。

和四年前相比,通過開源和不斷的開發完善,Skia確實有了長足的進步,這也是它成為多款瀏覽器和作業系統的預設圖形渲染器的原因。而Skia GPU加速雖然在圖形顯示效果上并沒有比CPU渲染更好[聽起來很奇怪?],但是和過去的“負優化”相比,Skia GPU起碼已經處于可用狀態,而且對于那些日漸變態的網路應用來說,Javascript的腳本運算同樣占據了不少負載,Skia GPU加速確實可以改善復雜腳本、加密腳本的加載時間和觸發延遲,也意味著耗電時間的減少,即使“看起來”那些網路應用并沒有變得更流暢,但整體對于用戶體驗改進而言效果還是正面和積極的。

轉發到新浪微博 轉發到騰訊微博 RSS訂閱 收藏本文 本文代碼
請您評分 1 2 3 4 5 6 7 8 9 10
此帖使用MAC提交
蛋炒飯修改此貼于2017.05.24 15:14:41
發表于2017.05.24 14:13:08
19
085.025.236.***
085.025.236.***
發表于2017.05.15 15:37:05
18
發表于2017.04.25 23:00:58
17
211.143.230.***
211.143.230.***
發表于2017.04.25 12:12:27
16
112.115.***.***
112.115.***.***
測試過的機型有:安卓4.0.4的HTC EVO 3D;安卓4.4的三喪NOTE3(韓版);安卓5.0的樂視1PRO;安卓6.0的LG V10;安卓6.0和安卓7.0的LG G5(韓版)。其中HTC EVO 3D開了這個電池如同尿崩,機身發熱頻次和程度明顯惡化;其次是LG的G5和V10,開了后明顯感到待機更垃圾了;樂視1PRO開了后,待機時莫名發熱以及電池狂掉概率上升。總而言之,感覺打開強制使用GPU呈現后,原先跟手的操作仍舊跟手,原先會卡頓的操作仍舊卡頓,但是電池卻負優化了,難怪谷歌把這玩意兒一值珍藏在開發者選項里并且預設關閉……就好比當年停電,我全低特效(垂直同步開)開啟獨顯跑老滾5,筆記本堅挺了2小時左右;同樣的設定,用核顯關獨顯,筆記本居然堅挺了快4個小時。所以我想說,看個網頁、聊個微信神馬的時候,你GPU最好做一個安靜的花瓶,呆在那發呆就行,就不麻煩您老人家了,畢竟我們這邊還1核有難,9核圍觀中……
此帖使用Win10提交
發表于2017.04.25 10:58:44
15
114.229.031.***
114.229.031.***
發表于2017.04.25 10:18:15
14
也贊樓上的高手
此帖使用iPhone提交
發表于2017.04.24 18:56:43
12
220.172.006.***
220.172.006.***
發表于2017.04.24 17:41:58
11
220.172.004.***
220.172.004.***
發表于2017.04.24 17:41:58
10

此帖使用ZUK Z2131提交
發表于2017.04.23 23:58:38
9
111.058.146.***
111.058.146.***
發表于2017.04.23 23:52:05
8
221.013.063.***
221.013.063.***
發表于2017.04.23 22:26:37
6
175.042.221.***
175.042.221.***
發表于2017.04.23 22:25:12
5
Skia是一個可以跨平臺使用的色彩空間處理和2D圖形加速庫,但是這個庫所面對的后端還是根據作業系統選擇的(Linux和Android為OpenGL Windows為Direct 3D、Direct 2D或者是陳舊的GDI)。
在以前的Android版本中Google就已經使用Skia作為圖片處理庫了(我記得沒錯的話在Android 7以前的版本中Skia有RGB和YVY色彩互轉的Bug,問題表現JEPG圖片經過多次轉換后會變綠)。
從Android 4.0開始,Google為應用程式提供了基于OpenGL ES 2.0實現的全局可用的GPU 2D加速(在Android 4.1-4.4又進行了大量的功能更新)。
Android的WebView(也可以說Android版本的Google Chrome和Mozilla Firefox)是使用Android提供的GPU2D加速實現的網頁加速,這樣不利于瀏覽器的跨作業系統實現,而Skia將不同作業系統的圖形加速封裝成統一的API,可以方便的實現跨作業系統的硬體加速實現。我覺得這才是Skia真正重要的地方。
此帖使用NEXUS 6P提交
發表于2017.04.23 21:23:57
4
171.105.146.***
171.105.146.***
發表于2017.04.23 19:34:57
3

此帖使用MX6提交
發表于2017.04.23 18:46:55
2
類似這種渲染可以使用Volcan嗎?如果可以的話會不會好些
此帖使用MZ-MX4提交
發表于2017.04.23 18:22:52
1
提示本貼不可匿名回復,回復等級為:0 ,您現在正處在潛水狀態
回復
驗證碼
7890 為防止廣告機貼垃圾,不得已而為之
表情
正文