Android 耗电过多时的log分析

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

1. 耗电过多的原因

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

1.1 CPU频繁唤醒的情况

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

一般情况下,会在唤醒时刻的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。

2. TOOL的实现

TOOL目前的想法是对logcat log和event log进行分析。

2.1 找出没有插USB的时间段

通过event log找出没有插USB(电脑USB或者adapter)的时间段&#

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值