车载用户界面 (UI) 工具包提供了一个 UI 开发框架,您可以使用该框架来确保车载应用(Google 应用和系统及供应商应用)能够实现
-
信息娱乐系统 UI/UX 自洽性。 自洽性是指用户能够根据之前与同一系统互动的经验来预测如何与信息娱乐系统互动。
-
自定义。OEM 可以修改系统的外观和风格,以便将功能与车辆内部和硬件最佳地集成。
要了解有关 Car UI 库集成的更多信息,请参阅以下页面
- 将 Car UI 库集成到应用中
- 自定义应用
- 添加自定义字体
- 自定义 Car UI 偏好设置
- CarUiListItem
- 自定义 CarUiRecyclerView
- 排查运行时资源叠加问题
- 发行说明
- 附录 A,使用 RRO
- 附录 B,自定义指南
关于 Car UI 库
Car UI 库是一个静态链接库,它提供了一组组件和资源,您可以使用这些组件和资源来实现
- 系统和 OEM 应用 (Gerrit)
- Android Automotive (AAOS) 应用
此库充当
-
自定义 API,通过
- 定义可以自定义的资源,包括颜色、尺寸和可绘制对象。
- 将资源视为具有向后兼容性保证的 API。
- Android 9 和 Android 10 中提供的短期解决方案与当前正在开发的长期解决方案之间的兼容性层。
资源叠加
Android 目前提供了几种应用自定义的方法,而无需对受影响的子系统和应用进行额外的工作
-
构建时叠加。 此自定义在 Android 系统镜像构建时应用。在构建期间,系统中的所有应用都会从其
res
文件夹以及目标 makefile 中定义的overlay
文件夹接收资源。 -
动态运行时叠加 (动态 RRO)。 这些特殊的 APK 仅包含资源和一个清单文件,用于指示它们将影响哪个目标 APK。动态 RRO 是独立于系统镜像编译和部署的,并且可以打开和关闭。当系统为特定应用执行资源查找时,系统还会检查是否有任何 RRO 以其为目标,以及 RRO 是否包含具有相同名称的资源。
-
静态运行时叠加 (静态 RRO)。 与动态 RRO 在结构上类似,这些叠加始终处于启用状态,这意味着如果不执行完整的系统镜像升级,则无法卸载或更新它们。静态 RRO 充当构建时叠加和动态运行时叠加的中间层。
除了 UI 组件外,Car UI 库还提供了一种机制,可以使用一组静态 RRO 直接将资源(静态链接到每个应用中)与 OEM 资源叠加。OEM 必须提供一个文件夹,其中包含其资源叠加和目标应用列表。在构建期间,Car UI 库基础架构将使用此信息为每个目标应用生成一个静态 RRO。

图 1. Car UI 库组件
在上图中
-
绿色。OEM 提供的自定义,是构建时和运行时叠加资源的混合。
-
黄色。 Car UI 库提供的支持,包括可叠加资源、组件(Java 代码)和构建支持,以生成必要的 RRO。
-
蓝色。可自定义的目标,包括框架、系统应用、供应商应用和使用 Car UI 库自定义 UI 元素的 GAS 应用。