AndroidAndroid小小牛

Android耗电量优化

2017-02-08  本文已影响493人  zhangxuanchen

导致Android电量消耗过快的原因

1.对设备的频繁唤醒 :在Android中AlarmManager可唤醒设备,而项目中不限制的滥用;WakeLock能让CPU 保持唤醒状态,如果
WakeLock在项目中有不恰当的使用,最终没有合理释放掉,将会使得系统长时间无法进入休眠,势必导致高耗电。

2.IO与网络耗电方面:大量的IO操作包括数据库操作和网络请求操作,都会造成电量的急剧消耗。包括WIFI扫描等。

3.GPS: 对GPS设备的使用控制。因为GPS的实时性所以电量消耗也比较严重。

4.对传感器设备方面:传感器和屏幕也是耗电大户,如果应用存在这样的需求,需要对其进行一定的管理

一些电量优化的途径

1.减少程序中定时任务的数量,尽量减少对屏幕的唤醒次数,在用户空闲操作的时候,可设置进入低电状态,降低任务的执行频率。

2.将零散的任务集中到某个时间段去集中执行,减少唤醒次数。

3.在某些特定的情况下采取执行某些任务,比如在WIFI开启之后才能进行下载操作。(下载尽量使用GZIP压缩下载)

4.在使用网络请求之前先验证网络的可用性,如果网络不可用直接返回错误。(弱网络或者移动网络情况下的对网络请求的耗电量会增加)

5.将不重要的对用户不敏感的任务推迟执行,或者在某些特定条件下执行。(比如在充电的时候触发这些任务)

6.可以监控电池当前的电量和冲放电状态,在程序中做相应参数设置以减少耗电量。

7.使用JobScheduler来管理后台工作,将一些不是特别紧急的任务放到更合适的时机批量处理。

官方建议优化的一些方法
https://developer.android.google.cn/training/monitoring-device-state/index.html

对低电耗模式和应用待机模式进行针对性优化
https://developer.android.google.cn/training/monitoring-device-state/doze-standby.html

Android 7.0新特性对电池管理进一步加强,一些新的变化可能多对我们现有的业务会造成影响需关注
https://developer.android.google.cn/about/versions/nougat/android-7.0-changes.html#perf

对JobScheduler介绍以及简单的使用:
http://blog.csdn.net/u013400743/article/details/52246952
http://blog.csdn.net/zhangyongfeiyong/article/details/51495791

上一篇 下一篇

猜你喜欢

热点阅读