WmS工作原理

概述

WmS是Android中图形用户接口的引擎,它管理这所有窗口。所谓的管理就是包括创建、删除窗口,以及将某个窗口设置为焦点窗口。


14.1.1 窗口的定义

窗口是一种通用的描述,指一个独立的界面,比如一个对话框窗口,一个Activity交互的窗口、一个菜单窗口等;Window是一个类,指的是具有通用操作方式的窗口;View也是一个类,通常翻译为视图,指一个独立的交互元素,比如一个按钮、一个文本框等。


在WmS中,窗口是由两部分内容构成的,一部分是描述该窗口的类WindowState,另一部分是该窗口在屏幕上对应的界面Surface。


Android采用的是层叠式布局,允许多个窗口层叠显示。该布局一般都需要一个窗口 管理服务器,从程序设计的角度来看,有两种设计模式可以实现服务端,一种是采用独立进程方式,另一种是采用共享库方式。

所谓独立进程方式是指,使用一个独立的进程专门用于屏幕的绘制和消息处理,所有的其他应用程序当需要创建窗口时,通过进程通信的方式请求管理服务创建窗口。

共享库方式是指,使用一段共享爱车需,该段程序中保存了所有客户端的窗口信息,共享库和每个客户端程序都运行于同一个进程之间。优点是窗口管理的开销比较小,因为它不需要进程间通信,缺点是任何一个客户端的不适当操作都可能导致窗口系统”崩溃“。


窗口切换时的动画策略:

在Android系统中,每个应用窗口可以同时指定是否使用桌面背景作为窗口背景,而在窗口动画的过程中却要保持桌面背景的静态性,这就又增加了动画逻辑的复杂度。在解决核心问题所使用的相关的变量列表,主要有以下五类变量:窗口管理相关、窗口动画相关、书出发窗口管理相关、墙纸窗口管理相关、焦点窗口管理相关。


在WmS的内部逻辑中,会进行三种常见的操作:

assign layer:为窗口分配层值,从用户的视角来看,层值越大,其窗口越靠近客户,窗口之间的层叠正是按照层值进行的。

perform layout:计算窗口的大小

place surface的语义是:调整SurFace对象的属性,并重新将其显示到屏幕上。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值