Zwiększenie wydajności w grach

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 :

game-mode

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:

loading-boost

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 gry działają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.