你是否了解APP耗电问题?深入探索 Android 电量优化,flutter插件推荐

本文主要分析了Android应用的电量消耗,包括后台耗电、CPU时间片、网络、定位、界面和WakeLock等方面的优化策略。介绍了Android电量优化的演进,如KitKat的批处理传感器和Alarm对齐,以及Lollipop后的Doze模式等。同时,文章提到了电量检测方案,如使用dumpsys batterystats和Battery Historian进行电量统计和分析。最后,讨论了耗电监控的重要性,并推荐了使用Java Hook和AOP进行电量辅助监控的方法。
摘要由CSDN通过智能技术生成
  • 3)、最后,把电量输送给电池,而整个降压的过程中会产生热能。

分类

  • 1)、高压低电流快充方案:在充电过程中提升充电电压(7-20V)来提升充电功率。

  • 2)、低压大电流快充方案:在电压一定情况下,增加电流,通常使用并联电路的方式进行分流。

  • 3)、铝-石墨烯超级电池

  • 超高耐用性和安全性,快充充电1.1秒就能充满电。

  • 实验阶段。

3、寿命


通常使用充电循环次数衡量。

4、安全性


严格控制电池容量,例如 VOOC 就使用了各种安全检测技术。

5、电量和硬件


  • 手机耗电是通过使用相应的硬件模块来消耗电能。

  • CPU、屏幕、WIFI、数据网络、GPS、音视频通话在日常耗电量中占比最大。

6、Android 耗电演进


KITKAT

批处理传感器

分批有效地收集和传递传感器事件。

Alarm 对齐

批处理在合理的相似时间内的所有应用的闹铃,以便系统仅唤醒一次。

Lollipop

  • 开启 Volta 项目

  • Job Scheduler

  • dumpsys batterystats

  • Battery Historian

  • 修复 native fork 进程保活的 bug

Marshmallow

  • 省电功能

  • Doze 低功耗模式

  • App Standby 应用待机摸手机

Nougat

  • 优化省电功能

  • Doze 加强版

  • implicit broadcasts 显示

  • 混合编译

Oreo

  • 更多优化省电功能

  • 后台执行限制

  • 后台位置限制

P(电压管理严格限制)

应用待机分组(App Standby Bueckets)

  • 从应用安装开始。

  • 分组决定后台被限制的程度。

  • 不常用的应用将被限制地更加严格。

应用后台限制(Background Restrictions)

  • 用户开启。

  • 停止后台运行。

  • 提示用户后台耗电严重的应用,用户可选择停止它们的后台运行。

省电模式(Battery Saver)

  • 用户开启。

  • 所有应用进入待机模式。

  • 更加严格的后台限制,而且无视应用的 Target API。

三、电量检测方案

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

对于电量的统计有一个公式,如下所示:

模块电量(mAh) = 模块电流(mA)* 模块耗时(h)

Android 系统要求 ROM 厂商必须在 /frameworks/base/core/res/res/xml/power_profile.xml 提供组件的电源配置文件。而 Android 系统的电量计算 PowerProfile 正是通过读取 power_profile.xml 的数据。

1、设置—耗电排行


  • 1)、直观,但没有详细数据,对解决问题帮助不大。

  • 2)、需要找特定场景专项测试,比如在某一个界面操作一段时间,然后来判断这个页面是否耗电。

2、使用广播监听电量变化—ACTION_BATTERY_CHANGED


获取电池电量、充电状态、电池状态等信息。

实战案例

IntentFilter filter = new IntentFilter();

filter.addAction(Intent.ACTION_BATTERY_CHANGED);

Intent intent = registerReceiver(null, filter);

LogUtils.i("battery " + intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1));

缺点

  • 1)、价值不大:针对手机整体的耗电量,而非单个 App。

  • 2)、实时性差、精度较低,被动通知。

3、dumpsys batterystats


batterystats 是 Android 5.0 提供的工具,它可以获取各个 App 的 WakeLock、CPU 时间占用等信息,同时增加了一个 Estimated power use(mAh)功能,预估耗电量。

作用

将电量测量转化为功能模块的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值