Android 15 ustawia domyślną częstotliwość odświeżania 60 Hz w grach, aby zoptymalizować zużycie energii. Aby odblokować wyższą liczbę klatek na sekundę, np. 120 FPS, musisz teraz wyraźnie poprosić o to za pomocą interfejsu API dotyczącego liczby klatek na sekundę lub biblioteki Swappy.
System może jednak zastąpić to żądanie na podstawie czynników takich jak poziom naładowania baterii lub temperatura urządzenia. Chociaż wyższa częstotliwość odświeżania poprawia płynność obrazu, wymaga też więcej energii i generuje dodatkowe ciepło. Dlatego ważne jest, aby oferować użytkownikom możliwość wyboru preferowanej częstotliwości odświeżania i uważnie monitorować wydajność, aby zapewnić zrównoważone wrażenia użytkowników.
Korzystanie z interfejsu setFrameRate()
API
Interfejs API setFrameRate()
pozwala twórcom gier korzystać z określonej częstotliwości odświeżania wyświetlacza. Aby to zrobić, wykonaj te 2 kroki:
- Sprawdź zgodność urządzenia z wersją Androida.
- Aby uzyskać wysoką liczbę klatek na sekundę, użyj
setFrameRate()
.
Sprawdź zgodność urządzenia i wersji Androida:
Aby ustalić, czy urządzenie obsługuje częstotliwość odświeżania 90 Hz, 120 Hz lub inną, użyj metod Display.getSupportedModes()
. 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")
}
Wysoka liczba klatek na sekundę
Wykonuj funkcję setFrameRate()
, gdy rozpoczyna się pętla renderowania, podczas inicjowania okna gry lub gdy docelowy FPS wymaga zmiany częstotliwości odświeżania wyświetlacza.
Nawet jeśli poprosisz o wyższą częstotliwość odświeżania, system może ograniczyć ją do 60 Hz z powodu takich czynników jak tryb oszczędzania energii czy ograniczanie temperatury. 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 podwyższenie temperatury urządzenia.
Ten fragment kodu pokazuje, jak uniknąć zbyt wysokiej częstotliwości odświeżania za pomocą interfejsu API setFrameRate()
.
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 Liczba klatek.
Korzystanie z biblioteki Frame pacing
Biblioteka do ustalania szybkości wyświetlania klatek, czyli Swappy, to biblioteka open source, która ułatwia zarządzanie synchronizacją pionową i planowanie wyświetlania klatek w silnikach gier na Androida w językach C/C++.
To narzędzie usprawnia proces optymalizacji częstotliwości odświeżania, skutecznie działając jako wyższy poziom abstrakcji w przypadku funkcji takich jak setFrameRate()
. Dodatkowo Swappy oferuje dodatkowe funkcje, które mogą poprawić ogólną płynność i wydajność gry.
Strona Swappy zawiera więcej szczegółowych informacji.
Dodatkowe wskazówki dotyczące uzyskiwania najlepszych wyników
W tej sekcji znajdziesz kilka wskazówek:
- Dynamiczna zmiana liczby klatek.
- Monitorowanie wydajności.
- Dodaj opcje liczby klatek na sekundę na podstawie maksymalnej częstotliwości odświeżania ekranu.
Dynamiczne przełączanie liczby klatek
Aby zoptymalizować wydajność i zużycie energii, rozważ zastosowanie dynamicznego przełączania liczby klatek w grze. Ta technika umożliwia płynne przechodzenie między wyższymi częstotliwościami odświeżania, takimi jak 120 Hz, aby zapewnić płynniejszą rozgrywkę w wymagujących scenach, a także niższe częstotliwości, takie jak 60 Hz, w mniej wymagających momentach lub gdy trzeba zadbać o czas pracy baterii lub ustawić częstotliwość poniżej 60 FPS. Ciągłe działanie z częstotliwością 120 Hz może prowadzić do nadmiernego wytwarzania ciepła i szybkiego rozładowywania się baterii, co może negatywnie wpłynąć na wygodę 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 wiernością wizualną a oszczędnością energii.
Monitorowanie wydajności
Aby zapewnić optymalną wydajność gry przy wyższych częstotliwościach odświeżania, zintegruj narzędzia do monitorowania wydajności, takie jak licznik klatek lub nakładka wydajności. Te narzędzia zapewniają informacje o rzeczywistej liczbie klatek na sekundę w czasie rzeczywistym, dzięki czemu możesz sprawdzić, czy osiągasz docelową liczbę 120 FPS.
Jeśli liczba klatek na sekundę znacznie się waha, rozważ ustawienie niższej liczby klatek na sekundę, którą można osiągnąć na danym urządzeniu. Dzięki temu możesz zapewnić płynniejsze działanie bez problemów z wydajnością, które mogą wystąpić, gdy dążycie do najwyższej częstotliwości odświeżania.
Dodaj opcje liczby klatek na sekundę na podstawie maksymalnej częstotliwości odświeżania wyświetlacza
Gra powinna wykryć maksymalną częstotliwość odświeżania ekranu obsługiwaną przez bieżące urządzenie, np. 60 Hz, 90 Hz lub 120 Hz, i odpowiednio ograniczyć ustawienia liczby klatek na sekundę. Jeśli na przykład urządzenie obsługuje tylko częstotliwość do 60 Hz, zalecamy wyłączenie w ustawieniach gry opcji wyższych niż 60 FPS, aby nie wprowadzać gracza w błąd.