次世代の車両では、複数の画面がサポートされることがあります。また、Android がそれらの画面の一部を操作してリッチ コンテンツを提供することもあります。このセクションでは、インストルメント クラスタやその他のディスプレイを Android Automotive IVI システムに統合するための重要な要素について説明します。
Android の外部ディスプレイ
Android 10 では、android.app.Presentation API を使用して外部ディスプレイの使用をサポートします。プレゼンテーションは、セカンダリ ディスプレイでコンテンツを表示するための一意のダイアログです。プレゼンテーションは作成時にターゲット ディスプレイに関連付けられ、ディスプレイの指標に従ってそのコンテキストとリソース構成が設定されます。
インストルメント クラスタ ディスプレイ
Presentation API は、次のことを可能にする標準的なインストルメント クラスタ ディスプレイに最適です。
Presentation API では、以下は不要です。
- 個別の音声フォーカス。
- アクティビティまたはアプリ全体の実行。
- 同時ユーザー入力の検討。
- タッチイベントの処理。
複数のディスプレイの使用について詳しくは、マルチディスプレイの概要をご覧ください。
前提条件: Android WindowManager の以前の開発の知識が役立ちます。
サポートされているコンテンツの種類
一部の車両では、Android がインストルメント クラスタのグラフィックを直接描画させたくなくても、ターンバイターンのガイダンスや音楽のタイトルなどの情報を表示させたい場合もあります。Android では、いくつかの方法でそのようなデータを送信できます。Android デバイスでは、以下のようにインストルメント クラスタのコンテンツを送信できます。
- メタデータベース(
CarVendorExtensionManager
やVehicleNetworkService
を使用して CAN を通じてメッセージを送信するなど)。インストルメント クラスタ システムでは、メタデータに基づいて適切なグラフィックを作成する必要があります。 - グラフィックベース(物理的なディスプレイまたは仮想ディスプレイに対して)。ディスプレイは、ゲージクラスタ内の専用ディスプレイ、または完全にグラフィカルなインストルメント クラスタ ディスプレイの一部であることがあります。
グラフィック ベースのインストルメント クラスタ ディスプレイのハードウェア アーキテクチャの例は次のとおりです。
図 2. Android Automotive グラフィックベースのインストルメント クラスタ ディスプレイの例
安全性重視 OS(インストルメント クラスタのレンダリングを実行)と Android OS は、同じマルチコア SoC(例: リアルタイムの OS では専用 Cortex-R、Android では Cortex-A)上に存在する場合があります。インターフェースは、イーサネット AVB(音声ビデオブリッジ)、LVDS、HDMI のいずれでも構いません。Android では、グラフィック インストルメント クラスタは仮想ディスプレイとして接続され、Display HAL 実装の背後にあるハードウェア アーキテクチャを非表示にできます。
リアシートの制限事項
リアシート エンターテイメントの場合、Presentation API には次の制限があります。
- アクティビティ全体を投影することはできません(プレゼンテーションはダイアログです)。
- 使用できる音声フォーカスは 1 つのみです。
- 同時ユーザーは存在しません。
- 外部ディスプレイに対する直接的なタッチイベントはありません(個別の挿入フローが必要です)。