Game Mode API

게임 모드 API를 사용하면 사용자가 해당 게임 모드를 선택할 때 최고 성능 또는 가장 긴 배터리 수명에 맞춰 게임을 최적화할 수 있습니다.

또는 개발자가 더 이상 업데이트하지 않는 게임의 성능을 개선하기 위해 게임 모드 개입 요청을 제출할 수 있습니다.

Game Mode API 및 개입은 다음에서 사용할 수 있습니다.

각 게임은 Game Mode API 동작을 구현하거나, OEM에 게임 모드 개입 설정을 제안하거나, 게임 모드 개입을 선택 해제할 수 있습니다.

설정

게임에서 게임 모드 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
}
지원되는 게임 모드 설명
지원되지 않음 게임이 게임 모드 API에 대한 지원을 선언하지 않으며 게임 모드 개입을 지원하지 않습니다.
일반 사용자가 게임 모드를 선택하지 않았거나 사용자가 일반 모드를 선택했습니다.
성능 배터리 수명 및 충실도 감소에 대한 대가로 가장 짧은 지연 시간 프레임 속도를 제공합니다.
배터리 충실도 또는 프레임 속도를 낮추어 가장 긴 배터리 수명을 제공합니다.
  1. onResume 함수에서 게임 모드 상태를 쿼리하는 코드를 추가합니다.

    사용자 설정 배터리 모드의 예

권장사항

게임에서 이미 여러 충실도와 프레임 속도 목표를 지원한다면 성능 및 절전 모드에 적합한 설정을 파악해야 합니다.

  • 최대 기기 프레임 속도를 일관적으로 달성하려면 충실도를 조금 낮추고 더 높은 프레임 속도를 달성하세요.

  • 배터리 수명을 개선하기 위해 더 낮은 디스플레이 화면 재생 빈도(예: 30Hz 또는 60Hz)를 선택하고 프레임 속도를 사용하여 감소된 속도를 목표로 하는 것이 좋습니다.

1인칭 슈팅 게임, 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 Console에 앱을 업로드하고 Play 스토어를 통해 설치해야 할 수 있습니다. Play 스토어의 앱 테스트에 관한 자세한 내용은 내부적으로 App Bundle 및 APK 공유를 참고하세요.

게임 대시보드 활동그림 1. Pixel 기기에서 실행 중인 게임을 오버레이하는 게임 대시보드

그림 1에서 실행 중인 게임의 게임 모드를 최적화 위젯에서 변경할 수 있습니다. 위젯에 표시된 것처럼 게임은 현재 PERFORMANCE 모드에서 실행 중입니다.

개발 중에 게임 대시보드 없이 기기를 사용 중이며 제조업체가 각 앱에 게임 모드를 설정하는 방법을 제공하지 않는 경우 adb를 통해 게임 모드 상태를 변경할 수 있습니다.

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

샘플 애플리케이션

Game Mode API 샘플에서는 FPS를 최적화하고 해상도 한도를 렌더링하여 앱의 전력을 약 25% 절약하는 방법을 보여줍니다.

다음

게임 모드 개입을 읽고 게임 업데이트를 제공할 수 없는 경우 게임 성능을 개선합니다.