Activity、Window、View、Surface[1]整体框架

Activity、Window、View、Surface[1]整体框架_第1张图片 


主要涉及到 应用程序进程 和ActivityManagerServiceWindowManagerServiceSurfaceFlingerService 三大服务。

其中 应用程序进程 中的对象有ActivityWindowViewSurface。(其实还有非常多)

Window对应于WindowManagerService中的WindowState对象,用于给WindowManagerService管理窗口

Surface对应于SurfaceFlingerService中的Layer对象,用于给SurfaceFlingerService管理绘图表面

 

执行顺序如下

Activityattach()中,创建Window/PhoneWindow对象

ActivityonCreate()中,设置Window对象中的View对象

ActivityThreadhandleResumeActivity()中,调用wm.addView()请求WindowManagerService创建WindowState对象

在第一次performTraversal()中,调用relayoutWindow()请求WindowManagerService创建Surface对象,WindowManagerService再请求SurfaceFlingerSurface创建Surface对象,并依次返回给WindowManagerService、应用程序。

在第二次performTraversal()中,调用draw(),在其中调用surface.lockCanvas()获取一个图形缓冲区并封装成Canvas对象,调用mView.draw()绘制View,调用surface.unlockCanvasAndPost()请求SurfaceFlingerService渲染图形缓冲区。

 

 

你可能感兴趣的:(Activity、Window、View、Surface[1]整体框架)