游戏模式 API 允许您在用户选择相应的游戏模式时,针对最佳性能或最长的电池续航时间优化您的游戏。
或者,您可以提交 游戏模式干预 请求,以提高不再由开发人员更新的游戏的性能。
游戏模式 API 和干预在以下版本上可用
- 选择 Android 12 设备
- 运行 Android 13 或更高版本的设备
每个游戏都可以实现游戏模式 API 行为,向 OEM 建议游戏模式干预设置,或 选择退出游戏模式干预。
设置
要在您的游戏中使用游戏模式 API,请执行以下操作
下载并安装 Android 13 SDK。
在
AndroidManifest.xml
文件中,通过在<application>
元素中设置appCategory
属性,将您的应用程序声明为游戏
android:appCategory="game"
- 通过将以下内容添加到您的主活动中,查询当前的游戏模式
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
}
支持的游戏模式 | 描述 |
---|---|
UNSUPPORTED | 游戏没有声明对游戏模式 API 的支持,也不支持游戏模式干预。 |
STANDARD | 用户没有选择游戏模式,或者用户选择了标准模式。 |
PERFORMANCE | 以牺牲电池续航时间和保真度为代价,提供最低延迟帧率。 |
BATTERY | 以牺牲保真度或帧率为代价,提供尽可能长的电池续航时间。 |
在
onResume
函数中添加代码以查询游戏模式状态
最佳实践
如果您的游戏已经支持多种保真度和帧率目标,您应该确定性能和电池省电模式的适当设置
要始终如一地实现最大设备帧率:考虑略微降低保真度以实现更高的帧率。
为了延长电池续航时间:考虑选择较低的显示屏刷新率(例如 30Hz 或 60Hz)并 使用帧速率调节 来定位降低的速率。
对于高保真游戏,例如第一人称射击游戏、多人在线战斗竞技场 (MOBA) 和角色扮演游戏 (RPG),您应该专注于实现高一致的帧率,以最大限度地提高用户的沉浸感。
对于高保真度游戏和休闲游戏,您都应该支持电池省电模式,通过降低峰值帧率来延长游戏时间。
声明对游戏模式的支持
要声明对游戏模式的支持并覆盖 OEM 的任何游戏模式干预,首先将游戏模式配置添加到 <application>
元素中您的 AndroidManifest.xml
文件中
<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 Console,并通过 Play 商店安装它。有关在 Play 商店中测试应用程序的信息,请参阅 在内部共享应用捆绑包和 APK。
图 1. 游戏仪表盘显示在 Pixel 设备上运行的游戏的叠加层中。
在图 1 中,正在运行的游戏的游戏模式可以从优化小部件中更改。如小部件所示,游戏目前正在 PERFORMANCE
模式下运行。
在开发过程中,如果您使用的是没有游戏仪表盘的设备,并且制造商没有提供任何方法来为每个应用程序设置游戏模式,您可以通过 adb 更改游戏模式状态
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
示例应用程序
的 游戏模式 API 示例 说明了如何优化 FPS 和渲染分辨率上限,以便在您的应用程序中节省大约 25% 的电量。
下一步
阅读 游戏模式干预,以提高在无法提供游戏更新时游戏的性能。