5.1 概述

PowerManagerService负责Android系统中电源管理方面的工作。作为系统核心服务之一,PowerManagerService与其他服务及HAL层等都有交互关系,所以Power-ManagerService相对PackageManagerService来说,其社会关系更复杂,分析难度也会更大一些。

先来看直接与PowerManagerService有关的类家族成员,如图5-1所示由图5-1可知:

5.1 概述 - 图1

图 5-1 PowerManagerService及相关类家族

PowerManagerService从IPowerManager.Stub类派生,并实现了Watchdog.Monitor及LocalPowerManager接口。PowerMan-agerService内部定义了较多的成员变量,在后续分析中,我们会对其中比较重要的成员逐一进行介绍。

根据第4章介绍的知识,IPowerManager.Stub及内部类Proxy均由aidl工具处理IPower-Manager.aidl后得到。

客户端使用PowerManager类,其内部通过代表BinderProxy端的mService成员变量与PowerManagerService进行跨Binder通信。

现在开始PowerManagerService(以后简写为PMS)的分析之旅,先从它的调用流程入手。

提示 PMS和BatteryService、BatteryStatsService均有交互关系,这些内容放在后面分析。