自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
新一代车辆将支持多个屏幕,其中一些屏幕可通过 Android 平台进行操作,以提供丰富的内容。本页面介绍了将仪表板和其他屏幕集成到 Android Automotive IVI 系统中的关键元素。
Android 中的外部屏幕
Android 10 使用 android.app.Presentation API 来支持使用外部屏幕。presentation 是一种独特的对话框,用于在辅助屏幕上呈现内容。presentation 在创建时与目标 Display 相关联,并根据屏幕指标配置其上下文和资源配置。
仪表板屏幕
Presentation API 足以支持典型的仪表板屏幕,允许以下内容:
图 1. 仪表板屏幕示例
Presentation API 不需要:
- 单独的音频焦点。
- 运行整个 activity 或应用。
- 考虑并发用户输入。
- 处理触摸事件。
如需详细了解如何使用多个屏幕,请参阅多屏幕概览。
前提条件:对 Android WindowManager 的过往开发有一定了解会对您有所帮助。
支持的内容类型
有些车辆可能不希望 Android 直接绘制仪表板图形,但仍希望显示精细导航或音乐标题等信息。Android 可以通过多种方式发送此类数据。Android 设备可以通过以下方式发送仪表板内容:
- 基于元数据,例如通过
CarVendorExtensionManager
或 VehicleNetworkService
经由 CAN 发送消息。仪表板系统必须基于元数据创建合适的图形。
- 基于图形,向物理或虚拟屏幕发送。屏幕可以是仪表盘中的专用屏幕,也可以是全图形仪表板屏幕的一部分。
基于图形的仪表板屏幕的硬件架构示例:
图 2. Android Automotive 基于图形的仪表板屏幕示例。
安全关键型操作系统(负责渲染仪表板)和 Android 操作系统可以位于同一多核 SoC(例如,适用于实时操作系统的专用 Cortex-R 和适用于 Android 的 Cortex-A)中。接口可以是以太网 AVB(音视频桥)、LVDS 或 HDMI。在 Android 中,图形仪表板可以作为虚拟屏幕连接,从而在屏幕 HAL 实现后隐藏硬件架构。
后座限制
对于后座娱乐内容,Presentation API 具有以下限制:
- 无法投影整个 activity(presentation 只是一个对话框)。
- 只有一个可用的音频焦点。
- 没有并发用户。
- 没有针对外部屏幕的直接触摸事件(需要单独的注入流)。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],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)."]]