小甲鱼 发表于 2013-9-10 15:59:21

安卓系统找出耗电元凶之实录(“Android 系统”耗电解决方案)

之所以有这篇文章,主要是因为找了整个网络,没人教像小甲鱼这样的菜鸟遇到这类问题应该如何做,所以小甲鱼抛砖引玉,希望大家多分享自己的一些经验和知识。

最近小甲鱼从某水果组织叛逃到机器人阵营,入手一个Android机后发觉爱不释手丫,虽然比起苹果金属外观给人踏实感觉,某棒子产品确实通体塑料感觉特容易断(我朋友说是因为塑料的生产周期是铝合金的三分之一,其实成本铝合金也就贵一二十块)

拿到机子后立刻装了一大堆软件,第一个晚上过后。。。。。。哎呀妈呀,居然自动关机了,我记得睡前还有40%左右的电的丫。
查看设置->电池,Androir 系统处竟然占据了65%,保持唤醒状态长达偶滴睡眠时间之久(尼玛趁我睡觉你们在干嘛~)。。。。。。

于是开始怀疑是安装的APP留有尾巴,于是乎一顿度娘谷哥的搜,发现使用Android 系统大都有这个问题,但普遍是某安全软件导致,可是由于平时编程习惯,所以没有安装过任何安全软件。没办法,只能自己想办法找出元凶了!


网上很多人说国外大牛写的 BetterBatteryStats 这款软件不错,可以追查元凶。于是我抄起家伙就上!




很明显可以看到一个叫 LocationManagerService 的进程一直不肯休息(1),然后拼命点击刷新(2)发现 LocationManagerService 是随着系统时钟同步的......所以机子的 Deep Sleep 时间基本等于0,不耗电才怪!

LocationManagerService 应该是一个定位的进程吧?嗯,查了一下果断是安卓系统的一个定位进程,小甲鱼万岁!但它只是一个系统进程,不是它的错呀,但很遗憾 LocationManagerService 只能查到这里了,接下来就要找出是哪个程序在全天候二十四小时不间断的调用这个进程了。


Android 系统是基于 Linux 的,所以后台程序一大箩筐纯属正常,说到这个其实现实中 90% 以上的朋友都喜欢没事就清理内存吧?其实完全没必要,学过编程的朋友都知道内存里的数据不是 0 就是 1,内存中纯粹放着数据不影响耗电滴。

要知道内存的诞生本身就是为了提高 CPU 和存储器的通信效率,所以有了一级缓存,二级缓存,然后是内存,再到存储器,所有的应用按照使用频繁度分布排放。所以,清理内存相当于把这些系统认为会这些频繁使用的数据清理掉,下次启动程序,又得初始化,又得把重新分配内存,重新计算,就这样,系统活活给你气死了。。。。。。

有些朋友可能会说,那我看到内存都已经占用了 90%,不清理,我怎么玩极品飞车?要知道大游戏可以相当“消耗”内存的丫。但其实不是这样的,Linux 系统之所以会被广泛应用于服务器上,就是因为它的内存控制做的非常好,当有内存有大量内存需求的时候,LMK(低内存管理系统)会通过清除 LRU(使用频率最少)列表的数据来自动释放内存。所以,不清理内存也不耽误玩大型游戏。

有些朋友可能会说,不对呀,应用程序留有后台,我总是不放心,我觉得他就是会偷偷干点什么事儿?!嗯,没错,我这次的遭遇正是遇到了流氓程序!但你要这么想,既然是流氓程序,那你关了他肯定在一秒内又会自动重启,你没事刷新内存这才是耗电的关键,因为你把正常待命守规矩的小伙伴们都踢了,但是小流氓又自己跑出来了。

嗯,“分析”到这里,大家应该知道怎么做了吧?

没错,修一切东西靠的就是经验,没经验怎么办(我接触安卓才3天不到有毛经验)?排除法!对的,修电脑修汽车写代码也是如此,有经验的人一看就知道,没经验我们只能自己摸索,一个个排除。但有了以上分析,相信大家的做法跟小甲鱼是一样的了。

我们先果断清理一下内存,然后看到有几个程序在一秒内复活了,所以你只需要对这几个程序进行逐一排查即可。一般系统本身自带的东西都是调试得很好的,所以最迟考虑他们的因素。

小甲鱼运气比较好,第一次排查就直接找到了元凶:一个某国内大视频播放器客户端

好了,感谢大家辛苦看了这么久~_~

福禄娃娃 发表于 2013-9-10 16:00:04

沙发啊!

福禄娃娃 发表于 2013-9-10 16:02:34

但是清理内存也有这个效果:把一些后台运行的程序干掉,O(∩_∩)O~
安卓优化大师貌似可以禁止某些程序运行,还可以删除系统自带程序,我总这么干,貌似也没有出啥问题。

独自面对℡ 发表于 2013-9-10 16:03:38

我的小米2基本每天都得充电。。。悲剧。一会我也去找下看下问题点。感谢小甲鱼老师{:1_1:}

过去终过去 发表于 2013-9-10 16:10:06

躺枪 = =不玩的时候总喜欢清理内存

紫锋 发表于 2013-9-10 16:36:36

淡定,淡定,淡定……

my_angel 发表于 2013-9-10 16:44:46

本帖最后由 my_angel 于 2013-9-10 16:45 编辑

一般安卓一入手都会刷系统的。。。因为自带的系统一般都会带有流氓软件。或者一般人不会用到的软件,,,
安卓机已经玩了两年了,对安卓系统还是挺了解的,自己也尝试做过ROM包。。所以这些还是懂点的

say_p 发表于 2013-9-10 18:35:52

福禄娃娃 发表于 2013-9-10 16:02 static/image/common/back.gif
但是清理内存也有这个效果:把一些后台运行的程序干掉,O(∩_∩)O~
安卓优化大师貌似可以禁止某些程序运行 ...

那安卓优化大师也一直后台啊,其实我觉得老版本的它比较好,现在的就是一个广告平台·········

红头发 发表于 2013-9-10 18:56:30

看懂了,不错不错

jiatianxia1994 发表于 2013-9-10 22:19:38

真是难得给力的帖子啊。

591821661 发表于 2013-9-11 00:06:13

快播????

506076894 发表于 2013-9-11 09:07:04

矮油我去,来玩了,看来只能躺楼梯了。

506076894 发表于 2013-9-11 09:11:23

591821661 发表于 2013-9-11 00:06 static/image/common/back.gif
快播????

真相帝哈哈

清风不识字 发表于 2013-9-11 12:44:01

国内的软件就会搞这一套!!从电脑到手机都一个样!太生气了,无法HOLD啦 >_<......

qq2481 发表于 2013-9-11 13:52:40

某日手贱在“为每个应用程序提供停止响应提示”上打勾,结果开着优酷观看视频,隔几分钟就出现“XX已停止响应,是否关闭”,确定后关闭优酷,惊奇的发现内存好空虚- -,神马360清理都得靠边站!

且行且止 发表于 2013-9-11 14:55:42

躺枪,基本习惯清理内存

Everyting_Empty 发表于 2013-9-11 15:35:42

说的也是通俗易懂嘛~支持甲鱼。。。虽然我现在还木有手机,以前一个WP的丢了。。。至今没买。。。

爆火大侠 发表于 2013-9-12 19:50:39

真是难得给力的帖子啊。鱼哥玩什么都玩出门道{:5_108:}

Gray 发表于 2013-9-15 19:27:00

实用技术贴 必须支持手上的东西一定要刨根问底这算是IT人的职业病么

故乡思雨 发表于 2013-9-16 09:54:49

真是难得给力的帖子啊。   真的   一针见血
页: [1] 2
查看完整版本: 安卓系统找出耗电元凶之实录(“Android 系统”耗电解决方案)