FPS 節流

Android 每秒影格數 (FPS) 節流是一種遊戲模式介入措施,能夠讓遊戲以更穩定的影格速率執行,進而減少電池耗電量。此措施適用於 Android 13 以上版本。

隨著市面上配備高刷新率 (例如 90 Hz、120 Hz) 螢幕的 Android 裝置越來越多,大多數遊戲都在試圖以高 FPS 執行。然而,這些遊戲一般不會考量到使用者優先重視的是效能,還是電池續航力,這會造成一些問題:

  • 無法持續以高 FPS 執行的遊戲,會有 FPS 不穩定或不均勻的問題。

  • 使用者通常不偏好較高的 FPS,因為會導致電力快速耗盡。

FPS 節流只能「限制」影格速率。舉例來說,如果遊戲原本是以 60 FPS 的速度執行,那麼 FPS 節流介入措施無法讓遊戲以 120 FPS 的速度執行,但可以將執行速度降低至 40 FPS 和 30 FPS。

FPS 節流能降低高達 50% 的 GPU 功耗,以及高達 20% 的系統功耗。這也能幫助非恆速的遊戲以更流暢、較不卡頓的影格速率執行。

非恆速的遊戲通常影格速率峰值較高,但影格時間變化範圍也較大,這會極大影響玩家感受到的效能。FPS 節流介入措施只能從平台端協助非恆速的遊戲達成影格同步。

FPS 節流介入措施的效果可能因使用的裝置、環境條件等因素而異。

同時導入應用程式影格同步的結果

一般來說,如果強制執行應用程式影格同步措施與 FPS 節流,會使最終影格速率低於目標影格速率。

開始使用

本節說明如何運用 Android Debug Bridge (ADB) 設定及使用 FPS 節流功能。

啟用遊戲模式介入措施

如要為遊戲啟用遊戲模式介入措施,請使用下列指令:

adb shell device_config put game_overlay <PACKAGE_NAME> <CONFIG>

設定 FPS 介入措施

如要設定目標 FPS 節流介入措施,請使用 device_config 指令。下方是針對效能與電池模式設定 FPS 節流的例子:

adb shell device_config put game_overlay <PACKAGE_NAME> mode=2,fps=90:mode=3,fps=30

參數細節:

  • mode [2|3]:23 分別是效能和電池模式
  • fps [0|30|40|45|60|90|120]:視您使用的裝置而定 (120、90 或 60 Hz 裝置),我們建議選擇裝置最大刷新率的除數做為影格速率。預設值為 0

以下是每種螢幕支援的影格速率:

  • 60 Hz 螢幕:60 FPS、30 FPS
  • 90 Hz 螢幕:90 FPS、45 FPS、30 FPS
  • 120 Hz 螢幕:120 FPS、60 FPS、40 FPS、30 FPS

取得結果

如要查看及分析結果,您可以檢查 FPS 計數器或擷取 Perfetto 追蹤記錄。下方的例子說明了如何在以 120 FPS 執行的遊戲中查看 FPS 計數器:

查看 FPS 計數器

如要驗證 FPS 節流設定,您可以執行遊戲,並在遊戲資訊主頁中開啟每秒影格數計數器。步驟如下:

  1. 在遊戲執行期間,向下滑動並按下「遊戲資訊主頁」圖示。

  2. 按下「FPS」按鈕開啟 FPS 計數器。

  3. 按下「X」按鈕關閉遊戲資訊主頁。在箭頭上向右滑動即可顯示 FPS 計數器。

擷取 Perfetto 追蹤記錄

如要深入瞭解您的遊戲效能,我們建議執行 Perfetto 追蹤記錄。您可以參閱「快速入門導覽課程:在 Android 裝置上擷取追蹤記錄」,進一步瞭解執行追蹤記錄的做法。

執行追蹤記錄時,請使用 android.game_interventions 資料來源。追蹤記錄完成後就會顯示「追蹤檢視器」頁面。請在導覽列中選取「Info and stats」,然後查看「Game mode and intervention」清單。例如:

介入措施列表的示例

FPS 節流介入措施會以「fps=X」的格式顯示,其中 X 是特定遊戲模式中的節流 FPS,預設值為 0