用电如倒水? 从 Wakelock 找出问题

手机在使用时,CPU 运行和亮着屏幕也会耗电。不用手机将屏幕关上后,手机的 CPU 还保持在运作状态。再过一段时间,Android 系统就会进入休眠状态,这时候应是手机耗电最小的时间。所以在晚上睡觉时,手机放在一角没有使用,耗电量亦应是最小的。

Wakelock唤醒手机
不过,若有一些 Apps 向系统发送 Wakelock唤醒手机,手机就会由休眠状态醒过来。虽然手机屏幕没有开着,但手机郤是在运行,也会造成耗电。这就是电量不知不觉流走的原因。

Wakelock Battery Drain 耗电

看看上面的图片,这是手机设定内电池的详细记绿,可以看到屏幕大部份时段都是关上的,但系统郤不断有唤醒 Wakelock;再对照上方的电量,可以看到电量在屏幕关上时还不断下跌,在 7小时已不见了 50% 电量。

为什么 Apps 会 Wakelock?
Wakelock 是 Android 本身的运作机制,以让 App 可唤醒手机进行操作。但有部份 Apps 可能在编写程式出了问题,又或因应它的功能需求,而要 Wakelock 手机。例如之前有即时通讯 App,因没有采用 Push 机制,而是由 App 每隔一段短时间从 Server 读取资料,以达致 “即时” 效果,这样就会造成很大量的 Wakelock,使手机长时间保留在运作状态。

那些 Apps 是 Wakelocks 最大疑凶?
Wakelock 不一定是问题,因 Wakelock 本身使用很小电量。但若 Wakelock 后,手机还会有其他运作,又或是有极大量的 Wakelock,这就会造成耗电问题。所以,一些需要不断更新资料的 Apps,例如天气, 新闻, 即时通讯, 社交, 情景 Apps 也可能是大量 Wakelocks 的元凶。

找出 Wakelocks Apps
在手机的电池记绿只会显示电池使用的情况,并不会标记那些 Apps 发出 Wakelocks,所以要另行安装 Apps 去列出 Wakelocks Apps。有两个较常用的 Apps,提供这项功能。不用同时安装两个,只选一个安装使足够。

BetterBatteryStats
BetterBatteryStats (BBS) 是一个十分详细专业的电池用量统计 Apps,内里可选择 Partial Wakelocks 就可列出各个 Wakelocks 的详情,你可选择从 Unplug, Boot 机显示资料。(而Kernal Wakelock是系统东西,不用理会)

BetterBatteryStats 在 Play Store 是付费Apps,但可以在 XDA 免费下载 APK 档案。
http://forum.xda-developers.com/showthread.php?t=1179809

下图看到 Facebook 的 Wakelock 相对其他 App 不算太多,而耗电亦不多。
BetterBatteryStatsBetterBatteryStats Better Battery Stats

GSam Battery Monitor
GSam Battery Monitor 亦可列出手机的 Wakelocks 情况,界面较清晰易明。只要开启 GSam,在主画面点按 App Usage,再在内里页面上方位置,选择 View Time Held Awake 或 View Num Times Waking Device 就可检视 Wakelock 所占时间和次数。

GSam 可在 Play Store 免费下载
https://play.google.com/store/apps/details?id=com.gsamlabs.bbm

GSam Battery Monitor

从下面左图可以看到 Setting Profiles Wakelock 次数达到 105 次,较其他 App 高了很多!

GSam Battery MonitorGSam Battery Monitor Wakelock

睡觉时监察 Wakelock
由于日间时会经常使用手机,很难找出 Wakelock 问题,所以最理想做法是在睡觉时进行。睡觉前,将手机充电至 100% 后拔除充电电源,跟着睡觉去。

检视结果, 调整设定
第二朝起床,你可以先从手机 “设定 > 电池 > 详细记绿” 的图表内,看看会否有大量的 Wakelock 出现。跟着就可开启上述的 BBS 或者 GSam 查看那些 Apps 带来最多的 Wakelocks。从 BBS 或 GSam 的结果中,你可以逐一想想这些 Apps 为什么会要 Wakelock?若果 Apps 是没有用但又不断 Wakelock,那就删除吧!

部份 Apps 是要定时更新的,例如新闻天气, 通讯, RSS Reader。你可以调整 App 内设定 将更新的间距增长,甚至将它转为手动更新。例如 Facebook 就可以选择 30分钟, 1小时, 2小时, 4小时, 或从不更新。

若你有安装一些情景 Apps,例如 Tasker, Locale, Setting Profiles,你可查看会否是触发条件太紧太密,让手机不断切换情景。有些极端情况是情景 App 的设定,跟手机系统设定相违背,这样两者就会互相触发造成耗电!

不要苛求, 总会有 Wakelock
要找出 Wakelock 元凶需要花点时间,逐一就有问题的 App 查看并调整设定,而作出改动后,跟着到第二天再查看成果。当手机调整理想,一晚 8小时用约 10-12% 电量是有可能的。下图看到,撇除起初屏幕开着的那小段时间,手机在约 6小时内也只是用了 10% 左右的电量,Wakelock 亦没有太多,情况也很理想。

Battery Wakelock 用电

手机安装了不同的 Apps,或多或少也会带来 Wakelocks 和用电,你不可能放弃所有 Apps 换取电量,那智能手机就变得没意义。不要苛求晚上睡觉时,手机是零 Wakelock 呢!若对电量没有带来大的影响,那就由得它吧!

发布留言