理解Window和WindowManager

1.Window是一个抽象类,它的具体实现是PhoneWindow。

Window是一个抽象概念,每一个Window都对应着一个View和一个ViewRootImpl,Window和View通过ViewRootImpl建立关联。因此Window并不是实际存在的,它是以View的形式存在。

2.WindowManager是一个接口,是外界访问Window的入口。它的真正实现是WindowManagerImpl类。在WindowManagerImpl中有Window的三大操作实现:添加、更新、删除。都是调用mGlobal的方法,即将所有的操作委托给WindowManagerGlobal来实现。最终会通过WindowSession来完成操作。WindowSession的类型是IWindowSession,是一个Binder对象,真正的实现类是Session。Session内部会通过WindowManagerService来实现功能操作。

所以Window的操作主要通过WindowManager与WindowManagerService之间的IPC操作来完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容