一貫した高品質のユーザー エクスペリエンスを実装し、互換性テストスイート(CTS)の失敗につながる問題を回避するには、ここに記載されている WindowManager(WM)の基本原則を実装します。これらの原則は、 自動車向けアプリの品質に関するガイドラインの遵守に役立ちます。これらの原則は、以下に適用されます。
Android 14 で導入され、Android 15 でスケーラブル UI を使用して継続された、マルチウィンドウ アーキテクチャを使用する Android リリース。
Android スケーラブル UI と独自のカスタム実装
これらの原則を適用することで、CTS のコンプライアンスと機能テストのほとんどの問題を事前に回避できます。
用語
- 不変条件
- アプリの実行中に常に真となる論理条件で、構造の整合性につながります。不変条件は境界ルールとして機能します。
- 特殊なアクティビティ
- Auto UI アクティビティまたはシステム UI アクティビティとも呼ばれる、重要なアプリ アクティビティです。画面上に専用の領域があり、ユーザーが [ホーム] を押しても、常に表示されるか、ほとんどの時間表示されます(メイン ナビゲーションやクラスタ アプリなど)。
- 標準アクティビティ
- アプリ グリッドから起動されたサードパーティのメディアアプリなど、システムのコアユーザー インターフェースにとって重要ではない標準アプリ アクティビティ。
WM の基本原則
CTS のコンプライアンスを最大限に高めるには、WM の実装で次の原則を適用します。
アクティビティの起動時に安定した構成を使用する
新しい標準アクティビティはすべて、最終的な位置、サイズ、密度を設定する単一の WM トランジションで起動します。最初のトランジションの直後に、基盤となるタスクのウィンドウ構成(サイズや密度など)を変更する 2 回目のトランジションをトリガーしないでください。アクティビティの作成直後に構成が変更されます。
標準アクティビティを停止状態にする
ユーザーがホームタスクまたはホームシーンに移動した場合は、実行中の標準アクティビティをすべて停止状態にする必要があります。これにより、CTS テストに必要な予測可能な Android アプリのライフサイクルを維持できます。自動車環境でのアプリのライフサイクルの想定について詳しくは、 ユーザー エクスペリエンスの制限が有効な間は使用できないようにするをご覧ください。
標準アクティビティのコンテンツが隠れないようにする
標準アクティビティのコンテンツを妨げるカスタム デコレーションや UI 要素を描画しないでください。カスタム オーバーレイ(カスタムの温度調節バーなど)を描画する場合は、SystemOverlay インセットを使用して、そのサイズをシステムに報告する必要があります。Android 15 以降の場合は、スケーラブル UI で DecorPanel を使用します。アプリはこれらのインセットを使用して、コンテンツを安全にレイアウトします。
没入モードのリクエスト時にオーバーレイを非表示にする
アプリが没入モードをリクエストした場合は、一時的なカスタム UI 要素を非表示にし、SystemOverlay インセットを削除する必要があります。永続的な障害は、アプリのピクセルの想定に影響します。アプリが没入モードをリクエスト
して処理する方法について詳しくは、
システムバー、没入モード、エッジ ツー エッジのレンダリングをご覧ください。
丸みを帯びた角はディスプレイ レベルでのみ適用する
丸みを帯びた角は、frameworks/base の適切なリソース構成を使用して、ディスプレイ レベルでのみ適用します。標準アクティビティのサーフェスに任意の丸みを帯びた角を適用しないでください。
UI 要素のテストに支障が生じます。一時的な対策として、標準アクティビティのサーフェスに適用するのと同じ丸みを帯びた角の半径をディスプレイに指定できます。
没入モードのリクエスト時にアプリのサイズを維持する
アプリが没入モードへの移行をリクエストした場合は、アプリのウィンドウのサイズを変更しないでください。これにより、中断を伴う構成変更がトリガーされます。 代わりに、アプリを最大化するには、ユーザーが制御できる全画面ボタンを提供します。