Android:Activity、Window、View、RootViewImpl、WindowManager、WindowManagerGlobal、WMS作用和关系

Window:

Window是个抽象概念,这并不是因为它是个接口(它也有对应的实现类,如PhoneWindow),而是因为每个Window对应着一个根View和一个ViewRootImpl,这两者由WindowManagerGlobal持有管理,WindowManagerGlobal控制ViewRootImpl通过WindowSession与WMS通讯,通知根View在界面上的add、update、remove,这也可以看作是Window的add、update、remove。一个Window必定仅包含一个根View,也可以说Window以根View的形式存在。

Window有三种类型:应用Window、子Window、系统Window。应用Window对应一个Activity。子Window不能单独存在,必须依附在父Window上,比如PopWindow、Dialog。系统Window需要申明权限,一般浮在屏幕最上面(其z-ordered大于另外两种Window),如Toast。

ViewRootImpl:

ViewRootImpl作用如下:

  1. WindowManagerGlobal通过ViewRootImpl控制对应Window的根View(对于PhoneWindow来说,即DecroView);
  2. 完成View的绘制过程,包括measure、layout、draw过程;
  3. 向DecroView分发事件,如用户的按键/触屏等事件;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值