理解:每个 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绘制状态的同步。
本文深入解析Android应用窗口视图的UI结构,解释了ViewRoot类的作用,包括创建Surface、管理应用程序窗口视图的UI以及与WindowManagerService之间的交互。同时介绍了IWindowSessionsWindowSession作为ViewRoot和WindowManagerService之间会话层的作用。
681

被折叠的 条评论
为什么被折叠?



