Interwencje w trybie gry są optymalizacje w kontekście gier ustawione przez producentów oryginalnego sprzętu (OEM). aby poprawić wydajność gier, które nie są już aktualizowane przez dla programistów. Na przykład:
- Użycie zmiany rozmiaru bufora wstecznego w usłudze WindowManager.
- Używanie ANGLE zamiast natywnych sterowników GLES.
Możesz uzyskać pomoc dotyczącą gier i zarządzać Game Mode API – w celu zastąpienia go. Interwencje w trybie gry realizowane przez producenta OEM.
Interfejs Game Mode API i interwencje są dostępne na tych platformach:
- wybranych urządzeniach z Androidem 12,
- urządzeń z Androidem 13 lub nowszym,
Każda gra może:
- Zaimplementuj działanie interfejsu Game Mode API.
- zaproponować producentom OEM ustawienia interwencji w trybie gry.
- Wyraźna rezygnacja z interwencji w trybie gry.
Tło
W tej sekcji opisano, czym są interwencje w trybie gry i jak je optymalizować. w każdym trybie.
Zmiana rozmiaru bufora wstecznego w usłudze WindowManager
Zmiana rozmiaru bufora wstecznego WindowManager może zmniejszyć obciążenie GPU urządzenia. Może też zmniejszyć zużycie baterii, gdy gra jest uruchomiona z docelową liczbą klatek.
Włączenie zmiany rozmiaru może spowodować zmniejszenie o 30% GPU i o 10% całego zużycie energii przez system. Wyniki mogą się różnić w zależności od używane urządzenie, warunki środowiskowe i inne czynniki, takie jak jednoczesne działanie o przetwarzaniu danych.
W grach bez tempa, które są ograniczone do GPU, prawdopodobnie będzie wyświetlana więcej klatek przy mniejszym obciążeniu GPU.
Zdecydowanie zalecamy, aby wszystkie gry w dobrym tempie, ponieważ znacznie nierównomiernie wpływają na to, jak użytkownicy postrzegają skuteczność.
Ograniczanie liczby klatek na sekundę
Ograniczanie liczby klatek na sekundę w Androidzie to interwencja trybu gry, która pomaga w grach stabilniejsza liczba klatek, co pozwala zmniejszyć zużycie baterii. Interwencja dostępne na Androidzie 13 i nowszych. Więcej więcej informacji znajdziesz w artykule z omówieniem ograniczania liczby klatek na sekundę.
Ocena interwencji w trybie gry
W tej sekcji używamy polecenia adb.
Skonfiguruj tryby
Musisz zrezygnować z trybów gry na stronie Plik konfiguracyjny trybu gry przed przetestowaniem interwencji w trybie gry. W przeciwnym razie platforma omija i respektować tylko te optymalizacje w grze.
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="false"
/>
(Opcjonalnie) Utwórz kopię zapasową istniejącej konfiguracji urządzenia
W przypadku Pixela lub innych urządzeń może być konieczna interwencja dotycząca gry . Możesz wysłać zapytanie do konfiguracji za pomocą polecenia:
adb shell device_config get game_overlay <PACKAGE_NAME>
Jeśli zapytanie zwróci wartość null
, zignoruj istniejącą konfigurację. W przeciwnym razie zapisz go.
i resetowany do niej po ocenie.
Ocena interwencji
Aby samodzielnie ocenić interwencję zmiany rozmiaru bufora wstecznego WindowManager, użyj następujące polecenie, aby ustawić różne wartości rozmiaru bufora WindowManagera trybach gry.
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
W powyższym przykładzie mode=2
to „Skuteczność”, a mode=3
to „Oszczędzanie baterii”. Wartość downscaleFactor
jest podawana jako procent, który
ma zastosowanie do ustawienia rozmiaru (np. 0,7 to 70%, a 0,8 to 80%). 90%
(0,9) zmiana rozmiaru jest niemal znikoma, a 50% (0,5) – znacząca.
Ostrzeżenie: w Androidzie 12 rozmiar procesów podrzędnych może nie być prawidłowo zmieniany. W upewnij się, że powiadomienia i wyskakujące okienka wyświetlają się poprawnie. Śr zalecamy ograniczenie zmiany rozmiaru do co najmniej 70%.
Po skonfigurowaniu nowych możliwości zmiany rozmiaru możesz przełączać się między trybami gry, aby zobaczyć, jak to działa. na grę wpływa interwencja zmiany rozmiaru bufora wstecznego WindowManagera:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Po każdym wybraniu trybu gry musisz ponownie uruchamiać grę. ograniczenie skalowania wymaga ponownego uruchomienia aplikacji.
Zrezygnuj z interwencji
Możesz określić, czy interwencja zostanie zastosowana w grze. rezygnując z subskrypcji. Każda interwencja ma własne ustawienie rezygnacji.
- Ten sam plik XML konfiguracji, który służy do kontrolowania wyrażania zgody na korzystanie z gry oraz rezygnacji z niej. Tryby są też wykorzystywane w ustawieniach interwencji:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"
/>
- Aby zrezygnować, ponownie skompiluj grę i prześlij ją ponownie.
Domyślnie interwencje określone przez producentów oryginalnego sprzętu Będą używane produkty OEM, chyba że jednoznacznie zrezygnujesz z ich używania.
Materiały
Więcej informacji o mierzeniu i optymalizowaniu wydajności gry:
Programy do profilowania systemu – analiza wykorzystania procesora i wywołań graficznych.
Android GPU Inspector – grafika profilowa włączona na urządzeniu z Androidem.
Biblioteka Android Frame Pacing – pomoc dotycząca OpenGL i Gry z obsługą interfejsu Vulkan zapewniają płynne renderowanie i prawidłowe tempo wyświetlania klatek.
Android Performance Tuner – umożliwia pomiary optymalizować na dużą skalę liczbę klatek i grafikę na urządzeniach z Androidem.
Energy Profiler – dowiedz się, gdzie zużywana jest Twoja aplikacja więcej energii, niż jest to konieczne.