遊戲模式干預是原始設備製造商 (OEM) 針對遊戲所設定的最佳化功能,可改善開發人員不再更新的遊戲效能。例如:
- 使用 WindowManager 後端緩衝區大小調整功能。
- 使用 ANGLE 而非原生 GLES 驅動程式。
您可以讓遊戲支援及管理 Game Mode API,進而覆寫原始設備製造商 (OEM) 提供的遊戲模式介入措施。
以下裝置支援 Game Mode API 和介入措施:
- 選取 Android 12 裝置
- 搭載 Android 13 以上版本的裝置
每個遊戲都能:
- 實作 Game Mode API 行為,
- 向原始設備製造商 (OEM) 建議遊戲模式介入措施設定;或者
- 明確選擇不採用遊戲模式介入措施。
背景
本節說明遊戲模式介入措施的作用,以及如何針對各模式最佳化遊戲。
WindowManager 後端緩衝區大小調整
WindowManager 後端緩衝區調整大小干預功能可以降低裝置的 GPU 負載。此外,當遊戲設有目標畫面更新率時,還能降低電池耗電量。
啟用調整大小功能可減少高達 30% 的 GPU,以及 10% 的整體系統耗電量。結果可能會因使用的裝置、環境條件和其他因素 (例如同時處理) 而有所不同。
在 GPU 負載降低時,依賴 GPU 效能但未設定速率的遊戲可能會獲得較高的畫面更新率。
我們強烈建議所有遊戲都妥善設定速率,因為不平均的畫面更新率會大幅影響使用者對於效能的感受。
FPS 節流
Android 每秒影格數 (FPS) 節流是一種遊戲模式介入措施,能夠讓遊戲以更穩定的影格速率執行,進而減少電池耗電量。此措施適用於 Android 13 以上版本。詳情請參閱「FPS 節流總覽」。
評估遊戲模式介入措施
本節會使用 adb 指令。
設定模式
您必須先在應用程式的遊戲模式設定檔中停用遊戲模式,才能測試遊戲模式介入措施。否則平台會略過這些設定,只遵循遊戲內最佳化設定。
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="false"
/>
(選用) 備份現有裝置設定
如果是 Pixel 或其他裝置,裝置設定中可能會有預先存在的遊戲介入設定。您可以使用以下指令查詢設定:
adb shell device_config get game_overlay <PACKAGE_NAME>
如果查詢傳回 null
,請忽略先前設定。否則請儲存,並在評估後重新設定。
評估介入措施
如要自行評估 WindowManager 後端緩衝區大小介入措施,請使用下列指令來設定不同遊戲模式的不同 WindowManager 緩衝區大小調整值。
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
在上述範例中,mode=2
為「效能」,mode=3
為「省電模式」。downscaleFactor
的值會指定為適用於大小調整設定的百分比 (例如 0.7 為 70%,0.8 為 80%)。90% (0.9) 的大小調整比例幾乎可以忽略,但 50% (0.5) 的調整比例則非常重要。
警告:在 Android 12 中,子程序可能無法正確調整大小。特別要確認彈出式通知和彈出式視窗是否正確顯示。建議你將大小調整設定限制為至少 70%。
設定新的大小調整值後,請切換遊戲模式,看看 WindowManager 後端緩衝區調整大小干預功能對遊戲產生的影響:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
請務必在每次選取遊戲模式後重新啟動遊戲。縮減介入措施需要重新啟動應用程式。
選擇不採用干預功能
如要自行控管是否要對遊戲套用干預功能,您可以選擇不採用。每項干預功能都有專屬的停用設定。
- 用於控制是否啟用及停用遊戲模式的設定 XML 檔案,也適用於介入設定:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"
/>
- 重新建構並再次提交遊戲,以選擇不採用干預功能。
根據預設,除非您明確表示遊戲選擇不採用,否則系統會使用原始設備製造商 (OEM) 設定的干預功能。
資源
如要進一步瞭解如何評估及最佳化遊戲效能:
系統分析器 - 分析 CPU 使用率和圖像呼叫。
Android GPU 檢查器:分析 Android 上的圖像。
Android Frame Pacing 資料庫:協助 OpenGL 和 Vulkan 遊戲順暢地進行算繪,並修正影格放送速度。
Android Performance Tuner:針對 Android 裝置大規模評估畫面更新率和圖像,並進行最佳化處理。
電源分析器:查看應用程式在何處超量使用能源。