概述

下一代汽车支持多个屏幕,其中一些屏幕可能由 Android 操作系统驱动,以提供丰富的内容。本页介绍了将仪表盘和其他显示器集成到 Android Automotive IVI 系统的关键要素。

Android 中的外部显示器

Android 10 使用 android.app.Presentation API 来支持外部显示器的使用。presentation 是一种独特的对话框,其目的是在辅助显示器上呈现内容。presentation 在创建时与目标 Display 相关联,并根据显示指标配置其上下文和资源配置。

仪表盘显示器

Presentation API 对于典型的仪表盘显示器来说已经足够了,它具有以下允许的功能

Sample display
图 1. 仪表盘显示器示例

Presentation API 不需要

  • 单独的音频焦点。
  • 运行整个 Activity 或应用。
  • 考虑并发用户输入。
  • 处理触摸事件。

要了解有关多显示器使用的更多信息,请参阅多显示器概述

前提条件:熟悉 Android WindowManager 的先前开发会有所帮助。

支持的内容类型

有些车辆可能不希望 Android 直接绘制仪表盘图形,但仍然希望显示诸如逐向导航或音乐标题之类的信息。Android 可以通过多种方式发送此类数据。Android 设备可以将仪表盘内容作为以下形式发送:

  • 基于元数据,例如通过 CarVendorExtensionManagerVehicleNetworkService 通过 CAN 发送消息。仪表盘系统必须基于元数据创建适当的图形。
  • 基于图形,发送到物理或虚拟显示器。显示器可以是仪表盘内的专用显示器,也可以是完全图形化的仪表盘显示器的一部分。

基于图形的仪表盘显示器的硬件架构示例

Display configuration

图 2. Android Automotive 基于图形的仪表盘显示器示例。

安全关键型(负责渲染仪表盘)和 Android 操作系统可能驻留在同一个多核 SoC 上(例如,将 Cortex-R 专用于实时操作系统,将 Cortex-A 专用于 Android)。接口可以是以太网 AVB(音视频桥接)、LVDS 或 HDMI。在 Android 中,图形仪表盘可以作为虚拟显示器连接,将硬件架构隐藏在 Display HAL 实现之后。

后座限制

对于后座娱乐,presentation API 具有以下限制

  • 无法投影整个 Activity(presentation 是一个对话框)。
  • 只有一个音频焦点可用。
  • 没有并发用户。
  • 外部显示器没有直接的触摸事件(需要单独的注入流程)。