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

来源:互联网 发布:pdf文件分割软件 编辑:程序博客网 时间:2024/06/11 18:17



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

从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
原创粉丝点击