理解:每个 Activity 中含有一个window,这个window就是程序的窗口了 window 上面会有个decorview对象就是将来要添加内容的东西了 这个window 还有一个一个viewroot
viewroot继承自handler 简单来说,ViewRoot相当于是MVC模型中的Controller,它有以下职责:
ViewRoot这个类在android的UI结构中扮演的是一个中间者的角色,连接的是PhoneWindow跟WindowManagerService
1. 负责为应用程序窗口视图创建Surface。
2. 配合WindowManagerService来管理系统的应用程序窗口。
3. 负责管理、布局和渲染应用程序窗口视图的UI。
从字面意思理解的话,IWindowSession sWindowSessoin是ViewRoot和WindowManagerService之间的一个会话层,它的实体是在WMS中定义,作为ViewRoot requests WMS的桥梁。
add()方法的第一个参数mWindow是ViewRoot提供给WMS,以便WMS反向通知ViewRoot的接口。由于ViewRoot处在application端,而WMS处在system_server进程,它们处在不同的进程间,因此需要添加这个IWindow接口便于GUI绘制状态的同步。