资讯动态

View绘制流程学习--核心组件的关系

发布时间:2026/10/5 6:50:18 来源:尧图企业网站定制
view的显示系统架构两个维度的显示单元Android 显示系统涉及两个层级的显示单元应用层的 Activity和系统层的窗口。Activity 作为应用层维度的显示单元负责提供显示内容窗口作为系统层维度的显示单元负责真正将内容渲染到屏幕。Activity委托窗口进行显示两者通过windowManager窗口管理者连接协作。windowManager 是显示系统的应用层API 入口所有view 最终都添加到 windowManager 中管理其生命周期。窗口管理者的分层管理窗口管理者采用分层管理机制:1WMI与PW协作WMI与PW两者从不同维度协作,共同完成Activity的窗口显示。windowManagerImplWMI每个 Activity持有一个实现一对一关系是 Activity的专属窗口管理者用来管理view到窗口系统的注册Phonewindow每个 Activity持有一个实现一对一关系,是Activity独有的窗口容器用来管理view的布局结构windowManagerGlobalWMG进程唯一作为单例存在是进程内所有窗口的大管家-Activity 通过持有WMI将显示请求委托给WMG从单个 Activity的小范围走向应用进程的统一管理。2完整窗口组成一个完整的窗口由两部分组成viewRootImpl应用侧应用侧窗口的本体负责视图树的测量、布局、绘制以及与WMS 的IPC通信windowState系统侧WMS中表示窗口的数据结构体现窗口的位置、尺寸、层级、可见性、Token等属性viewRootImpl 通过 Binder Token 与windowState配对两者共同构成一个完整的窗口。surface由WMS 分配是 view绘制内容的画布。每个窗口viewRootImpl windowState对应一个surface在性能追踪中表现为一条BufferTX甬道。窗口焦点管理窗口焦点由系统统一管理主要指的windowManagerService(WMS)InputManagerService(IMS)控制当前可接收输入事件的窗口。WMS窗口焦点管理决定哪个窗口获得焦点PhonewindowManager策略层决定焦点切换规则IMS输入事件分发将事件发送到焦点窗口PhonewindowManager是WMS的策略层负责窗口管理的业务逻辑决策。PhonewindowManager与Phonewindow没有任何代码逻辑关系只是名字相似PhonewindowManager的职责图14Activity的核心职责值得注意的是显示只是 Activity的功能之一。Activity作为界面控制器其核心职责还包括生命周期协调创建、启动、暂停、恢复、销毁、页面导航管理返回栈、launch mode、状态管理保存/恢复实例状态、用户交互处理按键、触摸分发、资源协调与Service、BroadcastReceiver协作以及权限管理运行时权限请求等。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑