欢迎使用 Android 13 开发者预览版!敬请向我们提供反馈,帮助我们将 Android 13 打造为最佳版本。

电池资源利用率

Android 13 引入了以下省电措施:

  • 更新了有关系统何时将您的应用放入“受限”应用待机模式存储分区的规则
  • 对于您的应用在以下情况下可以执行的操作制定了新限制:用户因您应用的后台电池用量过高而将其置于“受限”状态。
  • 新增了系统通知,用于就后台电池用量过高长时间运行的前台服务向用户发出警告。

关于应用何时会进入“受限”应用待机模式存储分区的规则更新

除非您的应用符合豁免条件,否则当您的应用出现以下任何行为时,系统就会将其放入受限存储分区:

  • 用户有 8 天没有与您的应用互动。如果用户与另一个绑定到您应用的服务的应用互动,系统也会将您的应用视为“使用过”。

  • 您的应用在 24 小时内调用了过多的广播绑定

  • 您的应用在 24 小时内消耗了大量的设备电池电量。对于低 RAM 设备,此阈值可能会有所不同。

    在衡量应用对设备电池续航时间的影响时,系统会考虑应用在几个不同方面执行的操作,包括:

    • 作业(包括加急作业)
    • 广播接收器
    • 后台服务
    • 系统是否已缓存应用的进程

用户互动可让您的应用退出“受限”存储分区

当用户与您的应用互动时(包括通过以下几种方式互动),系统会将应用从受限存储分区中移出,并放入另一个应用待机模式存储分区

  • 用户点按您的应用发送的通知。

  • 用户在属于您应用的 widget 中执行操作。

  • 用户通过按媒体按钮影响您应用的前台服务。

  • 用户在与 Android Automotive OS 互动时连接到您的应用(您的应用在此过程中使用了前台服务或 CONNECTION_TYPE_PROJECTION)。

  • 您的应用在画中画 (PiP) 模式下可见。

  • 您的应用是屏幕上当前运行的应用之一。(主要适用于大屏设备。)

关于受限后台电池用量的新限制

使用现有 Android 版本的用户能够调整应用在后台运行时可以执行的工作量。系统设置中的电池用量页面上会显示以下选项:

  • 无限制:允许后台工作,这可能会消耗更多电量。
  • 优化(默认):根据用户与应用互动的方式,优化应用执行后台工作的能力。
  • 受限:更注重延长设备的电池续航时间,而不是实现应用的全面功能。对于应用可以在后台执行的操作施加了更多限制。

自 Android 9(API 级别 28)起,处于“受限”状态的应用具有以下限制:

  • 无法启动前台服务
  • 现有的前台服务会从前台移除
  • 不会触发闹钟
  • 不会执行作业

当您的应用以 Android 13 为目标平台时,除非应用因其他原因启动,否则系统不会传送以下任何广播:

  • BOOT_COMPLETED
  • LOCKED_BOOT_COMPLETED

与后台电池用量过高相关的系统通知

Android 13 引入了一个新的系统通知,当您的应用在 24 小时内消耗了大量设备电池电量时,就会显示该通知。这个新通知会针对搭载 Android 13 的设备上的所有应用显示,无论应用采用何种目标 SDK 版本都不例外。

在衡量应用对设备电池续航时间的影响时,系统会考虑应用在几个不同方面执行的操作,包括:

如果针对您的应用显示了此通知,则至少在 24 小时后,才会再次在同一设备上显示该通知。

与长时间运行的前台服务相关的系统通知

如果系统检测到您的应用长时间运行某项前台服务(在 24 小时的时间段内至少运行 20 小时),便会发送通知邀请用户与前台服务 (FGS) 任务管理器互动。该通知包含以下内容:

APP is running in the background for a long time. Tap to review.

如果前台服务的类型为 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACKFOREGROUND_SERVICE_TYPE_LOCATION,系统将不会显示此通知。

此外,如果您的应用在 24 小时内运行超过 4 小时的前台服务属于 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACKFOREGROUND_SERVICE_TYPE_LOCATION 类型,则系统不会针对您的应用启动的任何前台服务发送长时间运行通知。

豁免

存在以下情况的应用不会受到 Android 13 中引入的任何省电措施的影响:

在以下情况下,您的应用可以免于进入“受限”应用待机模式存储分区,并可以绕过“8 天无活动”触发器:

在以下情况下,您的应用可以不受 Android 13 中引入的大多数省电措施的影响,但系统仍然会发送针对长时间运行的前台服务的通知

测试

以下几个部分将介绍几种测试 Android 13 中引入的省电措施会对应用产生何种影响的方式。

禁止在后台使用

如需禁止您的应用在后台运行,请在终端窗口中运行以下命令:

adb shell cmd appops set PACKAGE_NAME RUN_ANY_IN_BACKGROUND deny

将应用放入受限存储分区

如需强制系统将您的应用放入受限存储分区,请在终端窗口中运行以下命令:

adb shell am set-standby-bucket PACKAGE_NAME restricted