非常感謝作者!你的文檔幫助了我完成了作業(yè)。
我是在Android Q上參考的,在具體的對照中,發(fā)現(xiàn)有不太準確的地方。
BufferSlot mSlots[NUM_BUFFER_SLOTS] 這個不是和窗口數(shù)目對應的,由于一個Surface對應一個窗口,Surface的內(nèi)部變量不會和窗口總數(shù)對應。這個應該是指,同一個窗口中有NUM_BUFFER_SLOTS子buffer同時進行顯示刷新,是窗口內(nèi)部的組成部分。親測可以創(chuàng)建80個以上的窗口。
然后Surface內(nèi)部的frontbuffer和backbuffer,Q上已經(jīng)改名為
sp<GraphicBuffer> mLockedBuffer;
sp<GraphicBuffer> mPostedBuffer;
也不是傳統(tǒng)上理解上的2緩沖,3緩沖,3緩沖是驅(qū)動面向屏幕的,代碼一般看不到。
Android圖形系統(tǒng)(八)-app與SurfaceFlinger共享UI元數(shù)據(jù)過程Android應用程序與SurfaceFlinger服務是運行在不同的進程中的,因此,它們采用Binder進程間通信機制來進行通信。 但是我們知道一個Android應用程序可...