游戏模式干预项

游戏模式干预项 原始设备制造商 (OEM) 制定的游戏专用优化方案 以提升那些不再更新的游戏 开发者。例如:

  • 使用 WindowManager backbuffer 大小调整功能。
  • 使用 ANGLE,而非原生 GLES 驱动程序。

您可以寻求游戏支持并管理 Game Mode API,以替换它 OEM 提供的游戏模式干预项。

Game Mode API 和游戏模式干预项适用于:

每个游戏都可以:

  • 实现 Game Mode API 行为。
  • 向 OEM 建议游戏模式干预设置,或
  • 明确选择停用游戏模式干预项。

背景

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

调整 WindowManager backbuffer 的大小

调整 WindowManager backbuffer 大小这项干预可以降低设备的 GPU 负载。游戏保持目标帧速率时,这项干预还能够降低耗电量。

启用调整大小功能可减少高达 30% 的 GPU 使用量和 10% 的总体 GPU 使用量。 系统耗电量根据所用设备、环境条件以及其他因素(例如同时处理),具体结果可能会有所不同。

如果游戏受 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 或其他设备,可能存在预先存在的游戏干预项 config。您可以使用以下命令查询配置:

adb shell device_config get game_overlay <PACKAGE_NAME>

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

评估干预措施

如需单独评估 WindowManager backbuffer 大小调整干预的影响,请使用 以便设置不同的 WindowManager 缓冲区大小调整值, 游戏模式

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

在上面的示例中,mode=2 为“Performance”,mode=3 为 是“省电模式”。downscaleFactor值以百分比的形式指定 适用于调整大小设置(例如,0.7 表示 70%,0.8 表示 80%)。90% (0.9) 的调整幅度几乎可以忽略不计,而 50% (0.5) 的幅度则很大。

警告:在 Android 12 中,可能无法正确调整子进程的大小。在 尤其要注意,请确保消息框和弹出式窗口能够正确呈现周三 建议您将大小调整设置限制为不小于 70%。

设置新的大小调整值后,切换游戏模式,看看 您的游戏会受到 WindowManager backbuffer 大小调整干预的影响:

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),除非您明确选择停止在游戏中使用它们。

资源

如需详细了解如何衡量和优化游戏性能,请参阅以下资源: