Android应用程序创建Surface过程源码分析在上一篇 Android远程代理对象BpSurface的获取过程源码分析文章中
Android应用程序创建Surface过程源码分析
在上一篇 Android远程代理对象BpSurface的获取过程源码分析文章中,介绍了应用程序在SurfaceFlinger服务端创建对应的Layer对象过程,同时返回BpSurface远程代理对象给应用程序端,应用程序得到BpSurface代理对象后,将构造SurfaceControl对象:
应用程序端有了SurfaceControl对象后,就可以在应用程序端创建Surface对象了:
在Surface的构造过程中,首先调用其父类SurfaceTextureClient的构造函数
ISurface,BpSurface,BSurface的定义仅仅是用于获取BpSurfaceTexture远程代理对象,前面连续三篇文章都是在介绍Android图形系统中获取服务的远程代理对象过程,归纳总结如下:1. 通过ComposerService辅助类来从ServiceManager进程中查询SurfaceFlinger的远程代理对象BpSurfaceComposer ;2. 通过BpSurfaceComposer向SurfaceFlinger发起RPC调用createConnection(),在服务进程中创建Client对象,并返回该对象的远程代理对象BpSurfaceComposerClient;3. 通过BpSurfaceComposerClient向Client发起RPC调用createSurface(),在服务进程中创建Layer,BSurface及SurfaceTextureLayer对象,并返回BSurface对象的远程代理对象BpSurface;4. 通过BpSurface向BSurface发起RPC调用getSurface(),返回SurfaceTextureLayer对象的远程代理对象BpSurfaceTexture;![]()
