スケーラブル UI により、Android Automotive OS(AAOS)でマルチウィンドウ構成を作成する機能が強化されます。スケーラブル UI は、アプリを画面のどこにどのように表示するかを調整するために使用できるフレームワークを提供します。これにより、情報の流れをより詳細に制御できます。
システムアプリ デベロッパーは、これらの要素を考慮できます。
構成可能なアプリ コンテナ
スケーラブルな UI パネルは、アプリの構成可能なコンテナとして機能します。これにより、アプリを同時に画面に表示したり、さまざまなサイズで表示したりできる多様なレイアウトを作成できます。
スケーラブル UI は、実行時のパネル サイズの変更をサポートしています。ただし、アプリがコンテンツを調整する必要があるため、パフォーマンスに大きな影響があります。
スケーラブル UI には、視覚的な影響を軽減するメカニズムが用意されています。たとえば、パネルのサイズを変更するときに、フレームごとにアプリケーションのレイアウトを再調整しないように、組み込みの [オーバーレイ] 画面を提供します。アプリのユーザー エクスペリエンスを定義するのはデベロッパーです。
システム状態の伝達
スケーラブル UI を使用してブロードキャスト ベースのシステム イベントをトリガーできます。つまり、さまざまなアプリを起動するタイミングと方法、およびこれらのシステムアプリに表示されるシステム イベントを構成できます。
これにより、システムレベルで定義されたイベントに対応するシステムアプリの柔軟性が高まります。たとえば、アクティブなナビゲーション セッションと地図アプリが画面に表示されていないときに起動するように NavigationCardActivity
を構成できます。また、車両の速度によって制御される一元化されたシグナルに基づいて、システムアプリがカラーテーマを変更することもできます。
サードパーティ製アプリのデベロッパー
サードパーティ製アプリのデベロッパーは、マルチウィンドウの設定を有効にする際に、これらの側面を考慮する必要があります。
アプリパネルの配置: アプリはさまざまなサイズのパネルに配置される可能性があるため、レスポンシブ UI デザインが必要です。これは、スケーラブル UI によるものではなく、マルチ ウィンドウ設定のアプリで必要です。
インセットの処理: アプリはインセット(システム UI 要素またはディスプレイ カットアウトによって占有される画面の領域)を処理する必要があります。パネルはインセットに関する更新情報を公開するため、アプリはそれに応じて調整できます。これは、スケーラブル UI によるものではなく、アプリがシステム インセットの変更を処理する必要があるという Android の要件によるものです。
没入モード: 没入モード(システムバーを隠してアプリを画面いっぱいに表示するモード)を使用するアプリを考慮する必要があります。スケーラブル UI を使用すると、没入モードの定義と、このモードで各パネルの配置を定義する方法を制御できます。
ドライバーの安全やその他の要件を考慮して、イマーシブ モードの使用方法を決定する必要があります。
Android の要件に基づき、アプリは没入モードのリクエスト時に画面全体を埋めるとは限りません。OS はこのようなリクエストを承認または拒否します。