借助 Game Mode API,您可以根据用户选择的相应游戏模式对游戏进行优化,以获得最佳性能或最长的电池续航时间。
或者,您也可以提交针对游戏模式干预项的请求,改进开发者不再更新的游戏的性能。
Game Mode API 和游戏模式干预项适用于:
- 部分 Android 12 设备
- 搭载 Android 13 或更高版本的设备
每个游戏都可以实现 Game Mode API 行为,并提议游戏模式 对 OEM 进行干预设置,或者 选择停用游戏模式干预项。
设置
如需在游戏中使用 Game Mode API,请执行以下操作:
下载并安装 Android 13 SDK。
在
AndroidManifest.xml
文件中, 通过设置appCategory
属性(在<application>
元素:
android:appCategory="game"
- 将以下代码添加到您的主 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
}
支持的游戏模式 | 说明 |
---|---|
不支持 | 游戏未声明支持 Game Mode API,并且不支持游戏模式干预项。 |
标准模式 | 用户未选择游戏模式或用户已选择标准模式。 |
高性能模式 | 提供延迟时间最短的帧速率,但电池续航时间和保真度会降低。 |
省电模式 | 提供尽可能长的电池续航时间,但保真度或帧速率会降低。 |
添加代码以查询
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 提供的类似应用。或者,您也可以 在开发期间使用 Game Mode shell 命令。
如果您使用的是游戏信息中心,但系统未显示优化图标 您可能需要将应用上传到 Google Play 管理中心 并通过 Play 商店安装有关应用测试的信息,请参阅 Play 商店,请参阅 在内部分享 app bundle 和 APK。
图 1. 游戏信息中心叠加显示在 Pixel 上正在运行的游戏上 设备。
在图 1 中,运行中游戏的游戏模式可以从“Optimization”
微件。如 widget 上所示,游戏目前正在运行
PERFORMANCE
模式。
在开发过程中,如果您使用的设备没有游戏信息中心和 制造商并未提供任何为每个应用设置游戏模式的方法,但是 通过 adb 更改游戏模式状态:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
示例应用
Game Mode API 示例 重点介绍了如何优化 FPS 和渲染分辨率上限,从而在应用中节省大约 25% 的电量。
下一步
阅读游戏模式干预项 在无法提供游戏更新时提高游戏性能。