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 调试桥 (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 数据源。跟踪完毕后,屏幕上将显示跟踪查看器页面。在导航栏中,选择信息和统计信息,然后查看游戏模式和干预列表。例如:

干预列表示例

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