FPS 节流

Android FPS 节流是一种游戏模式干预,它有助于游戏以更稳定的帧速率运行,以减少电池消耗。此干预在 Android 13 或更高版本中提供。

随着越来越多的 Android 设备配备具有更高刷新率(例如 90 Hz 和 120 Hz)的显示屏,大多数游戏尝试以高 FPS 的速度运行。但是,他们通常不会考虑用户优先考虑性能或电池寿命的偏好。这会导致一些问题

  • 无法始终如一地以更高 FPS 运行的游戏最终会产生不稳定或不均匀的 FPS。

  • 用户通常不希望拥有更高的 FPS,因为电池电量会很快耗尽。

FPS 节流只能 *限制* 帧速率。例如,当游戏最初以 60 FPS 运行时,FPS 节流干预无法使其以 120 FPS 运行,但以 40 FPS 和 30 FPS 节流是有效的。

FPS 节流可使 GPU 功耗降低高达 50%,系统功耗降低 20%。它还有助于以更平滑、更流畅的帧速率运行未进行帧速率调整的游戏。

未进行帧速率调整的游戏通常具有更高的峰值帧速率,但 帧时间方差更大。这会显著影响玩家对性能的感知。FPS 节流干预仅有助于未进行帧速率调整的游戏从平台端实现帧速率调整。

FPS 节流干预的结果可能会因所用设备、环境条件和其他因素而异。

与应用帧速率调整实现的交互

当应用帧速率调整实现和 FPS 节流都强制执行时,最终的帧速率通常是较低的目标帧速率。

入门

本节介绍如何使用 Android Debug Bridge (adb) 设置和使用 FPS 节流。

启用游戏模式干预

要为游戏启用游戏模式干预,请使用以下命令

adb shell device_config put game_overlay <PACKAGE_NAME> <CONFIG>

设置 FPS 干预

​​要设置目标 FPS 节流干预,请使用 device_config 命令。以下是一个为性能和电池模式设置 FPS 节流的示例

adb shell device_config put game_overlay <PACKAGE_NAME> mode=2,fps=90:mode=3,fps=30

参数详细信息

  • mode [2|3]: 23 分别代表性能和电池模式
  • fps [0|30|40|45|60|90|120]: 根据您使用的设备(120 Hz、90 Hz 或 60 Hz 设备),建议选择设备最大刷新率的除数作为帧速率。 0 是默认值。

以下是每种显示类型支持的帧速率

  • 60 Hz 显示屏:60 FPS、30 FPS
  • 90 Hz 显示屏:90 FPS、45 FPS、30 FPS
  • 120 Hz 显示屏:120 FPS、60 FPS、40 FPS、30 FPS

获取结果

要查看和分析结果,您可以检查 FPS 计数器或捕获 Perfetto 跟踪。以下是如何查看以 120 FPS 运行的游戏的 FPS 计数器的示例

查看 FPS 计数器

要验证您的 FPS 节流设置,您可以运行游戏并在游戏仪表板中打开 FPS 计数器。为此,请执行以下步骤

  1. 运行游戏时,向下滑动,然后按游戏仪表板图标。

  2. 按 **FPS** 按钮打开 FPS 计数器。

  3. 按 **X** 按钮关闭游戏仪表板。在箭头上向右滑动以显示 FPS 计数器。

捕获 Perfetto 跟踪

要深入了解游戏的性能,建议您执行 Perfetto 跟踪。有关执行跟踪的更多信息,请参阅 快速入门:在 Android 上录制跟踪

执行跟踪时,请使用 android.game_interventions 数据源。跟踪完成后,将显示 **跟踪查看器** 页面。在导航栏中,选择 **信息和统计信息**,然后查看 **游戏模式和干预** 列表。例如

Example of intervention list table

FPS 节流干预以 "fps=X" 的格式显示,其中 X 是特定游戏模式下的节流 FPS。 0 是默认值。