手机上的算法优化 —— 软件耗电排查

本文探讨了手机功耗中的软件耗电问题,包括过多的打印、崩溃、异常、进程重启、网络请求、定位、网络助手、警报、ANR等。并提出功耗优化方案,如检查power_profile.xml、活跃度分析和使用Battery Historian工具进行分析。此外,还提到了UI数据与实际电池状态可能存在差距的状况。
摘要由CSDN通过智能技术生成

【前言】

手机功耗分为: 硬件功耗与软件功耗。

【硬件功耗】

硬件功耗计算函数在:processMiscUsage()

private void processMiscUsage() {
    addUserUsage();   // 多用户中每个用户的耗电量
    addPhoneUsage();  // 通话耗电量
    addScreenUsage(); // 屏幕耗电量
    addWiFiUsage();   // wifi耗电量
    addBluetoothUsage(); // 蓝牙耗电量
    addMemoryUsage();    // DDR内存耗电量
    addIdleUsage(); // CPU suspend/idle状态下的耗电量(不包括蜂窝数据空闲功耗)
    
    if (!mWifiOnly) {//(当只有wifi上网功能的设备时不计算蜂窝数据功耗,如平板,电视等)
        addRadioUsage();  //移动数据网络的耗电量
    }
}

【软件功耗】

硬件功耗比较复杂需要大量的经验,一般情况如下:

1. 过多的wtf 打印

2. 过多的crash (比如gms应用在后台不停crash导致耗电; 一些persist的进程不断的crash)

3. 过多的runtime exception

4. 过多的进程和service重启

5. 过多的kill 应用

6. 底层掉电问题:底层持锁(wakelock)时间长,底层唤醒次数多

7. system app crash问题

8. 过多的网络请求问题 (比如之前的网络助手导致的 H 和 H+ping-pong, 会导致有过多的网络请求),应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值