Android 15에서는 전력 소비를 최적화하기 위해 게임의 기본 화면 재생 빈도를 60Hz로 설정합니다. 120FPS와 같은 더 높은 프레임 속도를 잠금 해제하려면 이제 프레임 속도 API 또는 Swappy 라이브러리를 사용하여 명시적으로 요청해야 합니다.
하지만 시스템은 배터리 수준이나 기기 온도와 같은 요인에 따라 이 요청을 재정의할 수 있습니다. 화면 재생 빈도가 높을수록 시각적 부드러움이 향상되지만 더 많은 전력이 필요하고 열이 추가로 발생합니다. 따라서 사용자에게 원하는 새로고침 빈도를 선택할 수 있는 옵션을 제공하고 성능을 신중하게 모니터링하여 균형 잡힌 사용자 환경을 보장하는 것이 중요합니다.
setFrameRate() API 사용
setFrameRate() API를 사용하면 게임 개발자가 특정 디스플레이 새로고침 빈도를 사용할 수 있습니다. 이 작업을 수행하는 방법은 두 가지입니다.
- 기기 및 Android 버전 호환성을 확인합니다.
setFrameRate()를 사용하여 높은 FPS를 요청합니다.
기기 및 Android 버전 호환성 확인:
Display.getSupportedModes() 메서드를 사용하여 기기가 90Hz, 120Hz 또는 기타 새로고침 빈도를 지원하는지 확인합니다. 기기가 60Hz로 제한된 경우 이 한도를 초과할 수 없습니다.
Kotlin
val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}
높은 FPS 요청
렌더링 루프가 시작되거나 게임 창 초기화 중에 또는 타겟 FPS가 디스플레이 새로고침 빈도를 변경해야 하는 경우 setFrameRate()를 호출합니다.
더 높은 비율을 요청하더라도 절전 모드나 열 제한과 같은 요인으로 인해 시스템에서 화면 재생 빈도를 60Hz로 제한할 수 있습니다. 게임의 렌더링 성능이 타겟 FPS에 도달하지 못하는 경우 더 높은 새로고침 빈도를 요청하면 불필요한 전력 소비가 발생하고 기기 온도가 상승할 수 있습니다.
다음 스니펫은 setFrameRate() API를 사용하여 과도한 새로고침 빈도를 방지하는 방법을 보여줍니다.
Kotlin
val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setFrameRate(
targetFps,
Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
0
)
}
프레임 속도 페이지에서 자세한 내용을 확인할 수 있습니다.
프레임 속도 라이브러리 사용
프레임 페이싱 라이브러리(Swappy)는 C/C++ Android 게임 엔진에서 VSync 관리 및 프레임 예약 작업을 간소화하도록 설계된 오픈소스 라이브러리입니다.
이 도구는 새로고침 빈도 최적화 프로세스를 간소화하여 setFrameRate()과 같은 기능에 대한 상위 수준 추상화 레이어 역할을 효과적으로 수행합니다. 또한 Swappy는 게임의 전반적인 부드러움과 성능을 향상할 수 있는 추가 기능을 제공합니다.
자세한 내용은 Swappy 페이지를 참고하세요.
최상의 결과를 얻기 위한 추가 도움말
다음 섹션에서는 몇 가지 유용한 팁을 설명합니다.
- 동적 프레임 속도 전환
- 성능 모니터링
- 최대 디스플레이 새로고침 빈도에 따라 FPS 옵션을 제공합니다.
동적 프레임 속도 전환
성능과 전력 소비를 모두 최적화하려면 게임에서 동적 프레임 속도 전환을 구현하는 것이 좋습니다. 이 기술을 사용하면 까다로운 장면에서 더 부드러운 게임플레이를 위해 120Hz와 같은 높은 화면 재생 빈도와 덜 집중적인 순간이나 배터리 수명이 우려되거나 60FPS 미만을 타겟팅할 때 60Hz와 같은 낮은 화면 재생 빈도 사이를 원활하게 전환할 수 있습니다. 120Hz로 계속 실행하면 열이 과도하게 발생하고 배터리가 빠르게 소모되어 사용자 환경이 부정적으로 영향을 받을 수 있습니다. 현재 렌더링 부하와 기기 상태에 따라 화면 재생 빈도를 지능적으로 조정하면 시각적 충실도와 전력 효율 간의 균형을 맞출 수 있습니다.
Performance Monitoring
게임이 높은 새로고침 빈도에서 최적으로 실행되도록 하려면 프레임 카운터나 성능 오버레이와 같은 성능 모니터링 도구를 통합하세요. 이러한 도구는 게임의 실제 프레임 속도에 관한 실시간 의견을 제공하므로 타겟 120FPS를 일관되게 달성하는지 확인할 수 있습니다.
프레임 속도가 크게 변동되는 경우 해당 기기에서 달성 가능한 더 낮은 프레임 속도를 타겟팅하는 것이 좋습니다. 이렇게 하면 가장 높은 새로고침 빈도를 위해 노력할 때 발생할 수 있는 성능 문제가 없는 더 원활한 환경을 제공할 수 있습니다.
최대 디스플레이 새로고침 빈도에 따라 FPS 옵션 제공
게임은 현재 기기에서 지원하는 최대 디스플레이 화면 재생 빈도(예: 60Hz, 90Hz, 120Hz)를 감지하고 이에 따라 FPS 설정을 제한해야 합니다. 예를 들어 기기가 최대 60Hz까지만 지원하는 경우 플레이어의 혼동을 방지하기 위해 게임 설정에서 60FPS보다 높은 옵션을 사용 중지하는 것이 좋습니다.