ISurfaceComposer接口的实现类:

------------------------------------------------------------------
接口ISurfaceComposerClient
->BnSurfaceComposerClient
->
实现类Client,位于SurfaceFlinger.h文件中
------------------------------------------------------------------
接口ISurfaceComposer
->
BnSurfaceComposer
->
实现类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 },
未完待续……
本文详细介绍了Android系统中SurfaceFlinger模块的架构设计,重点分析了ISurfaceComposer接口的实现类,包括SurfaceFlinger和SurfaceComposerClient的具体实现过程。通过梳理Surface创建流程,帮助读者理解SurfaceControl对象的管理和Surface的创建机制。
2984

被折叠的 条评论
为什么被折叠?



