1. 程式人生 > >Android UI優化—從Android渲染原理理解UI卡頓

Android UI優化—從Android渲染原理理解UI卡頓

Android渲染機制

1、Android系統每隔16ms發出VSYNC訊號,觸發對UI進行渲染
2、渲染的過程是由CPU與GPU協作完成
如下圖:
在這裡插入圖片描述

為什麼是16ms?

1、人眼與大腦之間的協作無法感知超過60fps的畫面更新
2、1000/60hz,相當於16ms

什麼是GPU?

解釋什麼是GPU,首先要弄清楚一個概念—柵格化。
柵格化就是將Button,Shape,Path,String,Bitmap等UI元件拆分到不同的畫素上進行顯示。如下圖:

在這裡插入圖片描述
UI的渲染過程由CPU和GPU共同完成,其中CPU負責把UI元件計算成Polygons,Texture紋理,然後交給GPU進行柵格化渲染。 GPU的引入就是為了加快柵格化的操作。
CPU和GPU協同工作的示意圖如下:
在這裡插入圖片描述

UI卡頓的原因

沒有辦法在16ms內完成UI更新操作

如何解決UI卡頓

1、優化UI層次結構,去除不必要的巢狀,儘量使佈局扁平化
2、減少過度繪製