Android FPS 제한은 배터리 소모를 줄이기 위해 게임이 보다 안정적인 프레임 속도로 실행되도록 하는 게임 모드 개입입니다. 이러한 개입은 Android 13 또는 이후 버전에서 사용할 수 있습니다.
점점 더 많은 Android 기기가 더 높은 화면 재생 빈도의 디스플레이(예: 90Hz, 120Hz)로 제공되므로 대부분의 게임이 높은 FPS에 맞추려고 합니다. 그러나 성능이나 배터리 수명을 우선하는 사용자의 선호도는 일반적으로 고려하지 않습니다.
이에 따라 여러 문제가 발생합니다.
높은 FPS로 일관되게 속도를 유지할 수 없는 게임은 FPS가 불안정하거나 균일하지 않게 됩니다.
사용자는 배터리가 너무 빨리 소진되어 실제로 FPS가 높은 것을 원하지 않는 경우가 많습니다.
FPS 제한은 프레임 속도를 제한할 수만 있습니다. 예를 들어 게임이 원래 60FPS로 실행되는 경우 FPS 제한 개입은 게임이 120FPS로 실행되도록 할 수 없지만 40FPS와 30FPS로 제한하는 것은 가능합니다.
FPS 제한으로 인해 GPU 전력은 최대 50%, 시스템 전력은 20% 절감할 수 있습니다. 또한 속도가 일정하지 않은 게임이 버벅거림이 적으면서 원활한 프레임 속도로 실행될 수 있습니다.
속도가 일정하지 않은 게임은 최대 프레임 속도가 더 높지만 프레임 시간의 편차가 더 높습니다. 이는 플레이어가 성능을 인식하는 방식에 상당한 영향을 미칩니다. FPS 제한 개입은 속도가 일정하지 않은 게임이 플랫폼 측에서 프레임 페이싱을 달성하는 데 도움이 됩니다.
FPS 제한 개입의 결과는 사용된 기기, 환경 조건, 기타 요인에 따라 다를 수 있습니다.
앱 프레임 페이싱 구현과의 상호작용
앱 프레임 페이싱 구현과 FPS 제한이 모두 적용되는 경우 일반적으로 최종 프레임 속도는 더 낮은 타겟팅 프레임 속도입니다.
fps [0|30|40|45|60|90|120]: 사용하는 기기(120, 90 또는 60Hz 기기)에 따라 기기의 최대 화면 재생 빈도의 제수인 프레임 속도를 선택하는 것이 좋습니다. 0이 기본값입니다.
다음은 각 디스플레이 유형에서 지원하는 프레임 속도입니다.
60Hz 디스플레이: 60FPS, 30FPS
90Hz 디스플레이: 90FPS, 45FPS, 30FPS
120Hz 디스플레이: 120FPS, 60FPS, 40FPS, 30FPS
결과 가져오기
결과를 보고 분석하려면 FPS 카운터를 검사하거나 Perfetto 트레이스를 캡처하면 됩니다. 다음은 120FPS로 실행되는 게임에서 FPS 카운터를 확인하는 방법을 보여주는 예입니다.
FPS 카운터 보기
FPS 제한 설정을 확인하려면 게임을 실행하고 게임 대시보드에서 FPS 카운터를 엽니다. 방법은 다음과 같습니다.
게임을 실행하는 동안 아래로 스와이프하여 게임 대시보드 아이콘을 누릅니다.
FPS 버튼을 눌러 FPS 카운터를 켭니다.
X 버튼을 눌러 게임 대시보드를 닫습니다. 화살표에서 오른쪽으로 스와이프하여
FPS 카운터를 표시합니다.
Perfetto 트레이스 캡처
게임 성능을 자세히 살펴보려면 Perfetto 트레이스를 실행하는 것이 좋습니다. 트레이스 실행에 관한 자세한 내용은 빠른 시작: Android에서 트레이스 기록을 참고하세요.
트레이스를 실행할 때는 android.game_interventions 데이터 소스를 사용하세요.
트레이스가 완료되면 트레이스 뷰어 페이지가 표시됩니다. 탐색 메뉴에서 정보 및 통계를 선택한 후 게임 모드 및 개입 목록을 확인합니다. 예를 들면 다음과 같습니다.
FPS 제한 개입은 'fps=X' 형식으로 표시됩니다. 여기서 X는 특정 게임 모드의 제한 FPS입니다. 0이 기본값입니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-26(UTC)"],[],[],null,["# FPS throttling\n\nAndroid FPS throttling is a Game Mode intervention that helps games run at a\nmore stable frame rate in order to reduce battery consumption. The intervention\nis available in [Android 13](/about/versions/13/get) or later.\n\nAs more Android devices ship with displays that have higher refresh rates, such\nas 90 Hz and 120 Hz, most games try to pace at a high FPS. However, they usually\ndon't consider user preferences for prioritizing performance or battery life.\nThis causes several problems:\n\n- Games that can't consistently pace at the higher FPS end up having unstable\n or uneven FPS.\n\n- Users often don't really want to have higher FPS because the battery runs out\n too quickly.\n\nFPS throttling is only able to *limit* the frame rate. For an\nexample, when a game runs at 60 FPS originally, FPS throttling intervention\ncannot make it run at 120 FPS but throttling at 40 FPS and 30 FPS is valid.\n\nFPS throttling can result in up to a 50% GPU power reduction and a 20% system\npower reduction. It also helps run unpaced games at a smoother and less janky\nframe rate.\n\nAn unpaced game often has higher peak frame rates but with\n[higher variance](/games/sdk/frame-pacing#how-it-works) of frame time. This\nsignificantly impacts how the performance is perceived by players. The FPS\nthrottling intervention only helps unpaced games achieve frame pacing from the\nplatform side.\n\nThe results of the FPS throttling intervention may vary based on the device\nused, environmental conditions, and other factors.\n\nInteractions with app frame-pacing implementations\n--------------------------------------------------\n\nWhen both the app frame-pacing implementation and FPS throttling are enforced,\ngenerally the final frame rate is the lower targeting frame rate.\n| **Important:** An exception to this is when an app force sleeps the render thread to achieve frame-pacing. In this case, the FPS throttling intervention can't limit the frame rate any further.\n\nGet started\n-----------\n\nThis section describes how to set up and use FPS throttling using\n[Android Debug Bridge (adb)](/studio/command-line/adb).\n| **Important:** Make sure your game hasn't [declared support](/games/optimize/adpf/gamemode/gamemode-api#declare_support_for_game_modes) for the Game Mode API so the FPS throttling intervention isn't overridden.\n\n### Enable game mode interventions\n\nTo enable game mode interventions for a game, use the following command: \n\n adb shell device_config put game_overlay \u003cPACKAGE_NAME\u003e \u003cCONFIG\u003e\n\n### Set the FPS intervention\n\nTo set the target FPS throttling intervention, use the `device_config` command.\nHere's an example that sets FPS throttling for performance and battery mode: \n\n adb shell device_config put game_overlay \u003cPACKAGE_NAME\u003e mode=2,fps=90:mode=3,fps=30\n\nDetails of the parameters:\n\n- `mode` \\[2\\|3\\]: `2` and `3` for performance and battery mode\n- `fps` \\[0\\|30\\|40\\|45\\|60\\|90\\|120\\]: depending on the device you are using (whether a 120, 90, or 60 Hz device), we recommend choosing the frame rates that are divisors of the device's maximum refresh rate. `0` is the default value.\n\nHere are the frame rates that each display type supports:\n\n- 60 Hz displays: 60 FPS, 30 FPS\n- 90 Hz displays: 90 FPS, 45 FPS, 30 FPS\n- 120 Hz displays: 120 FPS, 60 FPS, 40 FPS, 30 FPS\n\n### Get results\n\nTo view and analyze the results, you can inspect the FPS counter or capture\na Perfetto trace. Here's example of how to view the FPS counter in a game that\nis running at 120 FPS:\n\n#### View the FPS counter\n\nTo verify your FPS throttling settings, you can run the game and open the FPS\ncounter in Game Dashboard. To do so, follow these steps:\n\n1. While running your game, swipe down and the press Game Dashboard icon.\n\n2. Turn on the FPS counter by pressing the **FPS** button.\n\n3. Close Game Dashboard by pressing the **X** button. Swipe right on the arrow\n to display the FPS counter.\n\n#### Capture a Perfetto trace\n\nTo get an in-depth look at the performance of your game, we recommend you\nperform a Perfetto trace. For more information on performing a trace, see\n[Quickstart: Record traces on Android](https://perfetto.dev/docs/quickstart/android-tracing).\n\nWhen you perform a trace, use the `android.game_interventions` data source.\nAfter the trace completes, the **trace viewer** page is displayed. In the\nnavigation bar, select **Info and stats** and then view the **Game mode and\nintervention** list. For example:\n\nFPS throttling interventions are shown in the format of \"fps=X\", where `X` is\nthe throttling FPS in a specific game mode. `0` is the default value."]]