游戏模式 API

游戏模式 API 可让您在用户选择相应的游戏模式时,优化游戏以实现最佳性能或最长电池续航时间。

此外,您还可以提交游戏模式干预措施请求,以改进开发者不再更新的游戏的性能。

游戏模式 API 和干预措施在以下设备上可用:

每款游戏都可以实现游戏模式 API 行为,向原始设备制造商 (OEM) 建议游戏模式干预措施设置,或者选择退出游戏模式干预措施

设置

要在您的游戏中使用游戏模式 API,请执行以下操作:

  1. 下载并安装 Android 13 SDK

  2. AndroidManifest.xml 文件中,通过设置 appCategory 属性在 <application> 元素中声明您的应用为游戏:

android:appCategory="game"
  1. 将此代码添加到主 activity 中以查询当前游戏模式:

Java

// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
  // Get GameManager from SystemService
  GameManager gameManager = Context.getSystemService(GameManager.class);

  // Returns the selected GameMode
  int gameMode = gameManager.getGameMode();
}

Kotlin

// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  // Get GameManager from SystemService
  val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?

  // Returns the selected GameMode
  val gameMode = gameManager?.gameMode
}
支持的游戏模式 说明
不支持 游戏未声明支持游戏模式 API,也未支持游戏模式干预措施。
标准 用户未选择游戏模式或用户选择了标准模式。
性能 提供最低延迟的帧速率,但会缩短电池续航时间和降低保真度。
电池 提供尽可能长的电池续航时间,但会降低保真度或帧速率。
  1. onResume 函数中添加代码以查询游戏模式状态:

    Example with user setting Battery mode

最佳实践

如果您的游戏已支持多种保真度和帧速率目标,则应确定适用于性能和省电模式的相应设置:

  • 为了持续实现设备最大帧速率:考虑略微降低保真度以实现更高的帧速率。

  • 为了延长电池续航时间:考虑选择较低的显示刷新率(例如 30Hz 或 60Hz),并使用帧同步来达到降低的速率。

对于第一人称射击游戏、多人在线战术竞技游戏 (MOBA) 和角色扮演游戏 (RPG) 等高保真游戏,您应该专注于实现高且稳定的帧速率,以最大限度地提高用户沉浸感。

对于高保真游戏和休闲游戏,您都应该支持省电模式,通过降低峰值帧速率来延长游戏时间。

声明支持游戏模式

要声明支持游戏模式并覆盖原始设备制造商的任何游戏模式干预措施,请首先将游戏模式配置添加到您的 AndroidManifest.xml 文件中的 <application> 元素中:

<application>
    <meta-data android:name="android.game_mode_config"
               android:resource="@xml/game_mode_config" />
  ...
</application>

然后在项目的 res/xml/ 目录下创建 game_mode_config.xml 文件,内容如下:

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

切换游戏模式

要在游戏模式之间切换,您可以使用游戏信息中心(Pixel 设备上可用)或 OEM 提供的类似应用。或者,您可以在开发过程中使用游戏模式 shell 命令。

如果您正在使用游戏信息中心,并且游戏启动时没有显示优化图标,您可能需要将应用上传到 Google Play 管理中心并通过 Play 商店安装。有关 Play 商店应用测试的信息,请参阅内部共享应用 Bundle 和 APK

游戏信息中心活动! 图 1. 在 Pixel 设备上运行的游戏上叠显示的游戏信息中心。

在图 1 中,可以从优化小部件更改正在运行的游戏的游戏模式。如小部件所示,游戏当前正在PERFORMANCE(性能)模式下运行。

在开发过程中,如果您使用的设备没有游戏信息中心,并且制造商没有提供任何方法来为每个应用设置游戏模式,您可以通过 adb 更改游戏模式状态:

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

示例应用

游戏模式 API 示例展示了如何优化 FPS 和渲染分辨率上限,以在应用中节省大约 25% 的功耗。

下一步

阅读游戏模式干预措施,了解在无法提供游戏更新时如何改进游戏性能。