Game Mode API

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

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

下列裝置支援 Game Mode API 和介入措施:

每款遊戲都可以導入 Game Mode API 行為、向遊戲原始設備製造商提出遊戲模式干預設定,或選擇退出遊戲模式干預功能

設定

如要在遊戲中使用 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) 提供的類似應用程式。或者,您也可以在開發期間使用「遊戲模式」殼層指令。

如果您使用遊戲資訊主頁,但遊戲啟動時未顯示最佳化圖示,可能需要將應用程式上傳至 Google Play 管理中心,然後透過 Play 商店安裝。如要瞭解如何在 Play 商店中測試應用程式,請參閱「與內部人員分享應用程式套件和 APK」。

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

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

開發期間,如果使用的裝置沒有遊戲資訊主頁,且製造商未提供任何方式為每個應用程式設定遊戲模式,您可以透過 adb 變更遊戲模式狀態:

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

範例應用程式

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

繼續

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