你是否了解APP耗电问题?深入探索 Android 电量优化,2021必看-Android高级面试题总结

本文深入分析了Android应用程序的电量优化,包括后台耗电、系统规则、CPU时间片、网络、定位、界面、WakeLock、计算优化等方面。文章介绍了如何使用Battery Historian进行电量分析,并提供了JobScheduler的实战代码,以实现后台任务的省电调度。同时,文章提出了电量优化的难点和策略,如避免后台长时间工作、遵循系统电量规则、监控和优化CPU使用、网络请求管理、合理使用定位服务、控制界面资源以及正确管理WakeLock。最后,文章讨论了耗电监控的方法,如Java Hook和电量辅助监控实战,以帮助开发者提升App的电量效率。
摘要由CSDN通过智能技术生成
  • 1)、查看自设备上次充电以来各种汇总统计信息,而且可以选择对应的 App 查看详细信息。

  • 2)、可视化展示指标:

  • 耗电比例。

  • 执行时间、次数。

  • 3)、仅适合线下使用。

安装

  • 1)、安装 Docker

  • 2)、docker – run -p:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999 (需要翻墙)

导出电量信息

  • 1)、使用 batterystats 命令重置手机电量:adb shell dumpsys batterystats --reset

  • 2)、使用 batterystats 命令获取电池数据权限并开启记录全面的电量信息:adb shell dumpsys batterystats --enable full-wake-history

*
3)、测试完成后,使用 bugreport 导出电量信息:

  • 7.0和7.0以后:adb bugreport bugreport.zip

  • 6.0和6.0之前:adb bugreport > bugreport.txt

  • 通过 historian 图形化展示结果:python historian.py -a bugreport.txt > battery.html

上传分析

  • 1)、打开 http://localhost:

如果打不开,可以使用备用网站 https://bathist.ef.lc/

  • 2)、上传 bugreport 文件,点 Submit 提交即可。

Battery Historian 数据分析

Hitorian V2 — 电量统计图表

Add Metrics

在 Add Metrics 中我们可以增加更多的测量项。

CPU running

如果一直处于 running,则表明电量消耗比较高。

JobScheduler

选中 Job Scheduler 的某一个工作时间片,我们可以查看具体的 发生的时间、耗时以及次数,最重要的是它统计出来了是哪一个进程在使用这个 JobScheduler。

App Selection

  • 1)、选择要分析电量的指定 App。

  • 2)、点击右边区域的 System Stats 一栏可以在下方查看各个系统组件的电量百分比消耗详情,例如 Userspace Wakelocks。

主入口处的 Switch to Bugreport Comparison

选择多个文件进行上传对比。

5、电量专项测试


1)、耗电场景测试

  • 复杂计算。

  • 音视频播放。

2)、传感器相关

  • 使用时长

  • 耗电量

  • 发热

3)、后台静默测试

四、耗电优化

===============================================================

1、耗电优化的难点


  • 1)、「缺乏现场,无法复现」

  • 2)、「信息不全,难以定位」

  • 3)、「无法评估结果」

在 App 开发中,经常会由于某个需求场景或 代码 bug 而导致大量耗电。

2、后台调度任务省电


思考步骤

  • 需要后台运行

  • 长时间下载:DownloadManager

  • 数据同步:SyncAdapter

  • 本地任务:Jo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值