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 檔案中,透過設定 <application> 元素中的 appCategory 屬性,將應用程式宣告為遊戲:

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) 的任何遊戲模式乾預功能,請先將遊戲模式設定新增至 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) 提供的類似應用程式。您也可以在開發期間使用 Game Mode 殼層指令。

如果您使用的是遊戲資訊主頁,且遊戲啟動時未顯示「最佳化」圖示,您可能需要將應用程式上傳到 Google Play 管理中心,並透過 Play 商店安裝。如要瞭解 Play 商店中的應用程式測試,請參閱「與內部共用應用程式套件和 APK」一文。

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

在圖 1 中,執行中遊戲的遊戲模式可以透過最佳化小工具變更。如小工具所示,遊戲目前正在 PERFORMANCE 模式執行。

在開發期間,如果您使用的裝置沒有遊戲資訊主頁,但製造商並未提供任何針對個別應用程式設定遊戲模式的方法,則可透過 ADB 變更遊戲模式狀態:

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

範例應用程式

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

繼續

請參閱遊戲模式乾預功能,瞭解如何在無法提供遊戲更新時改善遊戲效能。