淘先锋技术网

首页 1 2 3 4 5 6 7

【前言】

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

【硬件功耗】

硬件功耗计算函数在: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, 会导致有过多的网络请求),应用