一、层服WMS功能介绍
要想了解WindowManager管理机制,深扒首先我们先介绍WMS是理机一个非常重要的系统服务
。
它支撑着视图相关的层服各项业务,这非常符合软件设计的深扒单一职责原则,其业务和ActivityManagerService(简称AMS)一起几乎占据了framework业务的理机半壁江山,可见其重要性 。层服关于WMS的深扒内容实在太多了
,这里只简单介绍其大致功能以及启动流程。理机
WMS的层服大概功能如下图所示:
这里先简单描述一下各项功能
:
- 窗口管理:WMS是窗口管理者
,结合WindowManager实现窗口的深扒启动、添加
、理机删除
,层服以及管理窗口的深扒大小、层级等
。理机
- 窗口动画:在窗口切换时,使用窗口动画可以使这个过程看起来更炫更生动,这个窗口动画就是由WMS的动画子系统来负责的
,动画子系统的管理者便是WindowAnimator
。
- 输入系统的中转站:触摸设备屏幕上的窗口时会产生触摸事件,InputManagerService(IMS)会对触摸事件进行处理
,找到最合适的窗口来反馈事件。而WMS是这些窗口的管理者 ,那自然而然就成为了输入系统的中转站了
。
- Surface管理 :窗口并不具备绘制功能,所以每个窗口都需要一个Surface来供自己绘制
,WMS就是这个Surface的管理者
。
二、windowManager简介
windowManager是Android的系统服务SystemService中的重要一员,用于将View动态添加