Interfejs Game Mode API umożliwia optymalizację gry pod kątem najlepszej wydajności lub najdłuższego czasu pracy na baterii, gdy użytkownik wybierze odpowiedni tryb gry.
Możesz też przesyłać prośby 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:
- wybrane urządzenia z Androidem 12,
- urządzenia z Androidem 13 lub nowszym.
Każda gra może implementować zachowanie interfejsu Game Mode API, proponować producentom OEM ustawienia interwencji w trybie gry lub zrezygnować z interwencji w trybie gry.
Konfiguracja
Aby używać interfejsu Game Mode API w grze:
Pobierz i zainstaluj pakiet Android 13 SDK.
W pliku
AndroidManifest.xmlzadeklaruj aplikację jako grę, ustawiając atrybutappCategoryw elemencie<application>:
android:appCategory="game"
- Aby sprawdzić bieżący tryb gry, dodaj ten kod do głównego działania:
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 i nie obsługuje interwencji w trybie gry. |
| STANDARD | Użytkownik nie wybrał trybu gry lub wybrał tryb standardowy. |
| WYKONYWANIE | Zapewnia najniższe opóźnienie i liczbę klatek na sekundę kosztem krótszego czasu pracy na baterii i niższej jakości. |
| BATERIA | Zapewnia najdłuższy możliwy czas pracy na baterii kosztem niższej jakości lub liczby klatek na sekundę. |
Dodaj kod, aby sprawdzić stan trybu gry w funkcji
onResume:
Sprawdzone metody
Jeśli Twoja gra obsługuje już wiele docelowych wartości jakości i liczby klatek na sekundę, musisz określić odpowiednie ustawienia dla trybów wydajności i oszczędzania baterii:
Aby stale osiągać maksymalną liczbę klatek na sekundę na urządzeniu, rozważ niewielkie zmniejszenie jakości, aby uzyskać wyższą liczbę klatek na sekundę.
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 użyj synchronizacji klatek, aby osiągnąć niższą częstotliwość.
W przypadku gier o wysokiej jakości, takich jak strzelanki pierwszoosobowe, gry MOBA i RPG, należy skupić się na osiągnięciu wysokiej i stałej liczby klatek na sekundę, aby zmaksymalizować immersję użytkownika.
Zarówno w przypadku gier o wysokiej jakości, jak i gier casualowych należy obsługiwać tryb oszczędzania baterii, aby wydłużyć czas gry przez zmniejszenie maksymalnej liczby klatek na sekundę.
Deklarowanie obsługi trybów gry
Aby zadeklarować obsługę trybów gry i zastąpić wszelkie interwencje w trybie gry przez
producentów OEM, najpierw dodaj konfigurację trybu gry do
<application> elementu w pliku
AndroidManifest.xml:
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
Następnie utwórz plik game_mode_config.xml w katalogu res/xml/ projektu 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łączanie trybów gry
Aby przełączać się między trybami gry, możesz użyć panelu gier (dostępnego na urządzeniach Pixel) lub podobnych aplikacji dostarczonych przez producentów OEM. Podczas programowania możesz też użyć polecenia powłoki trybu gry.
Jeśli używasz panelu gier, a po uruchomieniu gry nie wyświetla się ikona optymalizacji , może być konieczne przesłanie aplikacji do Konsoli Google Play i zainstalowanie jej ze Sklepu Play. Więcej informacji 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 jako nakładka na uruchomioną grę na urządzeniu Pixel.
Na rysunku 1 tryb gry uruchomionej gry można zmienić za pomocą widżetu optymalizacji. Jak widać na widżecie, gra jest obecnie uruchomiona w trybie
PERFORMANCE.
Jeśli podczas programowania używasz urządzenia bez panelu gier, a producent nie udostępnia żadnego sposobu ustawienia trybu gry dla każdej aplikacji, możesz zmienić stan trybu gry za pomocą adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>Przykładowa aplikacja
Przykład interfejsu Game Mode API pokazuje, jak zoptymalizować liczbę klatek na sekundę i limity rozdzielczości renderowania, aby zaoszczędzić około 25% energii w aplikacjach.
Dalej
Przeczytaj artykuł Interwencje w trybie gry , aby poprawić wydajność gry, gdy nie można udostępnić jej aktualizacji.