Window窗口添加

本文详细介绍了Android中Window窗口的添加过程,包括Activity添加窗口、系统窗口(如StatusBar和NavigationBar)的添加、子窗口的添加,以及ViewRootImpl与WMS的关系。WindowManager通过Binder与WindowManagerService(WMS)通信,负责窗口的管理。Activity通过WindowManager添加窗口,WMS负责处理实际的添加操作,对不同类型窗口进行统一处理。
摘要由CSDN通过智能技术生成

5 Window窗口的添加

WindowManager对Window进行管理,说到管理那就离不开对Window的添加、更新和删除的操作,在这里我们把它们统称为Window的操作。对于Window的操作,最终都是交由WMS来进行处理。窗口的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分。我们知道Window分为三大类,分别是:Application Window(应用程序窗口)、Sub Windwow(子窗口)和System Window(系统窗口),对于不同类型的窗口添加过程会有所不同,但是对于WMS处理部分,添加的过程基本上是一样的, WMS对于这三大类的窗口基本是“一视同仁”的,而只是调用WindowManager的地方不同而已,如图所示:

 5.1 Activity添加窗口的过程

5.1.1Activity,WindowManager,WMS之间的关系

   首先介绍一下Activity,WindowManager,WMS之间的关系,如下图所示:

从上图中看到涉及到的基本概念为:先了解一下window windowmanger wms之间的关系如下:

从上图中看到,在Android开发中,Window是所有视图的载体,如Activity,Dialog和Toast的视图,我们想要对Window进行添加和删除就要通过WindowManager来操作,而WindowManager就是通过Binder与WindowManagerService进行跨进程通信,把具体的实现工作交给WindowManagerService,他们之间的类关系图如下:

5.1.2 Activity添加窗口的流程

  Activity添加窗口的流程如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值