Android省电策略

Android省电策略

本文阐述 Android 上偏上层的一些功耗节省的策略,本文阐述的 API 到 Android P。

前言

自从大屏智能手机的诞生,续航问题就一直是让用户和手机厂商头疼,以至于“一天一充”普遍存在。 Android 在功耗问题上也下了不少功夫,在每个 Android 版本,从软件层面做很多升级和优化。

电力是驱使硬件工作的能源,因此手机的所有功耗都是被硬件所消耗。如屏幕需要电能显示,喇叭需要电能发出声音。软件如何省电呢手机而言,软件是功能的单元,通过软件驱动硬件工作,便产生了能源消耗。因此软件运行的越频繁,软件驱动的硬件数量越多,时间越长,频率越高,驱动力越大,电能消耗就越快

因此,要省电,就是让硬件不要浪费电,就是让软件不要浪费电,所以,软件越“懒”,手机就越省电

本文将从如下三方面论述省电策略:

  1. 让 APP 懒起来
  2. Android 系统省电策略
  3. 利用一些工具辅助开发

以上,我们将重点阐述第二点,Android 系统有那些功能,以尽可能的达到省电最大化。

让 APP 懒起来

应用开发者,应该参考如下准则去开发功能。

  1. 减少不必要的操作。如利用缓存代替重复下载;
  2. 延迟到合适时机。如等待手机连接上充电器才备份数据到云端。
  3. 合拼。如多个任务,能合拼一起处理代替多个任务触发手机各自触发。

Android 系统省电策略

Android 系统提供如下三方面的功能优化功耗消耗:

  1. 睡眠模式和应用待机
  2. 应用待机分组
  3. 后台限制

下文,将从这三方面,详细阐述它们的工作机理。

睡眠模式和应用待机

Android 睡眠(Doze)模式和应用待机是 Android 6.0 加的功能。当手机没有连接充电器且灭屏一段时间以后,手机将会自动进入 Doze 模式,在该模式下,应用的网络访问,CPU 计算,jobs, alarm, sync 将会受到影响。手机在睡眠模式下一段时间后,会自动退出睡眠模式,执行应用等待的 jobs、 alarm、 sync 和允许应用访问网络,这段时间 Android 把它叫 maintenance window。maintenance window 结束后,手机会继续进入 Doze 模式,不停重复着。而且下一次的 maintenance window 比上一次 maintenance window 来的更晚,也就是说后一次 Doze 模式时间比上一次 Doze 模式时间要长。

Android省电策略

网络过滤

Android省电策略

定位过滤

Android省电策略

Dump Doze stats

可以利用如下命令 dump doze 的状态

应用待机分组

在 Android P 新增了应用待机分组功能,依据应用的使用情况,对应用进行不同的分组,从而实施不同的限制策略。

默认情况下,Android 会自动给每一个应用进行分组,应用可以通过 UsageStatsManager.getAppStandbyBucket 获取应用处于哪一分组。

下面是应用待机分组的组别:

  • Active: 应用正在被使用或者经常被使用
  • Working set: 应用定期频繁使用
  • Frequent: 经常使用,但不是每一天
  • Rare: 应用很少使用
  • Never:应用从不被使用

分组限制策略

请看文章结尾的 Power management restrictions 图片。

测试

应用待机分组原理

Android省电策略

来源:FamilyYuan

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月7日
下一篇 2019年3月7日

相关推荐