`
quanminchaoren
  • 浏览: 911912 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android GDI之SurfaceFlinger之动态结构示意图

阅读更多

SurfaceFlinger对象建立过程示意

 

1 SurfaceSession的建立

    客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection 通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建 立,将会新建立一个实例来代表与SurfaceFlinger的一个连接。

new SurfaceSession()@windowAddedLocked() @WindowManagerService.java。

SurfaceSession的建立过程大部分是在C++ Native空间中完成的,表现在SurfaceSession的初始化函数:init()本地函数上。从下面的初始化函数可以看到:

Init()<-> SurfaceSession_init@android_view_Surface.cpp

     new SurfaceComposerClient

    SurfaceSession在C++Native空间建立一个SurfaceComposerClient实例。而该实例的建立实现了如下的与SurfaceFlinger通讯基础:

(1)建立了代理SurfaceFlinger服务的代理服务端

(2)建立了IsurfaceFlingerClient连接,在SurfaceFlinger端建立了对应的Client,并将BClient返回给WindowManagerService。

image

image

2 Surface的建立

    在WindowManagerService中WindowState类中,我们知道每个主窗口子啊需要是都需要建立一个Surface与之对应。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:建立一个Layer分配显示内存

*createPushBuffersSurfaceLocked: 建立一个LayBuffer但是不分配显示内存。

image

 

分享到:
评论

相关推荐

    [经典文档]Android核心分析

    [经典文档]Android核心分析 核心分析之一 ----- 分析方法论探讨之设计意图 ...核心分析之二十六 ----- Android GDI之SurfaceFlinger动态结构示意图 核心分析之二十七 ----- Android GDI之Surface&Canvas;

    android核心分析pdf

    android核心分析,介绍了android的一些特性,共二十几个介绍点,网上word文件转化为...Android核心分析(27)----Android GDI SurfaceFlinger之动态结构示意图 Android核心分析(28)----Android GDI之Surface&Canvas;

    Android核心分析(pdf)

    androi的核心分析,android平台开发不可缺少的资料。本书为网上资料转换为pdf文件,...Android核心分析(27)----Android GDI SurfaceFlinger之动态结构示意图 Android核心分析(28)----Android GDI之Surface&Canvas;

    android 核心分析

    Android 核心分析 之一--------...Android 核心分析(27)-----Android GDI 之 SurfaceFlinger 之动态结构示意图..123 Android 核心分析(28)-----Android GDI 之 Surface&Canvas..................................126

    Android核心设计思想分析

    Android核心分析之一--------分析方法论...Android核心分析(27)-----AndroidGDI之SurfaceFlinger之动态结构示意图..123 Android核心分析(28)-----AndroidGDI之Surface&Canvas..................................126

    Android主要机制深入分析

    Android 核心分析之一--------...Android 核心分析(27)-----Android GDI 之SurfaceFlinger 之动态结构示意图..123 Android 核心分析(28)-----Android GDI 之Surface&Canvas..................................126

    Android核心分析

    Android 核心分析( 27 ) -----Android GDI 之 SurfaceFlinger 之动态结构示意图 .. 123 Android 核心分析( 28 ) -----Android GDI 之 Surface&Canvas .................................. 126

    ]Android核心分析27

    [转]Android核心分析 技术专题之二十七--GDI 之SurfaceFlinger之动态结构示意图.

Global site tag (gtag.js) - Google Analytics