1. 程式人生 > >影響效能的可能性

影響效能的可能性

離屏渲染:

 

    在使用圓角、陰影和遮罩等檢視功能的時候,圖層屬性的混合體被指定為在未預合成之前不能直接在螢幕中繪製,所有就需要在螢幕外的上下文中渲染,即離屏渲染。

 

離屏渲染卡頓原因

離屏渲染之所以會特別消耗效能,是因為要建立一個螢幕外的緩衝區,然後從當屏緩衝區切換到螢幕外的緩衝區,然後再完成渲染;其中,建立緩衝區和切換上下文最消耗效能,而繪製其實不是效能損耗的主要原因。

設定了以下屬性時,就會觸發離屏繪製:

  • shouldRasterize(光柵化)
  • masks(遮罩)
  • shadows(陰影)
  • edge antialiasing(抗鋸齒)
  • group opacity(不透明)
  • 複雜形狀設定圓角等
  • 漸變

 

 

 

卡頓等效能問題的最主要根源都是因為渲染效能。從設計師的角度,他們希望App能夠有更多的動畫,圖片等時尚元素來實現流暢的使用者體驗。但是Android系統很有可能無法及時完成那些複雜的介面渲染操作。Android系統每隔16ms發出VSYNC訊號,觸發對UI進行渲染,如果每次渲染都成功,這樣就能夠達到流暢的畫面所需要的60fps,為了能夠實現60fps,這意味著程式的大多數操作都必須在16ms內完成()時間超出16ms越多,丟的幀就越多,可以大概估計一下Android 5秒沒響應丟擲anr異常期間丟了多少幀,筆者算了312幀)

 

 

 越來越複雜的 UI 意味著越來越重的 渲染工作。

 

相關的URL連結:https://blog.csdn.net/huang_rong12/article/details/51603250