Leistungssteigerung für Spiele

Ab Android 14 ermöglicht ein neuer Energiemodus namens GAME im Android Dynamic Performance Framework (ADPF) die Anpassung der Telefonleistung während der Spielnutzung. GAME zeigt dem Power HAL an, dass eine Spielanwendung im Vordergrund steht. Diese Anzeige ermöglicht es dem Power HAL, Energieverwaltungsstrategien anzuwenden, wenn ein Spiel gespielt wird, sodass der Benutzer eine stabile und verbesserte Leistung erfährt.

Um die Ladezeit eines Spiels zu verbessern, führt Android 13 einen neuen Energiemodus namens GAME_LOADING in ADPF ein. GAME_LOADING gibt an, ob sich eine Spiele-App im Ladezustand befindet, sodass der Power HAL für einen Ladeschub sorgen kann. Diese Angabe ermöglicht es dem Power HAL, leistungssteigernde Maßnahmen bereitzustellen, die die Ladezeit des Spiels beschleunigen können.

Auf dieser Seite wird beschrieben, wie die Spiele-App den Spielstatus an Power HAL übergibt. Außerdem wird erläutert, wie Sie Power HAL konfigurieren, um es auf Ihren Geräten zu nutzen, und wie Sie Ihre Power HAL-Implementierung testen.

Erkennung und Benachrichtigung des Energiemodus

In diesem Abschnitt wird beschrieben, wie der Power Manager mit den Modi GAME und GAME_LOADING umgeht.

GAME Power-Modus

Der neue Energiemodus GAME in Android 14 zeigt dem Power Manager Service an, dass der Benutzer ein Spiel spielt. Sobald der Power HAL über den GAME Modus informiert wird, kann er die Leistung anpassen, um die Leistung zu steigern, die Temperatur zu senken und die Batterielebensdauer zu verlängern, während das Spiel gespielt wird.

Die folgende Abbildung erläutert den Informationsfluss zum Power HAL, um den GAME Power-Modus anzuzeigen:

game-mode

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

Der GAME Energiemodus ist immer für Anwendungen mit der appCategory GAME in AndroidManifest.xml festgelegt.

GAME_LOADING Energiemodus

Der Load-Boost-Modus funktioniert, indem er erkennt, wann sich eine Spiel-App im Ladezustand befindet, und den Power HAL benachrichtigt. Android 13 führt einen neuen Spielstatus namens isLoading in der entwicklerorientierten API ein. Dieser Spielstatus verwendet den neuen GAME_LOADING Energiemodus im Power Manager-Dienst, um den Power HAL über den Spielstatus der obersten Ebene zu benachrichtigen. Sobald der Power HAL über den Ladestatus des Spiels informiert wird, kann er die Leistungseinstellungen und die CPU-Taktrate der Plattform anpassen, was zu verbesserten Ladezeiten führt.

Um anzuzeigen, dass ein Spiel geladen wird, verwendet die Spiele-App das Game Dashboard, um im Game Manager den Status isLoading festzulegen. Der Game Manager übergibt diesen Status an den Game Manager-Dienst, der setPowerMode mit dem neuen GAME_LOADING Energiemodus verwendet, um den Power Manager-Dienst aufzurufen. Der GAME_LOADING Leistungsmodus zeigt dem Power HAL an, dass sich das Spiel in einem Ladezustand befindet, sodass der Power HAL einen Ladeschub bereitstellen kann.

Die folgende Abbildung erläutert den Informationsfluss von der App zum Power HAL zur Anzeige des Ladezustands:

loading-boost

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

Über das Spiel-Dashboard können Benutzer die Ladeboost-Funktion mit der Leistungseinstellung ein- oder ausschalten. Die Leistungseinstellung ist standardmäßig immer ausgeschaltet.

Passen Sie Power HAL mit GAME und GAME_LOADING an

Um die Vorteile der GAME und GAME_LOADING -Modi nutzen zu können, müssen OEMs ihre Implementierung des Power HAL anpassen. Da Energieverwaltung und Leistungssteigerung hardwarespezifisch sind, werden keine Referenzimplementierungen für die Modi GAME oder GAME_LOADING zur Verfügung gestellt, bis eine Referenzimplementierung für das Google Pixel-Gerät veröffentlicht wird.

Um die Leistung in einem GAME und GAME_LOADING Modus zu verbessern, können OEMs eine Kombination der folgenden Maßnahmen implementieren:

  • Bildrate stabilisieren
  • Erhöhen Sie die CPU-Taktgeschwindigkeit
  • Reduzieren Sie vorübergehend die Temperaturdrosselung
  • Weisen Sie der Vordergrundspielanwendung eine höhere CPU-Priorität zu
  • Reduzieren Sie den CPU-Boost, der für normale Anwendungen, die keine Spiele sind, optimiert ist
  • Optimieren Sie die wärmebezogene Energieverteilungsstrategie

Testen Sie die Implementierung des GAME-Modus

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

Testen Sie die GAME_LOADING-Implementierung

Um die Implementierung des GAME_LOADING Modus zu testen, verwenden Sie android.gamemanager.cts.GameManagerTest#testSetGameContext . Dieser Test überprüft, ob GameManager::setGameContext() mit einem isLoading Kontext den Spiellademodus auf dem Power HAL im Leistungsmodus aufruft.