Leistungssteigerung für Spiele

Ab Android 14 ermöglicht ein neuer Energiesparmodus namens GAME im Android Dynamic Performance Framework (ADPF) die Anpassung der Smartphone-Leistung während der Verwendung von Spielen. GAME gibt dem Power HAL an, dass sich eine Spiele-App im Vordergrund befindet. Diese Angabe ermöglicht es dem Power HAL, Energieverwaltungsstrategien zu übernehmen, wenn ein Spiel gespielt wird, damit der Nutzer eine stabile und verbesserte Leistung erhält.

Um die Ladezeit eines Spiels zu verbessern, wird in Android 13 ein neuer Energiesparmodus namens GAME_LOADING in ADPF eingeführt. GAME_LOADING gibt an, ob sich eine Spiele-App im Ladestatus befindet, damit das Power HAL einen Lade-Boost bereitstellen kann. Dadurch kann die Power HAL leistungssteigernde Maßnahmen ergreifen, die die Ladezeit des Spiels verkürzen.

Auf dieser Seite wird beschrieben, wie die Spiele-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 bei Stromsparmodus

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

GAME-Energiemodus

Der neue Energiesparmodus GAME in Android 14 signalisiert dem Power Manager Service, dass der Nutzer ein Spiel spielt. Wenn die Power HAL über den GAME-Modus benachrichtigt 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 gespielt wird.

Die folgende Abbildung zeigt den Informationsfluss zur Power HAL, um den GAME-Energiesparmodus anzugeben:

game-mode

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

Der Energiesparmodus GAME ist immer für Apps mit einem appCategory von GAME in AndroidManifest.xml festgelegt.

Modus „GAME_LOADING“

Der Lade-Boost-Modus funktioniert, indem erkannt wird, wenn sich eine Spiele-App im Ladestatus befindet, und die Power HAL benachrichtigt wird. In Android 13 wird in der API für Entwickler ein neuer Spielstatus namens isLoading eingeführt. Dieser Spielstatus verwendet den neuen GAME_LOADING-Energiesparmodus im Power Manager Service, um die Power HAL über den Spielstatus auf höchster Ebene zu informieren. Sobald die Power HAL über den Ladestatus des Spiels informiert wird, 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, legt die Spiele-App im Game Dashboard im Game Manager den Status isLoading fest. Der Game Manager übergibt diesen Status an den Game Manager Service, der setPowerMode mit dem neuen GAME_LOADING-Energiesparmodus verwendet, um den Power Manager Service aufzurufen. Der GAME_LOADING-Energiemodus weist die Power HAL darauf hin, dass sich das Spiel in einem Ladestatus befindet, damit die Power HAL einen Lade-Boost bereitstellen kann.

Die folgende Abbildung zeigt den Informationsfluss von der App zum Power HAL, um den Ladestatus anzugeben:

Lade-Boost

Abbildung 2: Informationsfluss, der angibt, dass ein Spiel geladen wird.

Im Spieledashboard können Nutzer die Funktion zum schnelleren Laden über die Leistungseinstellung aktivieren oder deaktivieren. Die Leistungseinstellung ist standardmäßig immer deaktiviert.

Power HAL mit GAME und GAME_LOADING anpassen

Damit OEMs die Modi GAME und GAME_LOADING nutzen können, müssen sie ihre Implementierung des Power HAL anpassen. Da die Energieverwaltung und Leistungssteigerung hardwarespezifisch sind, werden keine Referenzimplementierungen für die Modi GAME oder GAME_LOADING bereitgestellt, 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
  • Temperaturbegrenzung vorübergehend reduzieren
  • Der im Vordergrund ausgeführten Spiele-App eine höhere CPU-Priorität zuweisen
  • CPU-Boost für reguläre Apps (keine Spiele) reduzieren
  • Strategie für die thermische Leistungsverteilung optimieren

Implementierung des GAME-Modus testen

Verwenden Sie zum Testen der Implementierung des GAME-Modus Tests, die mit testGamePowerMode_ in GameManagerServiceTests.java beginnen.

GAME_LOADING-Implementierung testen

Verwenden Sie android.gamemanager.cts.GameManagerTest#testSetGameContext, um die Implementierung des Modus GAME_LOADING zu testen. In diesem Test wird geprüft, ob GameManager::setGameContext() mit einem isLoading-Kontext den Spielmodus auf der Power HAL im Leistungsmodus aufruft.