国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Android核心分析(27)-----Android GDI 之SurfaceFlinger之動(dòng)態(tài)結(jié)構(gòu)示意圖
SurfaceFlinger對(duì)象建立過程示意
 
1 SurfaceSession的建立
    客戶端請(qǐng)求建立Surface時(shí),首先在要與SurfaceFlinger建立一個(gè)Session,然后再Session上建立一個(gè)Connection通過概念返回Bclient對(duì)象。WindowManagerService在添加第一個(gè)窗口前會(huì)檢查SurfaceSession是否建立,如何沒有建立,將會(huì)新建立一個(gè)實(shí)例來代表與SurfaceFlinger的一個(gè)連接。
new SurfaceSession()@windowAddedLocked() @WindowManagerService.java。
SurfaceSession的建立過程大部分是在C++ Native空間中完成的,表現(xiàn)在SurfaceSession的初始化函數(shù):init()本地函數(shù)上。從下面的初始化函數(shù)可以看到:
Init()<->SurfaceSession_init@android_view_Surface.cpp
     new SurfaceComposerClient
    SurfaceSession在C++Native空間建立一個(gè)SurfaceComposerClient實(shí)例。而該實(shí)例的建立實(shí)現(xiàn)了如下的與SurfaceFlinger通訊基礎(chǔ):
(1)建立了代理SurfaceFlinger服務(wù)的代理服務(wù)端
(2)建立了IsurfaceFlingerClient連接,在SurfaceFlinger端建立了對(duì)應(yīng)的Client,并將BClient返回給WindowManagerService。
 

 
2 Surface的建立
    在WindowManagerService中WindowState類中,我們知道每個(gè)主窗口子啊需要是都需要建立一個(gè)Surface與之對(duì)應(yīng)。win.createSurfaceLocked()@relayoutWindow
Surface.java
Init()< -- >Surface_init(….,session,pid,dpy,w,h,format)@android_view_Surface.cpp
     SurfaceControl surface(client->createSurface
      在mClient的連接上:建立ISurface接口:
      M_Client->greateSurface(...)@
        Bclient ::createSurface(mId...)@SurfaceFlinger.cpp
            mFlinger->createSurface(clientid....)
               createNormalSurfaceLocked

*createNormalSurfaceLocked:建立一個(gè)Layer分配顯示內(nèi)存
*createPushBuffersSurfaceLocked:建立一個(gè)LayBuffer但是不分配顯示內(nèi)存。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【轉(zhuǎn)】Android平臺(tái)——Surfaceflinger機(jī)制
Android SurfaceFlinger學(xué)習(xí)文檔
Android SurfaceFlinger中的SharedClient
Android
Android 圖形顯示框架
Android 4.0.3 顯示系統(tǒng)深入理解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服