Android UI渲染流程及優化

CPU和GPU

CPU作爲"中央處理器",除了負責邏輯運算外,還需要做內存管理,顯示操作,因此隨着各種複雜App的出現,其實際運算的性能會大打折扣。
設計原由: 爲了提高圖像顯示效率以及顯示覆雜的圖像,設計出了GPU
主要功能:爲了幫助CPU分擔圖像顯示
在這裏插入圖片描述

XML佈局顯示至屏幕的流程

在這裏插入圖片描述

FPS

12fps:畫面幀率高於每秒約10-12幀時,眼睛會認爲它是連貫的
24fps:有聲電影拍攝一般爲每秒24幀
30fps:早期動態電子遊戲,一般會在每秒30幀左右
60fps:手機交互過程中,需要觸摸和反饋,需要60幀才能達到不卡頓的效果

Android每隔16ms就會發送一個vsyc信號,對我們的UI進行渲染,如果每次都能成功的話,就可以達到流暢的60fps的效果。

所以我們的優化目標是

  • CPU減少XML轉換成對象的時間
  • GPU減少重複繪製

過渡繪製

GPU每隔16ms渲染一次,如果CPU傳遞過來的圖像有重複的位置,會造成用戶只能看到頂層畫面,而底層畫面則被覆蓋,底層部分的繪製雖然用戶無法看到,但同樣佔據了計算資源,造成不必要的繪製,這種情況就叫做過渡繪製。

小結

UI優化解決方案

  • 佈局中的背景是否需要
  • 是否可以刪除多餘佈局
  • 自定義View是否進行了相應的裁剪
  • 佈局是否夠扁平化
  • 使用Merge標籤排除多餘一層ViewGroup容器
  • 使用ViewStub進行佈局的懶加載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章