WMS的职责
WMS的创建过程
WMS的重要成员
mPolicy:WindowManagerPolicy,定制窗口层级和特殊窗口类型以及关键的调度和布局。
mSessions:ArraySet,用于进程通信,每一个应用程序进程都会对应一个Session。
……
Window的添加过程(WMS部分)
- 对所要添加的窗口进行检查,如果窗口不满足一些条件,就不会再执行下面的代码逻辑。
- WindowToken相关的处理,比如有的窗口类型需要提供WindowToken,没有提供的话就不会执行下面的代码逻辑,有的窗口类型在需要有WMS隐式创建WindowToken。
- WindowState的创建和相关处理,将WindowToken和WindowState相关联。
- 创建和配置DisplayContent,完成窗口添加到系统前的准备工作。
Window的删除过程
- 检查删除线程的正确性,如果不正确就抛出异常。
- 从ViewRootImpl列表、布局参数列表和View列表中删除与V对应的元素。
- 判断是否可以直接执行删除操作,如果不能就推迟删除操作。
- 执行删除操作,清理和释放与V相关的一切资源。