超能课堂(1):手机耗电太快?教你轻松解决

2015-7-23 17:59  |  作者:thesea   |  关键字:省电,wakelock,绿色守护,xposed,钛备份,Google服务,超能课堂

分享到:

在Android系统上,长期开着十几个超时锁长连接的壮观场面经常可见,大有你流氓我更流氓的意思,手机的耗电想正常也不可能了。所以,除了Google服务外,国内各类强占Wakelock的流氓APP也是手机电池杀手。

编辑按:无论是菜鸟还是高玩,对事物的好奇心都是一样的,从本期开始,超能课堂将会编写一系列入门级的知识性内容,涵盖传统DIY核心硬件、SSD、电源、手机等产品,目的很简单,让我们一起提升对这些事物的认知,一起把这些产品用好、玩好。


手机上应用程序的耗电,本质上是它所启用的硬件在消耗电量。Android手机有两个处理器,即Application Processor(AP,应用处理器)和Baseband Processor(BP,基带处理器),另外耗电单元还有GPU、LCD、WIFI、GPS、BT等,一般手机待机时,AP、LCD、WIFI均进入休眠状态,这时应用程序的代码也会停止执行,只会有BP在耗电。

Android为了确保应用程序的正确执行,提供了Wakelock(唤醒锁)的API,Wakelock是一种锁的机制,只要有应用拿着这个锁,系统就无法进入休眠,普通的用户应用和系统内核都可获得。Wakelock可以是有超时或没超时的,超时的锁在超时后会自动解锁(有些流氓应用就不断用超时锁然后靠系统自动解锁),当没有锁了内核就会启动休眠机制进入休眠状态。

手机耗电的问题,其实大部分是这个锁正不正常的问题。

为什么会有异常耗电?

经常听到有朋友抱怨,一晚上手机待机耗电超过15%,而且还不知道是什么应用在偷跑,就觉得电量哗哗地就往下直掉。正常情况下一晚上待机耗电在2-3%左右,超过这个值较多的肯定是有问题,绝大部分问题来源于以下几种。

1、霸道的Google服务

在国内,如果你的手机安装有Google组件,即便是在账户设置里取消同步,Google服务还是会在后台同步,如果被墙了,同步就会拿到锁,不断唤醒AP,致使系统完全没法进入休眠状态,消耗相当多的电量。

 
装了Google组件,问题 也来了(Google服务耗电量第一)

如果再看到有“耗电最多的是谷歌服务怎么办”的问题,你可以把这篇文章推荐给他看看,下面会有解决方法。

2、频繁唤醒AP的各类APP

早在2012年,Google就发布了GCM(Google Cloud Messaging),GCM提供了在应用服务器和Android设备之间引入代理的能力,以保障两者之间可伸缩的云通信。使用GCM推送服务的应用即使后台程序和服务都关闭掉,也依然可以在第一时间接收到新消息的推送。

但是由于众所周知的原因,国内行货Android手机都阉割了Google服务,也就无法使用Google的GCM PUSH通道,原本每个手机中只需要建立的唯一共享的PUSH通道,也就变成了各自为政。每一个声称为用户提供实时通知的国内APP(如通讯类、天气日历类应用),为了自身程序在后台的正常工作 ,让用户能“及时”接收到推送的消息必然使用自己的推送服务,可能会频繁的唤醒AP阻止其进入休眠。


手机QQ2012是曾经有名的电老虎

以微信为例,微信Android版是以5分钟为周期发送心跳连接,这相当于每天发送近300条短信的消耗,每天手机会有300次从待机省电状态被唤醒。而Google的GCM心跳周期为28分钟,尽可能降低心跳频率从而节省耗电。这仅仅是微信,其它相似的应用也做着同样的事情。


滴滴打车也是电老虎(BetterBatteryStats的监测,后面会讲到)

其实微信这样的消息推送还算正常,上图中,像QQ、微信、微博的心跳周期差不多都是5分钟,也就是每小时唤醒AP 12次左右,但是看看排第一的滴滴打车,每小次居然唤醒次数高达33次,心跳周期估计是100秒,这也就是为什么很多人说滴滴打车耗电厉害的原因。另外还有许多Android应用获取消息的方式是轮询(而非推送),即应用主动地与服务器连接并查询是否有新消息,可想而知它对系统和网络资源的消耗。

在Android系统上,开着十几个超时锁长连接的壮观场面经常可见,大有你流氓我更流氓的意思,手机的耗电想正常也不可能了。除了Google服务外,国内各类强占Wakelock的流氓APP也是手机电池杀手。

3、系统(ROM)优化不够

现在各家手机都有自己的系统,不光是UI风格各异,对Android底层的修改也是随心所欲,如果修改得不好的甚至会变成“反优化”,系统卡顿、耗电增加似乎成为司空见惯的问题。

 
联想Vibe shot的电量使用情况,堪称反面教材

这里拿联想Vibe shot作个反面例子,同事一直在用这款手机,也一直吐槽手机耗电问题,简单看下它的电量消耗情况,上图中显示“联想日历”耗电占了14.9%,同事称根本没用过这个日历,该应用CPU使用时间近一小时,这还是系统自带的官方应用,情何以堪。再看看微信的情况,更是糟糕,上面说过,微信心跳连接周期为5分钟,也就是说在1天6小时内唤醒次数为360次左右,但是在联想Vibe shot,唤醒次数居然高达2110次,使得微信的耗电量狂增,不得不说联想确实要好好把自己的VibeUI化下。

另外典型的例子就是很多手机有官方ROM与CM版ROM,很多时候CM版ROM能提供更加丝滑般的顺畅,但是耗电却不减反增,或许是CM版ROM在驱动方面优化不足,关于这个问题,打算日后会来篇《为什么CM ROM更耗电?》讨论讨论。

初步解决方法:绿色守护——谁耍流氓干掉谁


在“设置-电池”中查看耗电情况

一般来说,如果觉得耗电过快,可先在手机“设置-电池”查看具体的耗电情况,对于一些异常的应用耗电可以采取卸载、冻结的方式来看看是不是它在作崇,只不过不同的ROM,它显示的方式并不一样,像一些系统应用都统归于“Android操作系统”这一项(如Google服务),所以这个只能参考下,只是初步目测而已。

说了这么多,转到重点上来,也就是今天要隆重推荐的耗电杀手级应用——绿色守护(Greenify)。

 
Android神器之绿色守护(2.7 beta4)

绿色守护作为Android神器,其实早已声名远播,它主要能对付那些申请了锁却没有学会释放的应用程序,通过独特的“绿色化”技术,来减少电池消耗,目前最新版本为2.70。从2.0版本开始,绿色守护可以在工作在非ROOT模式,不过这一机制由于权限制约,还是没法实现自动休眠,所以强烈建议手机获取Root权限, 获取Root权限其实也不会增加什么风险,这里要表扬下小米和魅族这些直接在ROM中开放了Root权限的厂商,极大方便了玩家。

 
点击右上角的“+”添加需要绿色化的应用

绿色守护使用起来很简单,添加需要绿色化的应用即可,这些被添加的应用在屏幕关闭三分钟后进入休眠状态,从而达到省电的目的。但是不要绿色化闹钟、即时通讯、启动器类的应用,除非你确定不使用它们,而像Google服务这样的,也可以选择无视状态强制让它进入休眠,但不得不说即使如此有时候Google服务还是会在后台运行。

绿色守护另外还有功能更强大的捐赠版,需要Xposed框架配合使用:

 
Xposed框架下的绿色守护,功能大大加强

捐赠版能绿色化系统应用、深度休眠等,而且可以让GCM推送唤醒绿色化的应用(像GCM版微信、淘宝都可以被绿色化),这些支持GCM推送的应用在绿色守护中会有个小图标显示。

只要几步简单的操作,凡是耍流氓的应用都可以被“干掉”,在熄屏后还不断唤醒AP的的情况可大大缓解。

进阶之一:寻找真凶的BetterBatteryStats

绿色守护是一副良药,但也不是包治万病,有时还需要对症下药方能根冶,这就是需要我们能找到耗电的真正元凶,要借助一些手机电池工具APP来帮忙。目前比较好用的电池分析工具有wakelock detector和BetterBatteryStats这两款,前者久未更新,也不支持Android 5.x的系统,所以不作推荐,BetterBatteryStats(简称BBS)目前最新版本为2.0,功能强大,操作简单,值得一试。

BBS是一款实用的电池工具,能够分析你的手机行为,找到那些造成手机耗尽电池的应用,需要注意的是在安装完后选择作为系统应用安装,然后重启手机才能正常运行。

 
BBS能监测的项目

BBS能监控多个项目,如果待机一段时间,在“Other”项目中“Deep Sleep(深度睡眠)”没达到90%以上,那就要好好考察考察。需要重点关注的是“Partial Wakelocks”、“Alarms”、“CPU States”这几个项目,而像“Network”能监测到各个应用的流量消耗情况,这样偷跑流量的应用就很容易被揪出来。

 
“Partial Wakelocks”与“CPU States”

Partial Wakelock是锁的一种,它表示保持AP运行但屏幕和键盘灯有可能是关闭的,也就是熄屏后偷偷在运行的那种,真凶在这儿往往能现形,像上图的“Checkin Service”在66分钟监测时间内运行了27分钟,明显就是耗电大户。CPU States能显示在监测期间手机CPU工作频率的分布情况,如果待机时“Deep Sleep”占比不高同样说明有应用在默默地奉献。在“Alarms”中可以监测到各个应用的唤醒频率,这样也容易找出那些心跳过快的APP。

BBS能够比较容易找到不正常耗电的真凶,接下来的事就是要处罚这些真凶——杀无赦或关进牢里。对于一些普通的无良应用可以直接杀无赦卸载了事,但像Google组件这样的, 有时卸载并不是个很好的方法(有些应用需要Google服务支持,这时卸载并不能适用所有状况),冻结也就是把它关起来不给它活动是最简单的方式。

进阶之二:冻结害群之马

把应用冻结起来的方法很多,相关的APP不少,像XX卫士什么的都能做到,不过这里推荐使用钛备份(Titanium Backup),钛备份是Android手机玩家必备应用之一,除了常规备份外,它也支持冻结(解冻)应用,目前最新版本为7.2.1。

 
钛备份的冻结功能

在钛备份中,点击任何应用(包括系统应用),都可以弹出一个功能窗口,包括备份、冻结和卸载等,被冻结的应用会有蓝紫色背景显示,再次点击它们,可以进行解冻。

对于国内手机中的Google服务,建议还是冻结起来为上策,绿色守护有时也难以控制住它,需要用到时再解冻。

进阶之三:借力Android第一神器Xposed框架

玩机的朋友,一定会听说过Xposed framework,如果它说是神器第二,没人敢说是第一。Xposed框架是一款可以在不修改APK的情况下影响程序运行的框架服务,基于它可以制作出许多功能强大的模块,且不占用任何资源。Xposed更像一个平台,提供了由众多作者编写的数千个模块,这些模块或大或小,主要实现功能增强、修复Bug、美化系统等作用。

 
最新的Xposed 3.0 alpha4版本

目前Xposed能很好地在Android 5.x系统上运行,最新版本为Xposed 3.0 alpha4,在Android 5.x系统中安装时除了APP外还需要通过Recovery刷入相应的框架(并且区分5.0.x和5.1.x两个框架),有一定的门槛,不过对于玩机的朋友来说这都不是个事。在Android 4.x系统中,最新的版本是Xposed 2.7,直接安装即可。

有个问题是,很多手机自带ROM(如MIUI、Flyme等)定制化严重,对Xposed的兼容性并不好,有时可能要选择一些低级的版本或特制版本才能正常工作 ,像华为的EMUI只能使用Xposed 2.5.1版本,版本过低这样很多功能模块就无法使用。

 
Xposed中的模块及下载

在Xposed的下载中提供了数千个模块供免费下载(少数模块会有需捐赠的高级版),像前面介绍过的绿色守护捐赠版,它能提供更好的绿化功能,也有Pre APP Hacking这样的模块来防止Wakelock,也有Native Freezer来冻结应用,基本上你需要的功能在Xposed框架中都可以找到。

关于Xposed框架的应用,也有想法单独做一篇。

小结:


待机了12小时还是100%电量,怎么破?

目前无论是Android手机还是iPhone,续航都是个老大难的问题,既然电池已经固定不可更改了,那么内部挖潜降低手机耗电量是唯一出路,国内手机中,耗电影响比较大的一是Google服务,一是那些申请了锁但又舍不得释放的应用,通过绿色守护能缓解它们的影响,更激进一点的策略就是冻结或卸载它们,一劳永逸。这些简单的操作,至少能让你手机的续航提高一个档次, 更主要的是能获是玩机的一些乐趣,何乐不为呢。

最后提供小福利,以上推荐的软件可以去这儿下载(密码a5bq)。


小超哥贴心服务:有困难有想法想聊天,请找小超哥(微信号18680462854),一对一交流,免费试用、免费门票、优惠团购、有奖活动、VIP通道、精品分享……还有万计的志同道合的朋友等你一起耍!

    推荐关注
    第一时间获知
    精彩活动和原创科技资讯

    微信号expkf01

    超能网

    全文RSS

    
  • 游客  02-02 10:06

    游客:

    然后用YunOS你说的这些都没什么卵用……根本不开放ROOT权限,一个个号称免Root的工具都哑火了……
    2015-07-23 22:41
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 王俊凯的女朋友

    支持(0)  |   反对(0)  |   举报  |   回复

    60#

  • 
  • 游客  2016-07-28 12:37

    不翻墙开GOOGLE服务一晚上也就是3%耗电量,GOOGLE服务哪里来那么多耗电

    支持(1)  |   反对(0)  |   举报  |   回复

    59#

  • 
  • 游客  2016-03-19 09:38

    华为mate7,6.0系统,关闭自启动,相互启动,中轻度使用可达两天半还多,不能想象会有正常人用不过一天。

    支持(0)  |   反对(0)  |   举报  |   回复

    58#

  • 
  • 游客  2015-12-25 00:19

    支持Xposed框架的应用讲解

    支持(0)  |   反对(1)  |   举报  |   回复

    57#

  • 
  • 游客  2015-09-18 17:05

    好贴!!!!

    支持(0)  |   反对(0)  |   举报  |   回复

    56#

  • 
  • _YuuKyuu初中生 2015-08-03 20:32

    游客:

    不错。同类软件还有黑白门(自动冻结解冻),阻止运行(新软件 比绿色守护暴力 激进),my android tool(深度自定义调节),都不错。另外说一句国产软件真可怕
    2015-07-30 09:35
  • 支持(4)  |   反对(0)  |   举报  |   回复
  • 游客:

    绿色守护主要是比较容易,功效也很好,适合大众化使用
    2015-07-30 15:04
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 是的,我自己也是用绿色守护,其他的用不太上,可能自己遇到的毒瘤等级还不高

    支持(0)  |   反对(0)  |   举报  |   回复

    55#

  • 
  • 游客  2015-07-30 15:04

    游客:

    不错。同类软件还有黑白门(自动冻结解冻),阻止运行(新软件 比绿色守护暴力 激进),my android tool(深度自定义调节),都不错。另外说一句国产软件真可怕
    2015-07-30 09:35
  • 支持(4)  |   反对(0)  |   举报  |   回复
  • 绿色守护主要是比较容易,功效也很好,适合大众化使用

    支持(0)  |   反对(0)  |   举报  |   回复

    54#

  • 
  • 游客  2015-07-30 09:35

    不错。同类软件还有黑白门(自动冻结解冻),阻止运行(新软件 比绿色守护暴力 激进),my android tool(深度自定义调节),都不错。另外说一句国产软件真可怕

    支持(4)  |   反对(0)  |   举报  |   回复

    53#

  • 
  • 游客  2015-07-25 00:03

    现在lbe里的功能,完全可以控制好软件,自动结束进程,自动让应用进入睡眠状态.管理相互唤醒,三大功能非常强大实用!

    支持(1)  |   反对(1)  |   举报  |   回复

    52#

  • 
  • 游客  2015-07-24 18:27

    感谢啊

    支持(0)  |   反对(0)  |   举报  |   回复

    51#

  • 
  • 游客  2015-07-24 16:30

    好长好精致的广告。。。。

    支持(8)  |   反对(1)  |   举报  |   回复

    49#

  • 
  • 游客  2015-07-24 14:18

    没有wakelock detector和amplify,重写

    支持(0)  |   反对(0)  |   举报  |   回复

    48#

  • 
  • alexallen编辑 2015-07-24 13:44

    老师教“训猴”

    支持(0)  |   反对(0)  |   举报  |   回复

    47#

  • 
  • Geo0099等待验证会员 2015-07-24 12:50

    干掉了酷狗音乐,几乎全程唤醒CPU,耗电量40%。

    支持(0)  |   反对(0)  |   举报  |   回复

    46#

  • 
  • 游客  2015-07-24 11:16

    游客:

    方法五:换iPhone,一晚仅需3度(%)电。
    2015-07-23 18:39
  • 支持(6)  |   反对(14)  |   举报  |   回复
  • 游客:

    原生系统一晚就只需要2%所有后台都不用禁止
    2015-07-23 20:25
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 游客:

    回一楼,不能因为人家的手机晚上耗电快就怪罪于"谁让你买这傻叉操作系统的机子""你这种傻叉玩不来机子"等等的理由啊,难到你不会用筷子吃饭,是不是只要来个东亚人就该骂你是弱质?每个人有每个人的选择权,有问题可以讨论,但请不要以这种所谓的高姿态来肚量他人的智商
    2015-07-23 20:41
  • 支持(4)  |   反对(1)  |   举报  |   回复
  • 游客:

    用iphone这么有优越感啊,其实现在Android系统正常一晚上待机也就2-3%耗电,主要是APP现在很多太不规范了,这是主要差距
    2015-07-23 20:44
  • 支持(4)  |   反对(1)  |   举报  |   回复
  • 同意楼上,主要是APP太不上路子,并非安卓系统本身存在缺陷。
    当然话说回来,苹果是个封闭系统,相对比较容易控制app。安卓就比较困难了,只能靠另外的安全厂商去优化。

    为毛华为手机待机这么强(特别从Emotion UI 3.0开始),就是因为它极大地优化了后台控制。基本上,它默认app进程不能在后台长时间运行,只要切到后台,过段时间进程就关闭了。除非你主动设置。

    前期优化不太好的时候,甚至连微信这样的通信软件,也是过段时间就关闭进程……不过现在应该好多了吧。

    支持(0)  |   反对(2)  |   举报  |   回复

    45#

  • 
  • 游客  2015-07-24 10:51

    游客:

    讲真,无论安卓还是苹果,就好像电脑一样,有些人同样配置别人用起来顺畅的1B有些人用两三个月就说卡卡卡,慢慢慢,这还不是使用习惯的问题。。。。
    2015-07-24 09:22
  • 支持(7)  |   反对(0)  |   举报  |   回复
  • 在理,真的要会用才行

    支持(0)  |   反对(0)  |   举报  |   回复

    44#

  • 
  • 游客  2015-07-24 10:10

    望星喵 教授 :

    开个支付宝就把阿里全家启动一遍怎么办……贴吧一开百度地图也启动怎么办………………qq一开么各种…………………
    2015-07-23 21:33
  • 支持(4)  |   反对(0)  |   举报  |   回复
  • shinjico 高中生 :

    绿色守护捐赠版可以切断唤醒路径,貌似需要Xposed框架
    2015-07-23 21:48
  • 支持(2)  |   反对(0)  |   举报  |   回复
  • 安卓最恶心的就是这点,点开一个APP扯出一家子的后台推送。
    google再不加强后台管理,安卓这生态圈就比windows还脏了。

    支持(0)  |   反对(0)  |   举报  |   回复

    43#

  • 
  • 游客  2015-07-24 09:22

    讲真,无论安卓还是苹果,就好像电脑一样,有些人同样配置别人用起来顺畅的1B有些人用两三个月就说卡卡卡,慢慢慢,这还不是使用习惯的问题。。。。

    支持(7)  |   反对(0)  |   举报  |   回复

    42#

  • 
  • libossking博士 2015-07-24 08:31

    安卓真'好玩'

    支持(0)  |   反对(0)  |   举报  |   回复

    41#

  • 
  • 游客  2015-07-24 08:13

    游客:

    绿色守护有的版本会导致一些奇怪的问题 各种各样
    我用的正点闹钟特别烦人 用全能工具箱自带的进程管理根本杀不掉 只有重启才能彻底杀死
    还有我用MyAndroidTools Pro把微信很多没用的服务 活动给禁了 但是那个做列表的大神弄得太彻底了 别人加我好友我同意没用 只能我家别人 可有什么办法
    2015-07-23 20:48
  • 支持(0)  |   反对(0)  |   举报  |   回复
  • 游客:

    那就别用那个正点闹钟啊,用系统自带的,不就是个闹钟而已,为何要对个闹钟屈服?
    2015-07-24 08:11
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 而且第三方闹钟你还真不能把它服务停了,停了它到时就闹了……

    支持(0)  |   反对(0)  |   举报  |   回复

    40#

查看全部评论(59)

回复