遊戲效能提升

自 Android 14 起,Android 動態效能架構 (ADPF) 中新增了名為 GAME 的省電模式,可在遊戲使用期間自訂手機效能。GAME 會向 Power HAL 指出遊戲應用程式位於前景。這項指示可讓 Power HAL 在遊戲進行時採用電源管理策略,讓使用者體驗到穩定且效能更佳的遊戲體驗。

為改善遊戲的載入時間,Android 13 在 ADPF 中推出了名為 GAME_LOADING 的新省電模式。GAME_LOADING 會指出遊戲應用程式是否處於載入狀態,以便 Power HAL 提供載入加速功能。這項指示可讓 Power HAL 提供可加快遊戲載入時間的效能提升措施。

本頁面說明遊戲應用程式如何將遊戲狀態傳遞至 Power HAL,並說明如何設定 Power HAL,以便在裝置中充分利用 Power HAL,以及如何測試 Power HAL 實作。

電源模式偵測和通知

本節說明電源管理工具如何處理 GAMEGAME_LOADING 模式。

GAME 電源模式

Android 14 中的新電源模式 GAME 會向 Power Manager Service 指出使用者正在玩遊戲。當 Power HAL 收到 GAME 模式的通知時,即可在遊戲過程中調整電源,以提升效能、降低溫度並延長電池續航力。

下圖說明傳送至 Power HAL 的資訊流程,用於指示 GAME 電源模式:

game-mode

圖 1. 資訊流,用來表示正在玩遊戲。

如果應用程式在 AndroidManifest.xml 中具有 appCategoryGAME,系統一律會為該應用程式設定 GAME 電源模式。

GAME_LOADING 省電模式

載入加速模式會偵測遊戲應用程式處於載入狀態,並通知 Power HAL。Android 13 在面向開發人員的 API 中推出了名為 isLoading 的新遊戲狀態。這個遊戲狀態會使用 Power Manager Service 中的新 GAME_LOADING 電源模式,向 Power HAL 通知頂層遊戲狀態。一旦 Power HAL 收到遊戲載入狀態的通知,便可調整平台的效能設定和 CPU 時脈率,進而縮短載入時間。

為了表示遊戲正在載入,遊戲應用程式會使用遊戲資訊主頁,在遊戲管理工具中設定 isLoading 狀態。遊戲管理員會將此狀態傳遞至遊戲管理員服務,後者會使用 setPowerMode 搭配新的 GAME_LOADING 電源模式,叫用電源管理員服務。GAME_LOADING 電源模式會向 Power HAL 指出遊戲處於載入狀態,以便 Power HAL 提供載入加速功能。

下圖說明從應用程式傳送至電源 HAL 的資訊流,用於指出載入狀態:

loading-boost

圖 2. 資訊流,用來指出遊戲處於載入狀態。

遊戲資訊主頁可讓使用者透過「效能設定」開啟或關閉載入加速功能。效能設定一律預設為關閉。

使用 GAME 和 GAME_LOADING 自訂 Power HAL

如要充分利用 GAMEGAME_LOADING 模式,原始設備製造商 (OEM) 必須自訂實作 Power HAL。由於電源管理和效能提升功能是硬體專屬,因此在 Google Pixel 裝置的參考實作項目發布之前,不會提供 GAMEGAME_LOADING 模式的參考實作項目。

為提升 GAMEGAME_LOADING 模式的效能,原始設備製造商可以選擇同時實作下列措施:

  • 穩定影格速率
  • 提高 CPU 時脈速度
  • 暫時降低溫度節流
  • 為前景遊戲應用程式指派較高的 CPU 優先順序
  • 減少為一般非遊戲應用程式調整的 CPU 提昇功能
  • 最佳化熱能相關的電力分配策略

測試 GAME 模式實作

如要測試 GAME 模式的實作方式,請在 GameManagerServiceTests.java 中使用前置為 testGamePowerMode_ 的測試。

測試 GAME_LOADING 實作

如要測試 GAME_LOADING 模式的實作方式,請使用 android.gamemanager.cts.GameManagerTest#testSetGameContext。這項測試會驗證是否在效能模式中,具有 isLoading 情境的 GameManager::setGameContext() 會在 Power HAL 上叫用遊戲載入模式。