Android 15는 전원 소모를 최적화하기 위해 게임의 기본 화면 재생 빈도를 60Hz로 설정합니다. 120FPS와 같은 더 높은 프레임 속도를 사용하려면 이제 Frame Rate 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 페이지에서 자세한 내용을 확인하세요.
최상의 결과를 위한 추가 도움말
다음 섹션에서는 몇 가지 유용한 도움말을 설명합니다.
- 동적 프레임 속도 전환
- Performance Monitoring
- 최대 디스플레이 재생 빈도를 기반으로 FPS 옵션을 제공합니다.
동적 프레임 속도 전환
성능과 전원 소모량을 모두 최적화하려면 게임에 동적 프레임 속도 전환을 구현하는 것이 좋습니다. 이 기법을 사용하면 까다로운 장면에서 더 부드러운 게임플레이를 위해 120Hz와 같은 더 높은 화면 재생 빈도와 덜 까다로운 순간이나 배터리 수명이 우려되거나 60FPS 미만을 타겟팅하는 경우 60Hz와 같은 더 낮은 화면 재생 빈도 간에 원활하게 전환할 수 있습니다. 120Hz로 지속적으로 실행하면 과도한 열 발생과 빠른 배터리 소모가 발생하여 사용자 환경이 저하될 수 있습니다. 현재 렌더링 부하와 기기 상태에 따라 화면 재생 빈도를 지능적으로 조정하면 시각적 충실도와 전력 효율성의 균형을 맞출 수 있습니다.
성능 모니터링
더 높은 재생 빈도에서 게임이 최적으로 실행되도록 하려면 프레임 카운터나 성능 오버레이와 같은 성능 모니터링 도구를 통합하세요. 이러한 도구는 게임의 실제 프레임 속도에 관한 실시간 피드백을 제공하므로 타겟 120FPS를 일관되게 달성하고 있는지 확인할 수 있습니다.
프레임 속도가 크게 변동되는 경우 지정된 기기에서 달성 가능한 더 낮은 프레임 속도를 타겟팅하는 것이 좋습니다. 이렇게 하면 최대 재생 빈도를 달성할 때 발생할 수 있는 성능 중단 없이 더 원활한 환경을 제공할 수 있습니다.
최대 디스플레이 새로고침 빈도에 따라 FPS 옵션 제공
게임은 현재 기기에서 지원하는 최대 디스플레이 재생 빈도(예: 60Hz, 90Hz, 120Hz)를 감지하고 그에 따라 FPS 설정을 제한해야 합니다. 예를 들어 기기가 최대 60Hz만 지원하는 경우 플레이어의 혼동을 피하기 위해 게임 설정에서 60FPS보다 높은 옵션을 사용 중지하는 것이 좋습니다.