游戏模式干预措施

游戏模式干预措施是原始设备制造商 (OEM) 设定的游戏专用优化,旨在改善开发者不再更新的游戏的性能。例如:

  • 使用 WindowManager 后台缓冲区大小调整。
  • 使用 ANGLE 而不是原生 GLES 驱动程序。

您可以让您的游戏支持并管理 游戏模式 API,以使其覆盖 OEM 提供的游戏模式干预措施。

游戏模式 API 和干预措施适用于:

每个游戏都可以:

  • 实现游戏模式 API 行为,
  • 向 OEM 建议游戏模式干预设置,或者
  • 明确选择退出游戏模式干预措施。

背景

本部分介绍游戏模式干预措施的作用以及如何针对每种模式优化您的游戏。

WindowManager 后台缓冲区大小调整

WindowManager 后台缓冲区大小调整干预措施可以减少设备的 GPU 负载。它还可以在游戏以目标帧率运行时降低电池消耗。

启用大小调整可以使 GPU 使用量减少高达 30%,整体系统功耗减少 10%。结果可能因所用设备、环境条件以及同时处理等其他因素而异。

未同步的游戏(受 GPU 限制)在 GPU 负载降低时可能会体验到更高的帧率。

我们强烈建议所有游戏都进行良好的帧同步,因为不均匀的帧率会显著影响用户对性能的感知。

FPS 限制

Android FPS 限制是一种游戏模式干预措施,可帮助游戏以更稳定的帧率运行,从而降低电池消耗。该干预措施在 Android 13 或更高版本中可用。如需了解更多信息,请参阅 FPS 限制概览

评估游戏模式干预措施

本部分使用 adb 命令。

设置模式

在测试游戏模式干预措施之前,您必须在应用的游戏模式配置文件中选择退出游戏模式。否则,平台将绕过它们,只遵守游戏内的优化。

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(可选)备份现有设备配置

对于 Pixel 或其他设备,您的设备配置中可能存在预先存在的游戏干预配置。您可以使用以下命令查询配置:

adb shell device_config get game_overlay <PACKAGE_NAME>

如果查询返回 null,请忽略预先存在的配置。否则,将其保存并在评估后重置为该配置。

评估干预措施

要单独评估 WindowManager 后台缓冲区大小调整干预措施,请使用以下命令在不同游戏模式下设置不同的 WindowManager 缓冲区大小调整值。

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

在上述示例中,mode=2 是“性能”,mode=3 是“省电”。downscaleFactor 值指定为适用于大小调整设置的百分比(例如,0.7 是 70%,0.8 是 80%)。90% (0.9) 的大小调整几乎可以忽略不计,而 50% (0.5) 则非常显著。

警告:在 Android 12 中,子进程可能无法正确调整大小。特别是,请确保 Toast 消息和弹出窗口正确渲染。我们建议您将大小调整设置限制在至少 70%。

设置新的大小调整值后,在游戏模式之间切换,以查看 WindowManager 后台缓冲区大小调整干预措施对您的游戏有何影响。

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

请务必在每次选择游戏模式后重新启动游戏。降级干预措施需要重新启动应用。

选择退出干预措施

您可以通过选择退出控制是否将干预措施应用于您的游戏。每个干预措施都有自己的选择退出设置。

  1. 用于控制游戏模式选择加入和选择退出的相同 XML 配置文件也用于干预设置。
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. 重新构建并重新提交您的游戏以选择退出。

默认情况下,除非您明确选择退出使用 OEM 设定的干预措施,否则 OEM 设定的干预措施将被使用。

资源

有关衡量和优化游戏性能的更多信息: