前言
前一篇文章介紹了UI顯示的主要類測創建,關于顯示原理本來計劃再這一篇介紹的,但是android 8之后的ui顯示變得非常復雜,再一兩篇內不太容易介紹清楚,這篇文章只介紹一個大概流程,
正文
最關鍵的是服務端的BufferQueueProducer,這個用來管理顯存資料,通過共享記憶體,來方便APP填充內容,這個東西非常復雜,顯存是通過hal層封裝的實作的,可以便于分配記憶體管理,通過mapper模塊記憶體映射,這些代碼都需要閱讀hal層代碼,
得到的資料顯存資料保存再layer中,
因為surfacefligure內部可以觸發顯示事件,閱讀所有layer狀態,拿到需要顯示的顯存,然后通過特定的函式把所有的layer合成一起,最終通過display這個hal層的呼叫,顯示內容,
關于顯示內容的詳細內容,請參考大佬文章,介紹確實非常詳盡,
后記
關于UI顯示,是android比較復雜的一塊,也是非常核心的一塊,這次研究雖說沒有完全搞明白android的顯示流程,但是至少對于使用android的相關介面,特別是ndk相關,是非常熟悉的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/286347.html
標籤:其他
