-
首先一個視圖由CPU進行Frame佈局,準備視圖和圖層的層級關係,查詢是否有重寫drawRect:或drawLayer:inContext:方法,注意:若是有重寫的話,這裏的渲染是會佔用CPU進行處理的。
-
CPU會將處理視圖和圖層的層級關係打包,經過IPC(內部處理通訊)通道提交給渲染服務,渲染服務由OpenGL ES和GPU組成。
-
渲染服務首先將圖層數據交給OpenGL ES進行紋理生成和着色。生成先後幀緩存,再根據顯示硬件的刷新頻率,通常以設備的Vsync信號和CADisplayLink爲標準,進行先後幀緩存的切換。
-
最後,將最終要顯示在畫面上的後幀緩存交給GPU,進行採集圖片和形狀,運行變換,應用文理和混合。最終顯示在屏幕上。