关于窗口创建的那些事 之 内核剖析 读笔



先来说说窗口创建的过程.

从Wms的角度来看,窗口是一个View, Wms收到用户消息后, 需要把消息派发到View窗口, View本身不能接受消息, 真正接受用户消息的是 IWindow类, 而实现IWindow类的是 ViewRoot.W类, 每一个W类 内部都包含了一个View变量.

Wms把消息发送给W, W发送给View,之后由View自己处理.


窗口也是有很多种的.

 关于窗口.Framework定义了三种类型,全部定义在了WindowManager类中.

 第一种为有应用窗口类型 : 应用窗口指 该窗口对应一个Activity,因为加载Activity是由AMS完成的.所以创建应用窗口,只能在Activity内部来进行

 第二种为子窗口: 所谓子窗口,该窗口必须有一哥父窗口, 父窗口可以使任何类型.

 第三种为系统窗口:系统窗口不需啊哟对应任何Activity, 也不需要父窗口, 理论上是无法创建系统窗口,因为Activity没有权限,  系统进程可以创建系统窗口.


  WindowManager对着三种类型进行了细化, 用int常量表示,这些实际代表了窗口对应的层(Layer),在Wms进行窗口叠加时, int值越大, 代表层的位置越靠上.表的类型如下所示:



     

   


  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值