频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android手机耗电过多常见原因分析
2018-05-05 09:36:37      个评论    来源:cassie_huang的博客  
收藏   我要投稿

最新在写一个tool,用来分析Android手机耗电过多的原因。用python。 边写边记录吧。

1. 耗电过多的原因

耗电过多的原因基本可以分为两大类。其一,CPU没有睡下去。其二,CPU被频繁唤醒。当然,前提是没有插USB,并且灭屏了。?

1.1 CPU频繁唤醒的情况

在黑屏状态下,如果手机没有异常,并且后台没有类似下载apk,播放音乐等行为的话,CPU会睡下去(后文直接用深睡代替)。并且,不会过于频繁的被唤醒(唤醒也是指CPU被唤醒,不是亮屏)。如果看log时发现机台会很频繁的唤醒(几秒一次甚至更频繁),那肯定是不正常的。

一般情况下,会在唤醒时刻附近直接查看唤醒源,定位到是什么唤醒了机台。可能是modem还有其他一些硬件的原因,也可能是上层apk设置了一些alarm。

1.2 CPU没有睡下去

CPU没有睡下去时,一般是因为有wakelock。可能是上层apk的wakelock,也可能是kernel中的一些driver持有的wakelock。

kernel中的wakelock的一些信息可以通过cat /d/wakeup_sources查看。active_since的值特别大的,就是怀疑对象。

还有上层的wakelock,可以查看/sys/power/wake_lock节点。当屏幕亮时,这里总是有一个PowerManagerService.Display。

点击复制链接 与好友分享!回本站首页
上一篇:android开发自定义控件 之 ViewGroup解析
下一篇:Android编程入门-单元测试代码的编写
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站