基本概念
WindowManagerService(WMS)
FW层窗口管理服务。管理Android系统中所有的window,继承自IWindowManager.Stub.Binder服务端
window
手机上一块显示区域,添加一个window的过程就是申请分配一块surface的过程
surface
每个显示界面的窗口都是一个surface
WindowManager
应用与窗口管理服务WMS交互的接口
phonewindowmanager
实现了窗口的各种策略
Choreographer
用于控制窗口动画,屏幕旋转等操作
DisplayContent
用于描述多屏输出相关信息。根据窗口显示位置将其分组,隶属于同一个displaycontent的窗口会被显示在同一个屏幕中
windowState
描述了一个窗口的所有属性,一般一个窗口对应一个windowstate
windowToken
窗口token,用来做Binder通信
应用组件需要新的窗口时,必须提供windowToken来表明自己的身份
在创建系统类型窗口时不需要提供widowToken.wms会隐式的为其声明一个windowToken
Session
通信对象,App进程通过建立session代理对象和session对象通信,进而和wms建立连接
surfacelinger
负责管理安卓系统的帧缓冲区。surfacelinger就是向这个缓冲区写入内容来绘制应用程序用户界面的