理解ICS Surface和SurfaceFlinger的处理流程
来源:互联网 发布:黄金 知乎 编辑:程序博客网 时间:2024/04/27 07:50
首先看下ISurfaceComposer接口
ISurfaceComposer定义了基础接口,供客户端和Server端交互使用。
ISurfaceComposer接口的派生类图示:
------------------------------------------------------------------
接口ISurfaceComposerClient
->BnSurfaceComposerClient
->
实现类Client,位于SurfaceFlinger.h文件中
------------------------------------------------------------------
接口ISurfaceComposer
->
BnSurfaceComposer一个ISurfaceComposer接口的派生类,提供Client端调用Server功能的接口
->
实现类SurfaceFlinger
ISurfaceComposer类含有以下成员函数,用于与SurfaceFlinger建立联系
/* create connection with surface flinger, requires
* ACCESS_SURFACE_FLINGER permission
*/
virtual sp<ISurfaceComposerClient> createConnection() = 0;
------------------------------------------------------------------
1.SurfaceComposerClient类含有接口ISurfaceComposerClient类型的成员变量mClient
2.SurfaceControl类含有SurfaceComposerClient类型的成员变量mClient
3.SurfaceComposerClient::createSurface函数,返回值类型为SurfaceControl
(1)调用成员mClient的createSurface函数创建Surface
mClient->createSurface实际是调用的接口ISurfaceComposerClient的实现类Client
(2)创建SurfaceControl对象,管理(1)中创建的Surface
(3)返回(2)中创建的SurfaceControl对象
4.SurfaceComposerClient对象的创建
创建SurfaceComposerClient对象的地方位于jni中,对应的文件是android_view_Surface.cpp,函数是SurfaceSession_init,
对应与java类SurfaceSession中的init函数。
{"init", "()V", (void*)SurfaceSession_init },
未完待续……
- 理解ICS Surface和SurfaceFlinger的处理流程
- Surface、SurfaceFlinger和Canvas的关系
- 基于surface机制的surfaceflinger启动过程
- surfaceflinger中surface与layer的关系
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理 .
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
- Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
- Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
- Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
- Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 JellyBean
- Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理 .
- 用于Lucene的各中文分词比较
- WEB前端开发规范文档
- 一道小题(2)
- Bitmap recycle()
- 解决office2007安装问题:安装程序找不到office.zh-cn\Setup.xml
- 理解ICS Surface和SurfaceFlinger的处理流程
- imsi+mcc+mnc
- 三菱DPLSR无故不执行问题
- 看看一位清华计算机专业的学生怎么看LINUX与WINDOWS的!
- 公平算法
- NSFileHandle目前木有用到。。保存下。。
- 五个值得关注的图形数据库
- mfc扩展dll的调用以及dll中creat出错分析
- Struts2框架web.xml的<filter-class>,FilterDispatcher和StrutsPrepareAndExecuteFilter