ゲームの読み込み時間を改善するため、Android 13 では、Android 動的パフォーマンス フレームワーク(ADPF)に GAME_LOADING
という名前の新しい電力モードが導入されています。GAME_LOADING
は、ゲームアプリが読み込み状態にあるかどうかを Power HAL に通知して、Power HAL が読み込みブーストを提供できるようにします。この通知により、Power HAL はゲーム読み込みを高速化できるパフォーマンス ブースト対策を提供できます。
このページでは、ゲームアプリが Power HAL にゲーム状態を渡す方法、デバイスでこれを利用するために Power HAL を構成する方法、Power HAL 実装をテストする方法について説明します。
読み込み状態の検出と通知
読み込みブーストモードは、ゲームアプリが読み込み状態にあるときにそれを検出して Power HAL に通知します。Android 13 では、デベロッパー向けの API に isLoading
という新しいゲーム状態が導入されています。このゲーム状態は、Power Manager サービスの新しい GAME_LOADING
電力モードを使用して、トップレベルのゲーム状態を Power HAL に通知します。Power HAL は、ゲーム読み込み状態の通知を受け取ると、プラットフォームのパフォーマンス設定と CPU クロックレートを調整できます。これにより、読み込み時間が改善されます。OEM は、Power HAL に読み込みブーストを実装してカスタマイズすることを選択できます。詳しくは、Power HAL 実装をカスタマイズするをご覧ください。
ゲームが読み込み中であることを通知するために、ゲームアプリはゲーム ダッシュボードを使用して Game Manager に isLoading
状態を設定します。Game Manager はこの状態を Game Manager サービスに渡します。このサービスは、新しい GAME_LOADING
電力モードで setPowerMode
を使用して Power Manager サービスを呼び出します。GAME_LOADING
電力モードは、ゲームが読み込み状態にあることを Power HAL に通知し、Power HAL が読み込みブーストを提供できるようにします。
次の図は、読み込み状態を通知するためにアプリから Power HAL に流れる情報のフローを示しています。
図 1. ゲームが読み込み状態にあることを通知する情報フロー。
Power HAL をカスタマイズしてゲーム読み込み時間を改善する
OEM が GAME_LOADING
モードを利用するには、ゲーム読み込みモードのときに Power HAL の実装をカスタマイズする必要があります。CPU クロック速度の向上、温度スロットリングの一時的な軽減、CPU 優先度のフォアグラウンド タスクへの引き上げなどの対策は、パフォーマンスの向上に役立ちます。
パフォーマンス ブーストはハードウェアに固有であるため、Google Pixel デバイスのリファレンス実装がリリースされるまで、ブーストモードのリファレンス実装は提供されません。
ユーザーは、ゲーム ダッシュボードを使用して、パフォーマンス設定で読み込みブースト機能をオンまたはオフにできます。パフォーマンス設定はデフォルトではオフになっています。
ゲーム読み込み実装のテストと検証
実装をテストするには、android.gamemanager.cts.GameManagerTest#testSetGameContext
を使用します。このテストでは、isLoading
コンテキストを持つ GameManager::setGameContext()
が、パフォーマンス モードのときに Power HAL でゲーム読み込みモードを呼び出すかどうかが検証されます。
ただし、この機能の実装はハードウェアに固有であるため、OEM は独自の手動テストを実施して、この機能を使用したときにゲーム読み込み時間が短縮されるかどうかを確認する必要があります。