APP耗电量测试

耗电量场景

主要的耗电场景有:

  • cpu:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
  • wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会导致耗电;
  • wifiscan和wifilock:wifiscan和wifilock也会导致手机的wifi模块处于激活状态,频繁的wifiscan或者wifilock不释放,会导致耗电;
  • sensor:传感器打开后会导致系统持续监听设备外围环境的数据变化,使用后不及时关闭,会导致耗电;
  • network:大量的数据传输,或者长时间的移动网络数据传输导致radio长期处于活跃状态,会导致耗电;
  • gps:gps也是一种传感器,定位中没有及时关闭,会导致耗电

业务层面,用户最核心基础的模块:

  • 新增的基础逻辑,倘若入口明显,潜在较大访问,必须保证性能;
  • 活动需要,因为活动上新的逻辑,存在较大的用户访问,需尽力提升用户体验;
  • 反馈体验不好的模块

耗电量优化方向

  • 尽量让CPU休眠
  • 避免无端电量消耗

实践:

  • 根据电池电量与充电状态调整应用更新频率
  • 根据网络连接状态调整应用更新频率;提前判断网络状态,网络不可用时,尽早进入异常处理逻辑
  • 根据当前设备状态停用不需要的接收器
  • JobScheduler批量执行唤醒任务
  • 离开当前界面【activity、fragment、tab、webpage】,减少耗电活动:动画、网络请求、定位、传感器等
  • 优化后台逻辑,防止频繁唤醒
  • 优化定位逻辑
  • 避免H5页面的耗电
  • 预取数据
  • 批量处理传送和连接
  • 减少连接

监控工具

收集电量信息

#kill adb服务
adb kill-server
#重启adb服务
adb start-server
#设置,目的:依照时间顺序展示各个wakelock的详细信息
adb shell dumpsys batterystats --enable full-wake-history
#重置batterystats数据
adb shell dumpsys batterystats --reset
#执行测试用例
#完成测试用例执行,连接设备,导出数据
adb shell dumpsys batterystats > bugreport.txt
#Android 7.0及以上
adb bugreport bugreport.zip
#Android 6.0及以下
adb bugreport > bugreport.txt

Battery Historian工具分析【安卓8.0以下】:https://www.jianshu.com/p/2f144bf7fe51
Android Studio --Energy Profiler监控【安卓8.0及以上】:https://www.jianshu.com/p/2ec8449051b9

参考文章:https://www.cnblogs.com/xulinmei/p/10280947.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值