1.UI顯示圖像原理
CUP->GPU->Frame Buffer ->視頻控制器->顯示器
1.CPU:負責提交位圖
2.GPU:負責渲染內容并提交到幀緩沖區(qū)
3. Frame Buffer :存放渲染好的內容
4:視頻控制器:根據(jù)垂直顯示信號的提示去幀緩沖區(qū)提取屏幕要顯示的內容
5:顯示器:顯示內容
2.UI卡頓掉幀原因
原因:CPU+GPU工作的時間>16.67ms導致掉幀
CPU工作:
1.Layout:文本處理, 文本寬高計算,布局計算,高度緩存
2.Rendering:文本繪制,圖片解碼,
3.提交位圖:
4.對象的創(chuàng)建,操作,銷毀
GPU工作:
頂點著色,元圖組裝,柵欄化,片段著色,片段處理
3.離屏渲染
當前屏幕渲染:當前用于顯示的緩沖區(qū)進行渲染
離屏渲染:CPU離屏渲染&GPU離屏渲染
GPU離屏渲染:在當前屏幕緩存區(qū)外開辟了一塊緩沖區(qū)進行渲染操作
為何要避免離屏渲染?
1.需要額外開辟一塊緩沖區(qū)供渲染操作
2.onscreen和offscreen上下文切換才能完成
3.渲染的每一幀都會這樣處理
導致:GPU工作量加大->CPU+GPU>16.67ms
5.UIView和CALayer
單一指責原則:
UIView:負責提供內容給Layer,負責處理觸摸等事件,參與響應鏈
CALayer:負責顯示contents
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者