新疆都市报 > 科技 > 智能 >

艾薇儿种子 手机耗电问题,大部分是没有正确使

发布时间:2019-05-23 10:02来源: 未知

当安卓设备闲置时,设备很快会进入休眠状态,以达到省电和减少CPU占用的目的。但有些应用在手机灭屏甚至系统休眠时,依然频繁占用CPU处理事件或唤醒屏幕提示用户消息,这类行为会导致手机耗电加速。那么,应用这种行为究竟是怎么实现的呢?那就是安卓中的WakeLock机制。

本文以“今日头条”、“腾讯新闻”、“天天快报”等10款新闻类应用为例,分析WakeLock在应用中使用情况。

Wakelock简介

Wakelock是安卓提供的唤醒锁机制,是阻止系统进入休眠,让系统保持“清醒”的一种手段,应用可以用它来保持CPU唤醒(局部唤醒锁),保持、开关屏幕,普通的用户应用和系统内核都可获得。例如:在使用一些新闻类产品,如有消息进来,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息了,这时候用到的就是Wakelock唤醒锁机制。

Wakelock作用

当手机灭屏状态下保持一段时间后,系统会进入休眠,一些后台运行的任务就可能无法正常执行,如网络下载中断、后台播放音乐暂停等,而WakeLock正好解决这类问题。应用只要申请了WakeLock,那么在释放WakeLock之前,系统不会进入休眠,即使在灭屏的状态下,应用要执行的任务依旧不会被系统打断。

Wakelock使用时机

如断线重连、重新登录这些关键逻辑的执行过程,一旦执行成功就应立即释放wakelock。

常用的WakeLock级别

 

 

PARTIAL_WAKE_LOCK是应用常使用的类型,应用在后台持锁耗电且用户并没有直观的感知。通过功耗仪查看应用持锁和释放的电量的趋势如图:

 

 

创建和保持唤醒锁定会对主机设备的电池寿命产生巨大影响,后台运行对CPU计算频率相对较低,但是所耗资源依然远比休眠耗用的电量大,因此只有在严格必要时才应使用唤醒锁,并尽可能短地保持它们。