一、手机最耗电的地方
1.唤醒屏幕
2.CPU唤醒使用
3.蜂窝煤比wifi费电
二、电量检测工具
1.因为电量统计数据是持续的, 会非常大, 统计我们的待测试App之前先reset下, 连上设备, 命令行执行:
$ adb shell dumpsys batterystats --reset
Battery stats reset
2.断开测试设备, 操作我们的待测试App
3.重新连接设备, 使用adb命令导出相关统计数据:
// 此命令持续记录输出, 想要停止记录时按Ctrl+C退出
$ adb bugreport > bugreport.txt
Battery History工具安装:https://www.cnblogs.com/chenxibobo/p/9657266.html
三、减少电量的方式
1.监听手机充电状态
与监听wifi同理,可以在充电状态,做一些费电的事情。
2.屏幕唤醒
eg:APP需要支持视频播放,那么在播放的界面需要控制好不熄屏。当退出播放时使用。
方法1:getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
方法2:WakeLock acquire和release 也可实现上述功能。
https://www.jianshu.com/p/0c41abab226a
3. JobScheduler、WorkManger
JobSchedule的宗旨就是把一些不是特别紧急的任务放到更合适的时机批量处理。这样做有两个好处
避免频繁的唤醒硬件模块,造成不必要的电量消耗。
避免在不合适的时间(例如低电量情况下、弱网络或者移动网络情况下的)执行过多的任务消耗电量
4.合理使用定位、蓝牙等耗时模块。
eg: 定位如果对位置不是特别精准 ,可使用wifi定位等