Leistungssteigerung für Spiele

Ab Android 14 gibt es einen neuen Energiemodus namens GAME im Android Dynamic Performance Framework (ADPF) ermöglicht die Anpassung die Leistung des Smartphones während der Spielnutzung. GAME zeigt dem Power-HAL an, dass ein eine Spiele-App im Vordergrund. Diese Anzeige ermöglicht es dem Power HAL, Energiesparstrategien anwenden, wenn ein Spiel gespielt wird, eine stabile und verbesserte Leistung.

Um die Ladezeit eines Spiels zu verbessern, Version 13 führt einen neuen Strommodus namens GAME_LOADING ein. im Rahmen des ADPF. GAME_LOADING gibt an, ob sich eine Spiele-App im Ladestatus befindet, sodass kann der Power-HAL für einen Ladeschub sorgen. Dadurch kann der Power HAL um die Leistung zu steigern und das Laden von Spielen zu beschleunigen. .

Auf dieser Seite wird beschrieben, wie die Spiele-App funktioniert. Spielstatus an den Power-HAL und erklärt, wie Power-HAL konfiguriert wird, um und wie du deinen Power HAL testest Implementierung.

Erkennung und Benachrichtigung im Energiesparmodus

In diesem Abschnitt wird beschrieben, wie Power Manager die Modi GAME und GAME_LOADING verarbeitet.

GAME-Power-Modus

Der neue Energiemodus GAME in Android 14 zeigt an, dass den Power Manager-Dienst dass die Nutzenden ein Spiel spielen. Wenn der Power-HAL über die GAME benachrichtigt wird kann die Stromversorgung angepasst werden, um die Leistung zu verbessern, die Temperatur zu senken und während das Spiel läuft.

Die folgende Abbildung erklärt den Informationsfluss zum Power HAL zur geben Sie den GAME-Energiesparmodus an:

Spielmodus

Abbildung 1: Informationsfluss, der anzeigt, dass ein Spiel gespielt wird.

Der GAME-Energiesparmodus ist bei Apps mit appCategory immer festgelegt von GAME in AndroidManifest.xml.

GAME_LOADING-Energiesparmodus

Der Lade-Boost-Modus erkennt, wenn sich eine Spiele-App in einem Lademodus befindet und das Power-HAL benachrichtigen. Android 13 führt einen neuen Spielstatus namens isLoading in der API für Entwickler ein. Für diesen Spielstatus wird das neue GAME_LOADING verwendet im Power Manager-Dienst ein, um das Power-HAL über die Level-Spielstatus. Sobald der Power-HAL über den Ladestatus des Spiels benachrichtigt wurde, die Leistungseinstellungen und die CPU-Taktrate der Plattform anpassen, zu kürzeren Ladezeiten.

Um anzuzeigen, dass ein Spiel geladen wird, verwendet die Spiele-App das Dashboard für Spiele, um isLoading im Spiel-Manager angezeigt. Der Spielmanager übergibt diesen Status an das Spiel. Manager-Dienst, der setPowerMode verwendet mit dem neuen GAME_LOADING Power-Modus zum Aufrufen des Power Manager-Dienstes. Der GAME_LOADING-Energiesparmodus zeigt dem Power-HAL an, dass sich das Spiel in einem Ladezustand, damit der Power-HAL einen Lade-Boost durchführen kann.

Die folgende Abbildung erklärt den Informationsfluss von der App zum Power-up HAL, um den Ladestatus anzuzeigen:

Lade-Boost

Abbildung 2: Informationsfluss, der anzeigt, dass sich ein Spiel im Ladestatus befindet.

Im Dashboard für Spiele können Nutzer die Lade-Boost-Funktion die Leistungseinstellung an. Die Leistungseinstellung ist standardmäßig deaktiviert.

Personalisiere Power HAL mit GAME und GAME_LOADING

Um die Modi GAME und GAME_LOADING nutzen zu können, müssen OEMs ihre Implementierung des Power HAL anpassen. Da Energieverwaltung und Leistungsoptimierung hardwarespezifisch sind, gibt es keine Hinweise darauf. Implementierungen für die Modi GAME oder GAME_LOADING sind verfügbar bis wird eine Referenzimplementierung für Google Pixel veröffentlicht.

Um die Leistung im GAME- und GAME_LOADING-Modus zu verbessern, können OEMs die folgenden Maßnahmen zu kombinieren:

  • Framerate stabilisieren
  • CPU-Taktgeschwindigkeit erhöhen
  • Temperaturdrosselung vorübergehend reduzieren
  • Der Spiele-App im Vordergrund eine höhere CPU-Priorität zuweisen
  • CPU-Boost für normale Apps, die keine Spiele sind, reduzieren
  • Die thermische Stromverteilungsstrategie optimieren

GAME-Modus-Implementierung testen

Um die Implementierung des GAME-Modus zu testen, verwenden Sie Tests mit dem Präfix testGamePowerMode_ in GameManagerServiceTests.java.

GAME_LOADING-Implementierung testen

Verwenden Sie android.gamemanager.cts.GameManagerTest#testSetGameContext, um die Implementierung des GAME_LOADING-Modus zu testen. Dieser Test prüft, ob GameManager::setGameContext() mit einem isLoading Kontext ruft den Lademodus des Spiels auf dem Power-HAL im Leistungsmodus auf.