Android 14부터 Android 동적 성능 프레임워크(ADPF)의 새로운 전원 모드인 GAME
을 사용하면 게임 사용 중에 휴대전화 성능을 맞춤설정할 수 있습니다. GAME
은 게임 애플리케이션이 포그라운드에 있다고 전력 HAL에 표시합니다. 이 표시를 통해 전력 HAL은 게임이 플레이될 때 전원 관리 전략을 채택할 수 있으므로 사용자가 안정되고 개선된 성능을 경험합니다.
Android 13에서는 게임 로드 시간을 개선하기 위해 ADPF에 GAME_LOADING
이라는 새로운 전원 모드가 도입되었습니다. GAME_LOADING
은 전력 HAL이 로드 부스트를 제공할 수 있도록 게임 앱이 로드 상태에 있는지 나타냅니다. 전력 HAL은 이를 통해 게임 로드 시간을 향상할 수 있는 성능 부스트 조치를 제공할 수 있습니다.
이 페이지에서는 게임 앱이 전력 HAL에 게임 상태를 전달하는 방법, 기기에서 전력 HAL을 활용할 수 있도록 전력 HAL을 구성하는 방법, 전력 HAL 구현을 테스트하는 방법을 설명합니다.
전원 모드 감지 및 알림
이 섹션에서는 전원 관리자가 GAME
및 GAME_LOADING
모드를 처리하는 방법을 설명합니다.
GAME
전원 모드
Android 14의 새 전원 모드 GAME
은 사용자가 게임을 플레이 중임을 전원 관리자 서비스에 표시합니다. 전력 HAL이 GAME
모드라는 알림을 받으면 게임이 플레이되는 동안 전원을 조정하여 성능을 개선하고 온도를 낮추고 배터리 수명을 늘릴 수 있습니다.
다음 그림은 GAME
전원 모드를 나타내기 위해 전력 HAL의 정보 흐름을 설명합니다.
그림 1. 게임이 플레이 중임을 나타내는 정보 흐름
GAME
전원 모드는 AndroidManifest.xml
에서 GAME
가 appCategory
인 애플리케이션에서는 항상 설정됩니다.
GAME_LOADING 전원 모드
로드 부스트 모드는 게임 앱이 로드 상태에 있는 것을 감지하여 이를 전력 HAL에 알림으로써 작동합니다. Android 13에서는 개발자용 API에 isLoading
이라는 새로운 게임 상태가 도입되었습니다.
이 게임 상태는 전원 관리자 서비스의 새로운 GAME_LOADING
전원 모드를 사용하여 전력 HAL에 최상위 게임 상태를 알립니다. 게임 로드 상태를 안내받은 전력 HAL은 플랫폼의 성능 설정과 CPU 클록 속도를 조정하여 로드 시간을 개선할 수 있습니다.
게임 앱은 게임이 로드 중임을 나타내기 위해 게임 대시보드를 사용하여 게임 관리자의 isLoading
상태를 설정합니다. 게임 관리자는 이 상태를 게임 관리자 서비스에 전달하고, 게임 관리자 서비스는 새로운 GAME_LOADING
전원 모드와 함께 setPowerMode
를 사용하여 전원 관리자 서비스를 호출합니다. GAME_LOADING
전원 모드는 전력 HAL이 로드 부스트를 제공할 수 있도록 게임이 로드 상태에 있음을 알려줍니다.
다음 그림은 로드 상태를 나타내는 앱에서 전력 HAL로의 정보 흐름을 설명합니다.
그림 2. 게임이 로드 상태임을 나타내는 정보 흐름
게임 대시보드에서는 성능 설정을 사용하여 로드 부스트 기능을 사용 설정하거나 중지할 수 있습니다. 성능 설정은 항상 기본적으로 사용 중지되어 있습니다.
GAME
및 GAME_LOADING
을 사용하여 전력 HAL 맞춤설정
GAME
및 GAME_LOADING
모드를 활용하려면 OEM은 전력 HAL의 구현을 맞춤설정해야 합니다.
전원 관리 및 성능 부스트는 하드웨어에 따라 다르므로 Google Pixel 기기의 참조 구현이 출시될 때까지 GAME
또는 GAME_LOADING
모드의 참조 구현을 사용할 수 없습니다.
GAME
및 GAME_LOADING
모드에서 성능을 개선하기 위해 OEM은 다음 조치를 조합하여 구현할 수 있습니다.
- 프레임 속도 안정화
- CPU 클럭 속도 증가
- 일시적으로 온도 제한 감소
- 포그라운드 게임 애플리케이션에 더 높은 CPU 우선순위 할당
- 일반 비게임 애플리케이션용으로 조정된 CPU 부스트 감소
- 열 관련 전력 분포 전략 최적화
GAME 모드 구현 테스트
GAME
모드 구현을 테스트하려면 GameManagerServiceTests.java
에서 testGamePowerMode_
가 접두사인 테스트를 사용하세요.
GAME_LOADING 구현 테스트
GAME_LOADING
모드의 구현을 테스트하려면 android.gamemanager.cts.GameManagerTest#testSetGameContext
를 사용하세요.
이 테스트는 isLoading
컨텍스트가 있는 GameManager::setGameContext()
가 성능 모드에서 전력 HAL의 게임 로드 모드를 호출하는지 확인합니다.