Interfejs Game Mode API pozwala zoptymalizować grę pod kątem maksymalnej wydajności lub jak najdłuższego czasu pracy na baterii, gdy użytkownik wybierze odpowiedni tryb gry.
Możesz też przesłać prośbę o interwencje w trybie gry, aby poprawić wydajność gier, które nie są już aktualizowane przez deweloperów.
Interfejs Game Mode API i interwencje są dostępne na tych urządzeniach:
- wybranych urządzeniach z Androidem 12,
- urządzeń z Androidem 13 lub nowszym;
Każda gra może implementować działanie interfejsu Game Mode API, proponować producentom ustawienia interwencji w trybie gry lub zrezygnować z interwencji w trybie gry.
Skonfiguruj
Aby korzystać w grze z interfejsu Game Mode API:
Pobierz i zainstaluj pakiet SDK do Androida 13.
W pliku
AndroidManifest.xml
zadeklaruj aplikację jako grę, ustawiając atrybutappCategory
w elemencie<application>
:
android:appCategory="game"
- Wyświetl zapytanie dotyczące bieżącego trybu gry, dodając ten fragment do swojej głównej aktywności:
Java
// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
// Get GameManager from SystemService
GameManager gameManager = Context.getSystemService(GameManager.class);
// Returns the selected GameMode
int gameMode = gameManager.getGameMode();
}
Kotlin
// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Get GameManager from SystemService
val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?
// Returns the selected GameMode
val gameMode = gameManager?.gameMode
}
Obsługiwany tryb gry | Opis |
---|---|
NIEOBSŁUGIWANE | Gra nie deklaruje obsługi interfejsu Game Mode API ani nie obsługuje interwencji w trybie gry. |
STANDARDOWA | Użytkownik nie wybrał trybu gry lub trybu standardowego. |
WYKONYWANIE | Najniższa liczba klatek na sekundę w zamian za skrócenie czasu pracy na baterii i jakości obrazu. |
BATERIA | Najdłuższa możliwa żywotność baterii w zamian za niższą jakość obrazu lub mniejszą liczbę klatek. |
Dodaj kod, który będzie wysyłać zapytanie dotyczące stanu trybu gry w funkcji
onResume
:
Sprawdzone metody
Jeśli Twoja gra obsługuje już wiele docelowych poziomów jakości i liczby klatek, określ odpowiednie ustawienia wydajności i trybów oszczędzania baterii:
Aby konsekwentnie osiągać maksymalną liczbę klatek na urządzeniu, rozważ niewielkie zmniejszenie jakości i skorzystanie z większej liczby klatek.
Aby wydłużyć czas pracy na baterii: rozważ wybranie niższej częstotliwości odświeżania wyświetlacza (np. 30 Hz lub 60 Hz) i określenia tempa wyświetlania klatek, by obniżyć częstotliwość odświeżania.
W przypadku gier z wysokiej jakości obrazu, takich jak strzelanki FPP, gry wieloosobowe online (MOBA) i gry fabularne (RPG), należy skupić się na uzyskaniu wysokiej stałej liczby klatek, aby zmaksymalizować zaangażowanie użytkownika.
Zarówno w grach wysokiej jakości, jak i w grach rekreacyjnych warto korzystać z trybu oszczędzania baterii, który pozwala wydłużyć czas gry przez zmniejszenie maksymalnej liczby klatek.
Deklarowanie obsługi trybów gry
Aby zadeklarować obsługę trybów gry i zastąpić wszelkie interwencje producentów OEM w trybie gry, najpierw dodaj konfigurację trybu gry do elementu <application>
w pliku AndroidManifest.xml
:
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
Następnie w katalogu res/xml/
projektu utwórz plik game_mode_config.xml
z tą zawartością:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="true"
android:supportsPerformanceGameMode="true"
/>
Przełącz tryby gry
Między trybami gry możesz się przełączać za pomocą panelu gier (dostępnego na urządzeniach Pixel) lub podobnych aplikacji dostarczanych przez producentów OEM. Podczas programowania możesz też użyć polecenia powłoki Trybu gry.
Jeśli korzystasz z panelu gier, a po uruchomieniu gry nie wyświetla się ikona optymalizacji, być może musisz przesłać aplikację do Konsoli Google Play i zainstalować ją ze Sklepu Play. Informacje o testowaniu aplikacji w Sklepie Play znajdziesz w artykule Wewnętrzne udostępnianie pakietów aplikacji i plików APK.
Rysunek 1. Panel gier wyświetlany z nałożonym rozgrywką na urządzeniu Pixel.
Na ilustracji 1 można zmienić tryb gry za pomocą widżetu optymalizacji. Jak widać w widżecie, gra działa obecnie w trybie PERFORMANCE
.
Jeśli w fazie tworzenia aplikacji używasz urządzenia bez panelu gier, a producent nie umożliwia ustawienia trybu gry w przypadku każdej aplikacji, stan trybu gry możesz zmienić za pomocą polecenia adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Przykładowa aplikacja
Przykładowy interfejs Game Mode API wyjaśnia, jak zoptymalizować liczbę klatek na sekundę i ograniczenie rozdzielczości renderowania, aby oszczędzać około 25% energii w aplikacjach.
Dalej
Przeczytaj artykuł Interwencje w trybie gry, aby dowiedzieć się, jak poprawić wydajność gry, gdy nie można zaktualizować gry.