Android中WMS的理解与简介

Android中WMS的理解与简介
1. WMS的概念
从名字可以看出,window表明它是与窗⼝相关的,Manager表明它具有管理者的⾝份。简单来讲,它是窗⼝管理员。窗⼝是⼀个抽象的概念,从⽤户的⾓度来讲,它是⼀个界⾯。从SufaceFlinger的⾓度来讲,它是⼀个Layer,承载着和界⾯有关的数据和属性。所以它是⼀个WindowState,⽤于管理和界⾯有关的状态。
WMS也是系统服务,由SystemServer启动。直到关机时才会退出。发⽣异常时必须重启。车载卫生间
1.1 WMS涉及的元素:
WindowManagerPolicy-mPolicy:窗⼝策略类。
d2x说明书Android提供了WindowManagerPolicy接⼝定义Ui显⽰策略,⼿机的实现类为PhoneWindowManager。也可以⾃⼰实现
WindowManagerPolicy来⾃定义策略。
窗⼝策略:这⾥的initPolicy()初始化的PhoneWindowManager代表的是⼀种窗⼝策略。应⽤到WMS中则代表了
Android显⽰系统所遵循的统⼀的窗⼝显⽰规则。针对不同的产品,UI显⽰策略通常是不⼀样的。如⼿机⼀般都有
单面铜基板Status Bar,但是平板没有。所以要设定不同的策略。
ArraySet<Session>-mSessions:主要⽤于进程间通信,其他应⽤程序想要和WMS通信就需要经过Session,每个应⽤程序进程都会对应⼀个Session,WMS保存这些Session⽤来记录所有向WMS提出窗⼝管理服务的客户端。
冰雕模具WindowHashMap<IBinder,WindowState>-mWindowMap:WindowState⽤于保存窗⼝信息,⽤来描述⼀个窗⼝。mWindowMap其实就是⽤来保存WMS中各种窗⼝的集合
ArrayList<AppWindowToken>-mFinishedStarting:AppWindowToken为WindowToken的⼦类,WindowToken主要有2个作⽤:
防盗追踪
窗⼝令牌,当应⽤程序想要向WMS申请新创建⼀个窗⼝,则需要向WMS出⽰有效的WindowToken。AppWindowToken主要⽤来描述应⽤程序的WindowToken结构,应⽤程序中每个Activity都对应⼀个A
ppWindowToken
钢筋混凝土过梁WindowToken会将同⼀个组件(⽐如同⼀个Activity)的窗⼝(WindowState)集合在⼀起,⽅便管理
mFinishedStarting就是⽤于存储已经完成启动的应⽤程序窗⼝(⽐如Activity)的AppWindowToken列表。
ArrayList<WindowState>-mResizingWindows:⽤来存储正在调整⼤⼩的窗⼝列表。
WindowAnimator-mAnimator:⽤于管理窗⼝的动画以及特效动画
H-h:系统的Handler类,⽤于将任务加⼊到主线程消息队列中
InputManagerService-mInputManager:输⼊系统的管理者。会对触摸事件进⾏处理,他会寻⼀个合适的窗⼝来处理触摸返回信息,WMS是窗⼝的管理者,所以需要持有IMS引⽤
显⽰图形的需求
Application Window:普通应⽤程序显⽰申请所产⽣的window,和系统窗⼝相⽐,它们的窗⼝层级值⽐较低。
System Window:系统顶部的系统状态栏,壁纸等

本文发布于:2024-09-23 16:22:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/278273.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   系统   有关   管理者   策略   处理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议