最近一年使用Nexus 5,升级至Android 5.0之后,耗电加剧。工作时,手机要一直连接电脑,夜间手机一直处在充电状态。如睡觉前忘了充电,第二天早晨电量肯定低于15%。
为什么Android手机的耗电要比iPhone(准确讲的话,应该是ios)快很多,iPhone夜间耗电通常不会超过5%。原因主要在于Android多任务机制存在缺陷。
先来看看Android的用户:
- 为了省电或提升手机运行速度,每次锁屏时,执行一键清理。
- 没有使用任何优化软件的用户,夜间手机耗电20%,甚至个别老机型可以达到50%。
- 手机上通常安装至少一个优化软件。
- 有洁癖/处女座用户,对后台软件自启非常厌烦。
有个老梗:用Android手机的男人都是好男人,因为每天都要回家充电。
再来对比下iPhone用户:
- 为什么要清理后台进程?
- 夜间耗电不到5%,即便是2年前的机型。
- 从来不安装优化软件。
为什么会出现这样的情况,核心在于Android的后台多任务机制不如iPhone。
iPhone的APP由前端进入后台时,系统会执行几个操作:
- 回收任务内存。
- 限制后台活动,比如联网权限。早期下载任务只会保留10分钟,如果想让视频APP一直下载电视机,手机界面必须停留在视频APP,而且不能锁屏。进入后台的软件,几乎不可能会偷偷发短信或者偷跑流量等。
- 保留进程状态。iPhone的APP进入后台,不会被清理,进入后台时界面什么样子,在多任务中继续使用时,APP界面还是什么样子。
- 统一走系统推送机制。通知栏的所有通知都是由系统控制的,每个APP把想推送的通知都交给Apple的服务器,iPhone统一从Apple的服务器定时接收通知。优点就是手机只要和自家的服务器保持连接就可以。
再来看看悲催的Android的APP进入后台可以做什么,几乎没有任何限制:
- 不回收内存。后台有30个进程,手机就卡的不行了。
- 有很多权限,可以通过各种事件唤醒手机。这些变化包括:开关屏幕、信号变化、电话、网络切换和电量变化等等。如手机处在锁屏状态,移动网络变为WiFi,软件市场、视频和音乐APP会检查下载任务是否要继续。
- 保留进程状态。如果把iPhone后台任务比喻成一个『活死人』,Android后台任务就是一个可以『自由活动』的大活人,甚至可以把别人弄活,也就是大家常说的唤醒其他APP,一起在后台『开聚会』。
- 每个APP各自连接自家的服务器。国内的手机无法使用Android的推送服务,导致APP要同时和自家服务器保持几十个链接。大量的APP利用Android的缺陷来做一些事情,比如手机开机时自启动,频繁发送通知,提高APP的日活跃用户数,甚至是唤醒其他不相关的APP。
所以导致Android手机很耗电,而且卡顿。最核心原因是当Android后台APP不停通过这些事件唤醒手机时,导致手机无法持续保持在低耗低内存的状态。
LBE安全大师近期内测版增加一项新功能,可以查看和关闭APP之间的唤醒。从列表中可以看出,喜马拉雅听书可以被其他不相关的唤醒自启,如滴滴打车和百度云。当喜马拉雅听书被用户手动关闭时,如果不切换唤醒路径,它还可以重新启动并且运行在后台,继续接收通知,导致手机耗电。
用户为了达到省电和加速,最频繁使用的方法是执行后台任务清理,甚至在每次锁屏前点击『一键清理』,让手机锁屏时处在低耗状态下。
为了解决这种问题,LBE安全大师可以对后台任务(需要获取手机管理权限)进行智能休眠。
锁屏之后,软件的活动被限制,最明显的变化是APP唤醒手机的次数明显减少,不会唤醒其他APP,接收通知受限制,不会因为事件变化而唤醒手机了。给予用户最直接的感受是Android待机时间明显增加,夜间不关闭WiFi和移动网络,不清理后台,可以保持后台运行30个进程,手机同样可以保持在低耗状态下。
省电的同时,可以像iPhone的『进程状态保存』那样,程序保持在后台,但活动被限制,需要使用APP时,不必重新启动APP。