电量优化
- 减少操作: 减少网络操作
- 推迟操作: 应用操作延迟执行 可以等到充电后或者wifi连接时在将数据备份到云端
- 合并操作: 合并多个网络请求.
Doze低电耗模式
在未充电,屏幕熄灭,设备一段时间不活动 延迟应用后台cpu和网络活动,从而降低耗电量
Doze系统会定期退出打盹一小段时间,让应用完成其延迟的活动
在低耗电模式下
FireBase只能在google原生手机上使用
如何进入 Doze
StandBy待机模式
应用待机模式会延迟用户近期未与之交互的应用的后台网络活动。
当用户有一段时间未触摸应用并且应用没有以下表现,则Android系统就会使应用进入空闲状态
- 用户明确启动应用
- 应用当前有一个进程正在前台运行(作为活动或前台服务)
- 应用生成用户可在锁定屏幕或通知栏中看到通知。
白名单
系统提供了一个可配置的白名单,在低耗电模式和应用待机模式期间,列入白名单的应用可以使用网络并保留部分唤醒功能
使用如下代码就可以。
充电状态:
为了减少电量消耗,我们可以通过检查电池状态以及电量来判断是否进行某些操作,比如在充电的时候上报crash日志。
注意在Android 8.0以上 静态广播就没有作用了。 只能使用动态广播。
日志系统 记录的日志数据 进行日志上报 Logcan
WorkManager
AndroidX 后台调度API整合的替换组件
其实最好使用厂商推送
Battery Historian
用来了解设备随时间的耗电情况的工具
Battery Historian 可以帮助我们查看应用是否有以下耗电行为:
- 过于频繁地触发唤醒提醒
Energy Profiler
如果使用8.0以上的手机可以使用Energy Profiler可以了解应用在哪里耗用了不必要的电量
网络优化
DNS优化 使用httpsdns 来防止dns劫持。
连接优化
使用http1.1