Android 15 ustawia domyślną częstotliwość odświeżania gier na 60 Hz, aby zoptymalizować zużycie energii. Aby odblokować wyższe częstotliwości odświeżania, np. 120 FPS, musisz teraz wyraźnie o nie poprosić za pomocą interfejsu Frame Rate API lub biblioteki Swappy .
System może jednak zastąpić to żądanie na podstawie takich czynników jak poziom naładowania baterii czy temperatura urządzenia. Wyższe częstotliwości odświeżania poprawiają płynność obrazu, ale też wymagają więcej energii i generują dodatkowe ciepło. Dlatego ważne jest, aby dać użytkownikom możliwość wyboru preferowanej częstotliwości odświeżania i dokładnie monitorować wydajność, aby zapewnić zrównoważone wrażenia.
Korzystanie z interfejsu setFrameRate() API
Interfejs setFrameRate() API umożliwia deweloperom gier korzystanie z określonej częstotliwości odświeżania wyświetlacza. Aby to zrobić, wykonaj te 2 kroki:
- Sprawdź zgodność urządzenia i wersji Androida.
- Poproś o wysoką liczbę klatek na sekundę za pomocą
setFrameRate().
Sprawdzanie zgodności urządzenia i wersji Androida
Użyj metod Display.getSupportedModes(), aby sprawdzić, czy urządzenie
obsługuje częstotliwość odświeżania 90 Hz, 120 Hz lub inne. Jeśli urządzenie jest ograniczone do 60 Hz, nie można przekroczyć tego limitu.
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")
}
Żądanie wysokiej liczby klatek na sekundę
Wywołaj setFrameRate() po uruchomieniu pętli renderowania, podczas inicjowania okna gry
lub gdy docelowa liczba klatek na sekundę musi zmienić częstotliwość odświeżania wyświetlacza.
Nawet jeśli poprosisz o wyższą częstotliwość, system może nadal ograniczać ją do 60 Hz ze względu na takie czynniki jak tryb oszczędzania energii czy ograniczenie termiczne. Jeśli wydajność renderowania gry nie osiąga docelowej liczby klatek na sekundę, żądanie wyższej częstotliwości odświeżania może spowodować niepotrzebne zużycie energii i wzrost temperatury urządzenia.
Poniższy fragment kodu pokazuje, jak uniknąć zbyt wysokiej częstotliwości odświeżania za pomocą interfejsu 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
)
}
Więcej informacji znajdziesz na stronie Częstotliwość odświeżania.
Korzystanie z biblioteki Frame pacing
Biblioteka Frame pacing, czyli Swappy, to biblioteka open source zaprojektowana w celu
uproszczenia zarządzania VSync i planowania klatek w silnikach gier C/C++ na Androida.
To narzędzie upraszcza proces optymalizacji częstotliwości odświeżania, skutecznie
działając jako warstwa abstrakcji wyższego poziomu nad funkcjami takimi jak
setFrameRate(). Swappy udostępnia też dodatkowe funkcje, które mogą poprawić ogólną płynność i wydajność gry.
Więcej informacji znajdziesz na stronie Swappy.
Dodatkowe wskazówki pozwalające uzyskać jak najlepszą jakość
W tej sekcji znajdziesz kilka najważniejszych wskazówek:
- Dynamiczne przełączanie częstotliwości odświeżania.
- Monitorowanie wydajności.
- Udostępnianie opcji liczby klatek na sekundę na podstawie maksymalnej częstotliwości odświeżania wyświetlacza.
Dynamiczne przełączanie częstotliwości odświeżania
Aby zoptymalizować zarówno wydajność, jak i zużycie energii, rozważ wdrożenie w grze dynamicznego przełączania liczby klatek. Ta technika umożliwia płynne przechodzenie między wyższymi częstotliwościami odświeżania, np. 120 Hz, aby zapewnić płynniejszą rozgrywkę w wymagających scenach, a niższymi, np. 60 Hz, w mniej intensywnych momentach lub gdy ważny jest czas pracy na baterii albo gdy docelowa liczba klatek na sekundę jest mniejsza niż 60. Ciągłe działanie z częstotliwością 120 Hz może prowadzić do nadmiernego nagrzewania się urządzenia i szybkiego zużycia baterii, co może negatywnie wpłynąć na wrażenia użytkowników. Inteligentne dostosowywanie częstotliwości odświeżania na podstawie bieżącego obciążenia renderowania i warunków urządzenia pozwala zachować równowagę między jakością obrazu a energooszczędnością.
Monitorowanie wydajności
Aby mieć pewność, że gra działa optymalnie przy wyższych częstotliwościach odświeżania, zintegruj narzędzia do monitorowania wydajności, takie jak licznik klatek czy nakładka wydajności. Te narzędzia zapewniają informacje w czasie rzeczywistym o rzeczywistej liczbie klatek na sekundę w grze, co pozwala sprawdzić, czy stale osiągasz docelową liczbę 120 FPS.
Jeśli liczba klatek na sekundę znacznie się waha, rozważ ustawienie niższej, osiągalnej liczby klatek na sekundę na danym urządzeniu. Może to zapewnić płynniejsze działanie bez problemów z wydajnością, które mogą wystąpić podczas dążenia do najwyższej częstotliwości odświeżania.
Udostępnianie opcji liczby klatek na sekundę na podstawie maksymalnej częstotliwości odświeżania wyświetlacza
Gra powinna wykrywać maksymalną częstotliwość odświeżania wyświetlacza obsługiwaną przez bieżące urządzenie, np. 60 Hz, 90 Hz lub 120 Hz, i odpowiednio ograniczać ustawienia liczby klatek na sekundę. Jeśli na przykład urządzenie obsługuje tylko do 60 Hz, zalecamy wyłączenie w ustawieniach gry wszystkich opcji powyżej 60 FPS, aby nie wprowadzać gracza w błąd.