Android Power

一、Android Power介绍

Android系统的电源管理框架分成五个部分:应用层,框架层,Native层,HAL层和内核层。电源管理架构图例如下:

应用接口层: PowerManager.java 负责向应用程序提供一系列接口,例如wakelock的申请与释放,进而让系统休眠或唤醒

框架层: PowerManagerService.java PowerManagerServic是android电源管理的核心服务,向上提供应用程序接口.向下通过hal层和kernel层来控制待机状态和系统硬件设备状态

HAL层: power.c 接收上层参数,通过写节点与kernel层通信

内核层: Kernel/Power 实现系统电源管理框架机制,为设备电源管理提供基础框架

二、PowerManagerService

PowerManagerService相关类

PowerManager

This class lets you query and request control of aspects of the device's power state.

此类允许你查询和请求对设备电源状态的各个方面的控制。

PowerManager文件路径:

frameworks/base/core/java/android/os/PowerManager.java

PowerManager定义:

public final class PowerManager {}

PowerManagerInternal

Power manager local system service interface.

电源管理器本地系统服务接口。

PowerManagerInternal文件路径:

frameworks/base/core/java/android/os/PowerManagerInternal.java

PowerManagerInternal定义:

public abstract class PowerManagerInternal {}

PowerManagerService

The power manager service is responsible for coordinating power management functions on the device.

电源管理器服务负责协调设备上的电源管理功能。

PowerManagerService文件路径:

frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

PowerManagerService定义:

public final class PowerManagerService extends SystemService
        implements Watchdog.Monitor {}

PowerGroup

Used to store power related requests to every display in a {@link com.android.server.display.DisplayGroup}.

用于将每个显示器的电源相关请求存储在 {@link com.android.server.display.DisplayGroup} 中。

PowerGroup文件路径:

frameworks/base/services/core/java/com/android/server/power/PowerGroup.java

PowerGroup定义:

public class PowerGroup {}

ShutdownThread

ShutdownThread文件路径:

frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java

ShutdownThread定义:

public final class ShutdownThread extends Thread {}

SystemProperties

Android SystemProperties是一个用于访问和修改Android系统属性的工具类。系统属性是一些键值对,用于存储和传递系统相关的配置信息。通过SystemProperties类,开发者可以获取和设置这些系统属性。

SystemProperties类提供了以下几个常用的方法:

  1. get(String key):获取指定键对应的系统属性值。

  2. get(String key, String defaultValue):获取指定键对应的系统属性值,如果不存在则返回默认值。

  3. getInt(String key, int defaultValue):获取指定键对应的整型系统属性值,如果不存在则返回默认值。

  4. getLong(String key, long defaultValue):获取指定键对应的长整型系统属性值,如果不存在则返回默认值。

  5. set(String key, String value):设置指定键对应的系统属性值。

使用SystemProperties类可以方便地获取和修改Android系统的一些配置信息,比如设备型号、版本号、网络状态等。开发者可以根据具体需求使用这些方法来操作系统属性。

SystemProperties文件路径:

frameworks/base/core/java/android/os/SystemProperties.java

SystemProperties定义:

public class SystemProperties {}

三、PowerManagerService相关流程介绍

PowerManager wakeup流程分析

Android13 PowerManager wakeup流程分析-CSDN博客

PowerManager shutdown流程分析
Android13 PowerManager shutdown流程分析-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值