Wyższa wydajność w grach

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:

tryb gry

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:

Boost

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.