Android系統每隔16ms重新繪制一次Activity,意思就是你的app必須在16ms內完成屏幕刷新的所有邏輯操作,這樣才可以達到60幀/s。但是用戶一般看到的卡頓是由于Android渲染性能造成的。
首先我們要了解Android的渲染機制,主要分為兩個組件:CPU和GPU。
這兩者共同完成屏幕上的繪制。
Activity如何將復雜的UI轉換成用戶看得懂的圖像繪制到屏幕上呢?
這些都是通過柵格化操作完成的,所謂的柵格化操作就是繪制那些Button,Shape,Path,String,Bitmap等組件最基礎的操作。它們把這些組件拆分到不同的像素上進行顯示,簡單點講就是將那些復雜的XML布局文件和標記語言,轉化成用戶能看得懂的圖像,但是這些不是直接轉化的,XML布局文件需要在CPU中首先轉化稱多邊形或者紋理,然后再傳遞給GPU進行柵格化,對于柵格化跟OpenGL有關,柵格化是一個特別費時的操作。