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 Spiele-App 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. Wenn 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:
Abbildung 1. Informationsfluss, der anzeigt, dass ein Spiel gespielt wird.
Der GAME
Energiemodus ist immer für Apps 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:
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 Vordergrundspiel-App eine höhere CPU-Priorität zu
- Reduzieren Sie den CPU-Boost, der für normale Apps, 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.