【Android 13源码分析】WMS-添加窗口(addWindow)流程-2-SystemService进程处理
原文中文,约13500字,阅读约需32分钟。
📝
内容提要
本文是Android 13源码分析中WMS-添加窗口流程的第二部分,介绍了SystemService进程处理剩下的逻辑,包括SystemServer进程处理、WindowManagerService::addWindow方法概览、Token相关、WindowState的创建和挂载等。文章还解答了之前提出的疑问。
❓
Q&A
SystemServer进程在addWindow流程中负责什么?
SystemServer进程负责处理窗口的创建和挂载,主要通过WindowManagerService::addWindow方法实现。
addWindow方法中有哪些关键步骤?
addWindow方法的关键步骤包括权限检查、Token处理、WindowState创建和挂载等。
什么是WindowToken,它在addWindow流程中有什么作用?
WindowToken是窗口的父节点,确保窗口的层级关系,在addWindow流程中用于获取和管理窗口的层级结构。
WindowState是如何创建和挂载的?
WindowState的创建和挂载是在addWindow方法中进行的,通过创建WindowState对象并将其添加到窗口树中。
addWindow方法中如何处理权限验证?
addWindow方法通过调用mPolicy.checkAddPermission进行权限检查,确保窗口添加的合法性。
addWindow流程中如何处理窗口焦点?
addWindow流程中通过updateFocusedWindowLocked方法处理窗口焦点切换,确保用户输入正确传递给当前窗口。
🏷️