Game Mode API

遊戲模式 API 可讓你在使用者選取對應的遊戲模式時,為遊戲進行最佳化調整,以維持最佳效能或延長電池續航力。

或者,你也可以提交遊戲模式干預要求,讓開發人員不再更新遊戲的效能。

以下裝置提供 Game Mode API 和介入措施:

  • 選取「Android 12」裝置
  • 搭載 Android 13 以上版本的裝置

每款遊戲可以實作 Game Mode API 行為,提出遊戲模式建議 原始設備製造商 (OEM) 的介入措施設定 停用遊戲模式介入措施

設定

如要在遊戲中使用 Game Mode API,請按照下列步驟操作:

  1. 下載並安裝 Android 13 SDK

  2. AndroidManifest.xml 檔案中, 設定 物件中的 appCategory 屬性 <application> 元素:

android:appCategory="game"
  1. 將目前的遊戲模式新增至主要活動,即可查詢目前的遊戲模式:

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 支援,也不支援遊戲模式干預功能。
標準 使用者尚未選取遊戲模式或使用者選取標準模式。
效能 提供最低延遲的畫面更新率,提升擬真度但會降低電池續航力。
電池 提供最久的電池續航力,但擬真度或畫面更新率會降低。
  1. 新增程式碼,查詢 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) 提供的類似應用程式。此外,您也可以 請使用遊戲模式殼層指令

如果您使用遊戲資訊主頁,不會顯示最佳化圖示 每次遊戲推出時,您可能需要將應用程式上傳至 Google Play 管理中心 並透過 Play 商店安裝如要瞭解應用程式測試的相關資訊,請前往 Play 商店,請參閱 與內部人員分享應用程式套件和 APK

遊戲資訊主頁活動! 圖 1. 遊戲資訊主頁顯示在 Pixel 手機上,疊加顯示執行中的遊戲 裝置。

在圖 1 中,執行中遊戲的遊戲模式可從「最佳化」變更 如小工具所示,遊戲目前使用的是 PERFORMANCE敬上 模式。

在開發期間,如果您使用的裝置沒有遊戲資訊主頁和 製造商並未允許您為每個應用程式設定遊戲模式,您可以 透過 ADB 變更遊戲模式狀態:

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

範例應用程式

Game Mode API 範例 重點說明如何最佳化每秒影格數和轉譯解析度上限,節省約 25% 的應用程式耗電量。

繼續

請參閱「遊戲模式乾預」一文 無法提供遊戲更新時,提升遊戲效能。