2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
次世代の車両では、複数の画面がサポートされます。また、Android がそれらの画面の一部を操作してリッチ コンテンツを提供することもあります。このページでは、インストルメント クラスタやその他のディスプレイを Android Automotive IVI システムに統合するための重要な要素について説明します。
Android の外部ディスプレイ
Android 10 では、android.app.Presentation API を使用して外部ディスプレイの使用をサポートします。プレゼンテーションとは、セカンダリ ディスプレイでコンテンツを表示するという目的に特化されたダイアログです。プレゼンテーションは作成時にターゲット ディスプレイに関連付けられ、ディスプレイの指標に従ってそのコンテキストとリソース構成が設定されます。
インストルメント クラスタ ディスプレイ
Presentation API は一般的な計器類(インストルメント クラスタ)のディスプレイに最適で、次図のような統合を可能にします。
図 1. インストルメント クラスタ ディスプレイの例
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 つのみです。
- 同時ユーザーは存在しません。
- 外部ディスプレイに対する直接的なタッチイベントはありません(個別の挿入フローが必要です)。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# Overview\n\nNext-generation vehicles support multiple screens, some of which\nmight be operated by Android to provide rich contents. This page describes the\nkey elements to integrate instrument cluster and other displays into an Android\nAutomotive IVI system.\n\nExternal displays in Android\n----------------------------\n\nAndroid 10 uses the [android.app.Presentation](https://developer.android.com/reference/android/app/Presentation.html) API to support the use of external displays.\nA *presentation* is a unique dialog, its purpose to present content on a secondary\ndisplay. A presentation is associated with the target\n[Display](https://developer.android.com/reference/android/view/Display.html)\nat the time of creation and configures its context and resource configuration according\nto the display metrics.\n\nInstrument cluster display\n--------------------------\n\nThe Presentation API is sufficient for a typical instrument cluster display, which has these\nallowances: \n**Figure 1**. Sample instrument cluster display\n\nThe Presentation API does not need:\n\n- Separate audio focus.\n- To run the entire activity or app.\n- To consider concurrent user input.\n- To handle touch events.\n\nTo learn more about the use of multiple displays, see\n[Multi-display overview](/docs/core/display/multi_display).\n\n**Prerequisite** : Some familiarity with previous\ndevelopments of the Android [WindowManager](https://developer.android.com/reference/android/view/WindowManager) is helpful.\n\n\nSupported content types\n-----------------------\n\nSome vehicles may not want Android to draw instrument cluster graphics\ndirectly, but still want to show information such as turn-by-turn guidance or\nmusic title. Android can send such data in several ways. An Android device can\nsend instrument cluster content as:\n\n- Metadata-based, such as sending messages through CAN through `CarVendorExtensionManager` or `VehicleNetworkService`. The instrumental cluster system must create appropriate graphics based on the metadata.\n- Graphics-based, to physical or virtual display. The display may be a dedicated display inside the gauge cluster, or part of a fully graphical instrument cluster display.\n\nExample hardware architecture for a graphics-based instrument cluster\ndisplay:\n\n\n**Figure 2.** Sample Android Automotive graphics-based instrument cluster display.\n\nThe safety-critical (responsible for rendering instrument cluster) and\nAndroid OS may reside on the same multi-core SoC (for example, dedicate Cortex-R\nfor real-time OS and Cortex-A for Android). The interface can be Ethernet AVB\n(Audio Video Bridge), LVDS, or HDMI. In Android, the Graphics Instrument Cluster\ncould be connected as a Virtual Display, hiding the hardware architecture behind\n[Display HAL](https://developer.android.com/reference/android/hardware/display/VirtualDisplay.html)\nimplementation.\n\nRear seat limitations\n---------------------\n\nFor rear seat entertainment, the presentation API has the following\nlimitations:\n\n- Can't project the entire activity (presentation is a dialog).\n- Only one audio focus available.\n- No concurrent users.\n- No direct touch events for the external display (needs separate injection flow)."]]