Android 應用卡頓的常見原因以及Vsync原理

應用UI卡頓常見原因主要在以下幾個方面:

1.人爲在UI線程中做輕微耗時操作,導致UI線程卡頓;

2.佈局Layout過於複雜,無法在16ms內完成渲染;

3.同一時間動畫執行的次數過多,導致CPU或GPU負載過重;

4.View過度繪製,導致某些像素在同一幀時間內被繪製多次,從而使CPU或GPU負載過重;

5.View頻繁的觸發measure、layout,導致measure、layout累計耗時過多及整個View頻繁的重新渲染;

6.內存頻繁觸發GC過多(同一幀中頻繁創建內存),導致暫時阻塞渲染操作;

7.冗餘資源及邏輯等導致加載和執行緩慢;

8.臭名昭著的ANR;

Vsync機制:

通過Vsync信號來同步UI繪製和動畫,使得它們可以獲得一個達到60fps的固定的幀率;

爲了理解App是如何進行渲染的,我們必須瞭解手機硬件是如何工作,那麼就必須理解什麼是VSYNC。

在講解VSYNC之前,我們需要了解兩個相關的概念:

Refresh Rate:代表了屏幕在一秒內刷新屏幕的次數,這取決於硬件的固定參數,例如60Hz。

Frame Rate:代表了GPU在一秒內繪製操作的幀數,例如30fps,60fps。

GPU會獲取圖形數據進行渲染,然後顯示器硬件負責把渲染後的內容呈現到屏幕上,他們兩者不停的進行協作。




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章