游戏模式干预措施是由原始设备制造商 (OEM) 设置的特定于游戏的优化,用于提高不再由开发者更新的游戏的性能。例如
- 使用 WindowManager 后缓冲区调整大小。
- 使用 ANGLE 而不是原生 GLES 驱动程序。
您可以让您的游戏支持和管理游戏模式 API,使其覆盖 OEM 提供的游戏模式干预措施。
游戏模式 API 和干预措施可在以下设备上使用:
- 选择Android 12 设备
- 运行Android 13 或更高版本的设备
每个游戏都可以:
- 实现游戏模式 API 行为;
- 向 OEM 建议游戏模式干预措施设置;或
- 明确选择退出游戏模式干预措施。
背景
本节介绍游戏模式干预措施的功能以及如何针对每种模式优化您的游戏。
WindowManager 后缓冲区调整大小
WindowManager 后缓冲区调整大小干预措施可以降低设备的 GPU 负载。当游戏以目标帧速率运行时,它还可以降低电池消耗。
启用调整大小可以降低高达 30% 的 GPU 使用率和 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 或其他设备,您的设备配置中可能存在预先存在的 game intervention 配置。您可以使用以下命令查询配置:
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>
每次选择游戏模式后,请确保重新启动游戏。缩小干预措施需要重新启动应用。
选择退出干预措施
您可以通过选择退出来控制干预措施是否应用于您的游戏。每个干预措施都有其自己的选择退出设置。
- 用于控制游戏模式的加入和退出的同一 config 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"
/>
- 重新构建并重新提交您的游戏以选择退出。
默认情况下,除非您明确选择退出使用原始设备制造商 (OEM) 设置的干预措施,否则将使用这些干预措施。
资源
有关测量和优化游戏性能的更多信息:
系统分析器 - 分析 CPU 使用率和图形调用。
Android GPU 检查器 - 分析 Android 上的图形。
Android 帧速率调整库 - 帮助 OpenGL 和 Vulkan 游戏实现流畅的渲染和正确的帧速率调整。
Android 性能调谐器 - 大规模测量和优化 Android 设备上的帧速率和图形。
功耗分析器 - 查找您的应用在哪里比必要消耗更多能量。