android开发管理员,Android WMS(窗口管理员)

WMS

Windows Manager Service (WMS),承载着和“界面”有关的数据和属性,管理和“界面”有关的状态。

就像N个演员参演的话剧:WMS是导演、SurfaceFlinger是摄像机、ViewRoot是演员个体。

WMS至少要完成以下两方面的功能:

全局的窗口管理(Output):应用程序的显示请求在SurfaceFlinger和WMS的协助下有序地输出给物理屏幕或其他显示设备。

全局的事件管理派发(Input):事件源包括键盘、触摸屏、鼠标、轨迹球(TraceBoll)等。

WMS相关角色的简介

722877a2113d

WMS的关系图

1.WindowManagerService(WMS)

WMS是系统服务的一部分,由SystemService启动,发生异常时自动重启,直到系统关机时才能退出。

在WMS没有运行之前,开机动画由BootAnimation直接通过OpenGL ES与SurfaceFlinger的配合来完成。

2.SurfaceFlinger

与WMS配合处理显示请求,输出到物理屏幕。

3.由图形显示需求的程序

System Window:如顶部的系统状态栏、壁纸等。

Application Window:“层级值”比系统窗口低,针对普通应用程序的显示申请产生的窗口。

SubWindow:子窗口,受限于其父窗口。如点击Menu时出现的菜单。

4.InputMangerService(IMS)

派发系统按键和触摸消息的角色。IMS收到按键或触摸事件时,它需要寻找一个最合适的“窗口”来处理消息,而WMS则掌控系统中所有窗口的状态和信息。

5.ActivityManagerService(AMS)

AMS与WMS由交互。Activity 状态的变化通常带来“界面”的改变,如Activity1启动Activity2,那么Activity1逐渐淡出显示,而后Activity2的UI界面占据屏幕。

6.Binder通信

SurfaceFlinger、AMS或应用程序与WMS间都需要进行Binder通讯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值