Począwszy od Androida 14, nowy tryb zasilania o nazwie GAME
w Android Dynamic Performance Framework (ADPF) umożliwia dostosowywanie wydajności telefonu podczas korzystania z gier. GAME
wskazuje Power HAL, że aplikacja gra jest na pierwszym planie. To wskazanie umożliwia Power HAL przyjęcie strategii zarządzania energią podczas grania w grę, dzięki czemu użytkownik może cieszyć się stabilną i lepszą wydajnością.
Aby skrócić czas ładowania gry, w systemie Android 13 wprowadzono nowy tryb zasilania o nazwie GAME_LOADING
w ADPF. GAME_LOADING
wskazuje, czy aplikacja gry jest w stanie ładowania, dzięki czemu Power HAL może zapewnić przyspieszenie ładowania. To wskazanie umożliwia Power HAL zapewnienie środków zwiększających wydajność, które mogą przyspieszyć czas ładowania gry.
Na tej stronie opisano, w jaki sposób aplikacja gry przekazuje stan gry do Power HAL, wyjaśnia, jak skonfigurować Power HAL, aby móc z niej korzystać na swoich urządzeniach, a także jak przetestować implementację Power HAL.
Wykrywanie i powiadamianie o trybie zasilania
W tej sekcji opisano, jak Power Manager obsługuje tryby GAME
i GAME_LOADING
.
Tryb mocy GAME
Nowy tryb zasilania GAME
w systemie Android 14 wskazuje usłudze Power Manager , że użytkownik gra w grę. Gdy Power HAL zostanie powiadomiony o trybie GAME
, może dostosować moc, aby poprawić wydajność, obniżyć temperaturę i wydłużyć żywotność baterii podczas gry.
Poniższy rysunek wyjaśnia przepływ informacji do Power HAL w celu wskazania trybu zasilania GAME
:
Rysunek 1. Przepływ informacji wskazujący, że toczy się gra.
Tryb zasilania GAME
jest zawsze ustawiony dla aplikacji z appCategory
GAME
w pliku AndroidManifest.xml
.
GAME_LOADING tryb zasilania
Tryb przyspieszenia ładowania działa poprzez wykrywanie, kiedy aplikacja gry jest w stanie ładowania i powiadamianie Power HAL. W systemie Android 13 w interfejsie API przeznaczonym dla programistów wprowadzono nowy stan gry o nazwie isLoading
. Ten stan gry korzysta z nowego trybu zasilania GAME_LOADING
w usłudze Power Manager w celu powiadamiania Power HAL o stanie gry najwyższego poziomu. Po powiadomieniu Power HAL o stanie ładowania gry może dostosować ustawienia wydajności platformy i częstotliwość taktowania procesora, co skutkuje skróceniem czasu ładowania.
Aby wskazać, że gra się ładuje, aplikacja używa Panelu gry do ustawienia stanu isLoading
w Menedżerze gier. Game Manager przekazuje ten stan do usługi Game Manager Service, która używa setPowerMode
z nowym trybem zasilania GAME_LOADING
do wywołania usługi Power Manager. Tryb zasilania GAME_LOADING
wskazuje Power HAL , że gra jest w stanie ładowania, dzięki czemu Power HAL może zapewnić przyspieszenie ładowania.
Poniższy rysunek wyjaśnia przepływ informacji z aplikacji do Power HAL w celu wskazania stanu ładowania:
Rysunek 2. Przepływ informacji wskazujący, że gra jest w stanie ładowania.
Panel gry umożliwia użytkownikom włączanie i wyłączanie funkcji przyspieszania ładowania za pomocą ustawień wydajności. Ustawienie wydajności zawsze jest domyślnie wyłączone.
Dostosuj Power HAL za pomocą GAME
i GAME_LOADING
Aby skorzystać z trybów GAME
i GAME_LOADING
, producenci OEM muszą dostosować swoją implementację Power HAL . Ponieważ zarządzanie energią i zwiększanie wydajności zależy od sprzętu, nie są udostępniane żadne referencyjne implementacje trybów GAME
ani GAME_LOADING
, dopóki nie zostanie udostępniona referencyjna implementacja dla urządzenia Google Pixel.
Aby zwiększyć wydajność w trybach GAME
i GAME_LOADING
, producenci OEM mogą wdrożyć kombinację następujących środków:
- Ustabilizuj liczbę klatek na sekundę
- Zwiększ prędkość zegara procesora
- Tymczasowo zmniejsz dławienie temperatury
- Przypisz wyższy priorytet procesora do aplikacji grającej na pierwszym planie
- Zmniejsz przyspieszenie procesora dostosowane do zwykłych aplikacji innych niż gry
- Zoptymalizuj strategię dystrybucji mocy związaną z ciepłem
Przetestuj implementację trybu GRA
Aby przetestować implementację trybu GAME
, użyj testów z przedrostkiem testGamePowerMode_
w GameManagerServiceTests.java
.
Przetestuj implementację GAME_LOADING
Aby przetestować implementację trybu GAME_LOADING
, użyj android.gamemanager.cts.GameManagerTest#testSetGameContext
. Ten test sprawdza, czy GameManager::setGameContext()
z kontekstem isLoading
wywołuje tryb ładowania gry na platformie Power HAL w trybie wydajności.