游戏模式干预措施

游戏模式干预措施是由原始设备制造商 (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 中可能无法正确调整大小。特别是,请确保吐司和弹出窗口正确渲染。我们建议您将调整大小设置限制在至少 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) 设置的干预措施将被使用,除非您明确选择让您的游戏不使用它们。

资源

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