Android系统上App的电量消耗主要由cpu、wakelock、数据传输(流量和wifi)、wifi运行、gps、other senior组成,而耗电异常也是由于这几个模块的使用不当。
BroaddcastReceiver
为了减少应用损耗的电量,代码中需要尽量避免无用的操作代码的执行
比如监听网络状态变化的广播接收者,如弹出提示网络环境的切换等,那么当应用切换到后台时候,我们需要禁掉这些动作,一般在onPause 之后取消广播的监听操作,onResume在监听即可.
数据传输
Android中常见的数据传输方式:蓝牙,wifi,移动数据等
在业务需求下,是否当应用切换到后台禁用这些数据的传输,避免无效的传输
位置服务
需要正确有限的使用位置服务
注意几个问题:
- 是否及时注销位置监听器
- 位置更新监听的频率
- 多种位置服务的选择
AlarmManager
在不需要使用唤醒功能的情况下,尽量取消AlarmManger,否则会一直处于耗电状态
WakeLock
使用wakeLock时,需要切记及时释放锁
,否则可能导致屏幕一直常亮,耗费电量