首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android创造Surface过程源码分析

2013-10-08 
Android创建Surface过程源码分析在上一篇文章Android SurfaceFlinger服务代理对象获取过程源码分析中介绍

Android创建Surface过程源码分析

在上一篇文章Android SurfaceFlinger服务代理对象获取过程源码分析中介绍了应用程序获取SurfaceFlinger中的各种远程Binder代理对象,SurfaceFlinger为每个应用程序创建Client对象来处理应用程序的Binder请求,同时返回Client的Binder代理对象给应用程序,这样应用程序就可以通过该Binder代理对象来请求SurfaceFlinger创建Surface了,本文在前面章节的基础上 分析Surface的创建过程。

Android创造Surface过程源码分析


由于ISurfaceComposerClient也是基于Binder通信框架的,因此BpSurfaceComposerClient向服务端的Client请求创建Surface的过程分为客户端进程和服务端进程。

客户端进程:

frameworks\native\libs\gui\ISurfaceComposerClient.cpp


这里就是为当前创建的Layer构造并初始化SurfaceTexture对象,该SurfaceTexture对象用来管理BufferQueue。回到SurfaceFlinger的创建 普通Surface函数createNormalSurface,构造完Layer对象后,还需根据图像大小,格式来设置Layer对象中的buffer

完成Layer对象的创建及设置后,调用当前创建的Layer对象的getSurface()函数来创建一个BSurface对象,getSurface()函数实现在Layer的父类LayerBaseClient中


热点排行