Android 热缓解框架解析

随着手机功能的不断丰富,算法复杂性、系统核心频率和集成水平不断提高,而设备的形制和尺寸不断缩小,手机热缓解的重要性日益凸显。

为了在手机开始过热时进行有效的热缓解,Android 引入了热系统,用于将热子系统硬件设备的接口抽象化,硬件接口包括设备表面、电池、GPU、CPU 和 USB 端口的温度传感器和热敏电阻。借助该框架,设备制造商和应用开发者可以主动获取这些系统硬件设备的温度数据,或者通过注册的回调函数(位于 PowerManager 类中)接收高温通知,进而在设备开始过热时调整系统及应用执行策略,降低系统负载。例如,当系统温度较高时,jobscheduler 作业会受到限制等,从而可以有效缓解手机发热问题。

一、 Android热服务上层可调用接口

Android 10 中的热服务利用 Thermal HAL 2.0 的监控底层设备各个节点温度等信息,系统内部组件和三方应用可通过调用相关接口获取这些反馈信息。

1. 三方应用可调用接口


对于上层Android应用来说,可通过调用 PowerManager 类来添加监听器回调或主动获取获取热状态等信息,方法如下:

  • getCurrentThermalStatus();//以整数形式返回设备的当前热状态等级。

  • addThermalStatusListener();//添加监听器。

  • removeThermalStatusListener();//移除之前添加的监听器。

以上方法获取的热状态等级为当前热状态码值。在ThermalHal 2.0中,热状态码分为如下几个级别:

因此应用层调用以上接口方法,假如收到返回值为0x2,说明当前手机热等级为MODERATE (0x2) 中等限制,应用可以根据对应的热等级建议,调整自身逻辑,降低系统负载,缓解手机发热,进而增强在高温状态下的用户体验。

2. Android系统应用可调用接口


对于Android系统内部组件来说,还可以注册IThermalEventListener回调接口等方法进行监控访问更加详细的热传感器和热事件信息;例如,Android系统内部组件可注册IThermalEventListener事件,监听手机表面温度变化,例如:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OPPO内核工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值