Ab Android 14 ermöglicht ein neuer Energiesparmodus namens GAME
im Android Dynamic Performance Framework (ADPF) die Anpassung der Smartphone-Leistung beim Spielen. GAME
gibt dem Power HAL an, dass sich eine Spiele-App im Vordergrund befindet. Anhand dieser Angabe kann die Power HAL Energieverwaltungsstrategien anwenden, während ein Spiel gespielt wird, damit der Nutzer eine stabile und verbesserte Leistung erfährt.
Um die Ladezeit eines Spiels zu verbessern, wird in Android 13 in ADPF ein neuer Energiesparmodus namens GAME_LOADING
eingeführt. GAME_LOADING
gibt an, ob sich eine Spiele-App im Ladevorgang befindet, damit die Power HAL einen Ladeschub liefern kann. Anhand dieser Angabe kann die Power HAL Maßnahmen zur Leistungssteigerung ergreifen, um die Ladezeit des Spiels zu verkürzen.
Auf dieser Seite wird beschrieben, wie die Spiel-App den Spielstatus an die Power HAL übergibt, wie Sie die Power HAL konfigurieren, um sie auf Ihren Geräten zu nutzen, und wie Sie Ihre Power HAL-Implementierung testen.
Erkennung und Benachrichtigung über den Energiesparmodus
In diesem Abschnitt wird beschrieben, wie der Energiemanager mit den Modi GAME
und GAME_LOADING
umgeht.
Spielmodus
Der neue Energiesparmodus GAME
in Android 14 gibt dem Energiemanagerdienst an, dass der Nutzer ein Spiel spielt. Wenn die Power HAL über den GAME
-Modus informiert wird, kann sie die Leistung anpassen, um die Leistung zu verbessern, die Temperatur zu senken und die Akkulaufzeit zu verlängern, während das Spiel läuft.
In der folgenden Abbildung wird der Informationsfluss an die Power HAL erläutert, um den GAME
-Energiesparmodus anzugeben:
Abbildung 1. Ein Informationsfluss, der angibt, dass ein Spiel gerade gespielt wird.
Der Energiesparmodus GAME
wird immer für Apps mit einer appCategory
von GAME
in AndroidManifest.xml
festgelegt.
Energiesparmodus „GAME_LOADING“
Der Lade-Boost-Modus erkennt, wenn sich eine Spiele-App im Ladestatus befindet, und benachrichtigt den Power-HAL. Mit Android 13 wird in der API für Entwickler ein neuer Spielstatus namens isLoading
eingeführt.
In diesem Spielstatus wird der neue GAME_LOADING
-Energiesparmodus im Energiemanagerdienst verwendet, um die Power HAL über den Spielstatus der obersten Ebene zu informieren. Sobald die Power HAL über den Ladestatus des Spiels informiert wurde, kann sie die Leistungseinstellungen und die CPU-Taktrate der Plattform anpassen, was zu kürzeren Ladezeiten führt.
Um anzugeben, dass ein Spiel geladen wird, setzt die Spiel-App über das Dashboard für Spiele einen isLoading
-Status im Game Manager. Der Game Manager übergibt diesen Status an den Game Manager-Dienst, der setPowerMode
mit dem neuen Energiesparmodus GAME_LOADING
verwendet, um den Energiemanagerdienst aufzurufen. Der Energiemodus GAME_LOADING
zeigt dem Power-HAL an, dass sich das Spiel im Ladestatus befindet, damit der Power-HAL einen Lade-Boost durchführen kann.
Die folgende Abbildung veranschaulicht den Informationsfluss von der App zum PowerHAL, um den Ladestatus anzugeben:
Abbildung 2. Ein Informationsfluss, der angibt, dass sich ein Spiel im Ladevorgang befindet.
Auf dem Dashboard für Spiele können Nutzer die Lade-Boost-Funktion über die Leistungseinstellung aktivieren oder deaktivieren. Die Einstellung für die Leistung ist standardmäßig immer deaktiviert.
Power HAL mit GAME und GAME_LOADING anpassen
Um die Vorteile der Modi GAME
und GAME_LOADING
nutzen zu können, müssen OEMs ihre Implementierung der Power HAL anpassen.
Da die Energieverwaltung und Leistungssteigerung hardwarespezifisch sind, werden keine Referenzimplementierungen für die Modi GAME
oder GAME_LOADING
verfügbar gemacht, bis eine Referenzimplementierung für das Google Pixel-Gerät veröffentlicht wird.
Um die Leistung im GAME
- und GAME_LOADING
-Modus zu verbessern, können OEMs eine Kombination der folgenden Maßnahmen implementieren:
- Framerate stabilisieren
- CPU-Taktfrequenz erhöhen
- Temperaturdrosselung vorübergehend reduzieren
- Der App im Vordergrund eine höhere CPU-Priorität zuweisen
- CPU-Boost für normale Apps, die keine Spiele sind, reduzieren
- Die thermische Strategie zur Leistungsverteilung optimieren
Implementierung des GAME-Modus testen
Wenn Sie die Implementierung des GAME
-Modus testen möchten, 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.
In diesem Test wird geprüft, ob GameManager::setGameContext()
mit einem isLoading
-Kontext den Spiellademodus im Power HAL im Leistungsmodus aufruft.