Począwszy od Androida 14, nowy tryb zasilania o nazwie GAME
w Android Dynamic Performance Framework (ADPF) umożliwia dostosowanie
i wydajność telefonu podczas gry. GAME
wskazuje Power HAL, że
gra gra na pierwszym planie. Dzięki temu wskaźnikowi Power HAL może
przyjmować strategie zarządzania energią podczas gry,
ma stabilną i zwiększoną wydajność.
Aby poprawić czas wczytywania gry, Android
13 wprowadza nowy tryb zasilania o nazwie GAME_LOADING
w ramach ADPF. GAME_LOADING
wskazuje, czy gra jest w stanie wczytywania, więc
HAL Power HAL może przyspieszyć wczytywanie. To wskazanie zezwala na kod HAL zasilania
aby zapewnić środki zwiększające wydajność, które mogą przyspieszyć wczytywanie gry
obecnie się znajdujesz.
Na tej stronie dowiesz się, w jaki sposób gra przebiega przez aplikację stanu gry na Power HAL, wyjaśnia, jak skonfigurować Power HAL, aby jak możesz wykorzystać ten potencjał na swoich urządzeniach i jak przetestować HAL Power HAL implementacji.
Wykrywanie trybu zasilania i powiadomienia
W tej sekcji opisaliśmy, jak usługa Power Manager obsługuje tryby GAME
i GAME_LOADING
.
Tryb zasilania GAME
Nowy tryb zasilania GAME
w Androidzie 14 wskazuje
usługa Power Manager,
że użytkownik gra w grę. Gdy GAME
Power HAL otrzymuje powiadomienie
może dostosować zasilanie, aby poprawić wydajność, obniżyć temperaturę i wydłużyć
baterii podczas grania.
Poniższy rysunek opisuje przepływ informacji do Power HAL do
wskazują tryb zasilania urządzenia GAME
:
Rysunek 1. Przepływ informacji wskazujący, że właśnie grasz w grę.
Tryb zasilania w trybie GAME
jest zawsze ustawiony w przypadku aplikacji z urządzeniem appCategory
z GAME
w AndroidManifest.xml
.
GAME_LOADING tryb zasilania
Tryb przyspieszenia wczytywania wykrywa, kiedy gra jest w trakcie wczytywania.
i powiadamiać Power HAL. Android 13
wprowadziliśmy nowy stan gry o nazwie isLoading
w interfejsie API dla programistów.
Ten stan gry używa nowej wersji GAME_LOADING
trybu zasilania w usłudze Power Manager, aby powiadamiać usługę Power HAL o górnym
poziom gry. Gdy HAL Power HAL otrzyma powiadomienie o stanie wczytywania gry,
może dostosować ustawienia wydajności
i częstotliwość procesora,
czas wczytywania strony.
Aby zasygnalizować, że gra się wczytuje, w panelu gier ustawia ona
isLoading
stan w Menedżerze gier. Menedżer gry przekazuje ten stan grze.
Usługa menedżera, która używa setPowerMode
z nowym GAME_LOADING
trybu zasilania w celu wywołania usługi menedżera zasilania. Tryb zasilania w trybie GAME_LOADING
wskazuje Power HAL, że gra jest w
stan wczytywania, dzięki czemu HAL Power HAL może przyspieszyć wczytywanie.
Na poniższym rysunku opisano przepływ informacji z aplikacji do Zasilania HAL wskazujący stan wczytywania:
Rysunek 2. Przepływ informacji wskazujący, że gra jest w stanie wczytywania.
Panel gry umożliwia użytkownikom włączanie i wyłączanie funkcji przyspieszania wczytywania za pomocą ustawienia wydajności. Ustawienie Wydajność jest zawsze domyślnie wyłączone.
Dostosuj zasilanie HAL za pomocą GAME i GAME_LOADING
Aby korzystać z trybów GAME
i GAME_LOADING
, producenci OEM muszą
dostosować implementację panelu HAL Power.
Zarządzanie zasilaniem i zwiększanie wydajności jest specyficzne dla sprzętu, dlatego nie ma tu odniesienia
implementacje trybów GAME
i GAME_LOADING
są dostępne do
została opublikowana implementacja referencyjna dla urządzenia Google Pixel.
Aby zwiększyć wydajność w trybach GAME
i GAME_LOADING
, producenci OEM mogą
Zaimplementuj kombinację tych środków:
- Stabilizacja liczby klatek
- Zwiększ taktowanie procesora
- Tymczasowe ograniczanie ograniczania temperatury
- Przypisz wyższy priorytet procesora do gry na pierwszym planie
- Zmniejszenie mocy procesora ustawione dla zwykłych aplikacji innych niż gry
- Optymalizacja strategii dystrybucji energii związanej z temperaturą
Testowanie implementacji trybu GAME
Aby przetestować implementację trybu GAME
, użyj testów poprzedzonych ciągiem
testGamePowerMode_
w: GameManagerServiceTests.java
.
Testowanie implementacji GAME_LOADING
Aby przetestować implementację trybu GAME_LOADING
, użyj narzędzia android.gamemanager.cts.GameManagerTest#testSetGameContext
.
W ramach tego testu sprawdzamy, czy GameManager::setGameContext()
z isLoading
wywołuje tryb wczytywania gry w Power HAL w trybie wydajności.