一.DisplayManagerService
1.概述
DisplayManagerService是负责Display管理的系统服务之一,还有一些其他功能,包括屏幕亮度调节也涉及到DMS,其继承自SystemService,因此具有SystemService子类的共性:具有生命周期方法,由SystemServer启动、注册到系统服务中,通过Binder和其他组件进行交互等。
Display类型
1.LocalDisplay
2.OverlayDisplay
3.WifiDisplay
4.VirtualDisplay
DisplayAdapter类型
每个Display对应一个 DisplayAdapter:
1.LocalDisplayAdapter:本地已经存在的物理显示屏设备。
2.OverlayDisplayAdapter:模拟辅助显示设备,以类似浮动窗口的形式显示在主屏上,可以当第二个屏幕使用,默认也是镜像主屏。
3.WifiDisplayAdapter:WiFi Display
4.VirtualDisplayAdapter:显示一个虚拟屏幕
2.关系图
先将Display管理相关的类之间的关系图列出来,有个大概的了解:
3.启动过程
和SystemService的其他子类一样,DMS由SystemServer通过反射的方式启动,看一下DMS的构造方法:
2.1.构造方法
1.创建了mHandler和mUiHandler用来自身和其他消息队列处理;
2.创建了DisplayDeviceRepository对象,接收设备事件变化;
3.获取系统服务PowerManger;