Android系统上App的电量消耗主要由cpu、wakelock、数据传输(流量和wifi)、wifi运行、gps、other senior组成,而耗电异常也是由于这几个模块的使用不当。


BroaddcastReceiver

为了减少应用损耗的电量,代码中需要尽量避免无用的操作代码的执行

比如监听网络状态变化的广播接收者,如弹出提示网络环境的切换等,那么当应用切换到后台时候,我们需要禁掉这些动作,一般在onPause 之后取消广播的监听操作,onResume在监听即可.


数据传输

Android中常见的数据传输方式:蓝牙,wifi,移动数据等

在业务需求下,是否当应用切换到后台禁用这些数据的传输,避免无效的传输


位置服务

需要正确有限的使用位置服务

注意几个问题:

  • 是否及时注销位置监听器
  • 位置更新监听的频率
  • 多种位置服务的选择

 

AlarmManager

在不需要使用唤醒功能的情况下,尽量取消AlarmManger,否则会一直处于耗电状态


WakeLock

使用wakeLock时,需要切记及时释放锁

,否则可能导致屏幕一直常亮,耗费电量