Android 车载技术交流纲要
我们可以将整个技术栈分为以下几个核心部分:

- 核心平台:Android Automotive OS (AAOS)
- 人机交互:Android Auto (AA)
- 开发与生态:Android for Cars App Library (Car App Library)
- 核心技术挑战与解决方案
- 未来趋势与展望
核心平台:Android Automotive OS (AAOS)
这是直接在车载信息娱乐系统上运行的完整操作系统,类似于手机上的 Android,但经过了深度定制和优化。
1 核心特点
- 完整的 Android 体验: 基于 AOSP (Android Open Source Project),可以运行原生 Android 应用。
- 深度集成: 与车辆硬件深度耦合,直接访问 CAN 总线,获取车速、转速、油量、胎压等车辆数据。
- 系统级应用: 包含专门为车载环境设计的系统应用,如媒体、导航、电话、设置、气候控制等。
- 安全与稳定: 对系统的稳定性、安全性和启动速度有极高要求。
2 系统架构 (分层)
理解架构是技术交流的基础。
-
硬件层:
- SoC (System on Chip): 高性能应用处理器,负责运行 Android 系统。
- MCU (Microcontroller Unit): 负责车身控制,如车窗、门锁、灯光等,通常通过 CAN/CAN FD 总线与应用处理器通信。
- 传感器: 摄像头、麦克风、GPS、陀螺仪等。
- 显示屏: 仪表盘、中控屏、HUD 等。
-
内核层:
(图片来源网络,侵删)- 使用 Linux 内核,并进行了实时性 和安全性的优化。
- 集成了针对汽车外设的驱动程序,如 GPU、显示控制器、CAN 总线控制器等。
-
系统运行时 & HAL (Hardware Abstraction Layer - 硬件抽象层):
- Android Runtime: 运行 App 的环境。
- HAL: 这是 Android 架构的精髓,它为上层框架提供了一套标准的硬件访问接口,而下层的具体实现由 OEM(整车厂)提供,这使得 Android 系统可以与不同厂商的硬件解耦。
- 关键 HAL 模块:
android.hardware.automotive.vehicle(VHAL - Vehicle HAL): 最核心的模块,它封装了所有车辆相关的硬件信息,如车速、电池状态、车门状态等,App 通过与 VHAL 交互来获取和设置车辆信息,而不是直接访问 CAN 总线。android.hardware.graphics.composer(HWC): 控制屏幕显示。android.hardware.audio: 音频输入输出管理。
- 关键 HAL 模块:
-
框架层:
- SystemUI: 车载的“桌面”,负责显示状态栏、导航栏、通知中心、快捷设置等。
- CarService: 车载系统的核心服务,负责管理应用生命周期、车辆数据、权限、用户等。
- Media Framework: 强大的媒体播放和音频路由框架,支持多屏、多音频流(如导航语音和音乐同时播放)。
- Location & Connectivity Framework: GPS、蓝牙、Wi-Fi、蜂窝网络管理。
-
应用层:
- 系统应用: 媒体、Google Maps、电话、Google Assistant 等。
- 第三方应用: 通过 Google Play 商店或 OEM 应用商店安装。
3 开发者视角
- 如何获取 AAOS? OEM 厂商从 Google 获取 AAOS 的 AOSP 代码,然后进行深度定制和适配,最终刷写到自己的硬件上。
- 权限管理: AAOS 有严格的权限模型,应用需要声明
android.hardware.automotive.vehicle权限才能访问 VHAL,用户可以在“设置”中精细控制每个应用的权限。
人机交互:Android Auto (AA)
Android Auto 是一个“投射”模式,将手机上的精选应用“投射”到车载屏幕上。

1 核心特点
- 手机为核心: App 运行在用户的手机上,利用手机的算力、网络连接和应用生态。
- 投影式显示: 车载屏幕只显示一个优化后的 UI,所有计算都在手机端完成。
- 专注于核心应用: 主要是导航、音乐/播客、通话、消息等。
- 无线连接: 现代车辆大多支持通过 Wi-Fi 和蓝牙进行无线连接。
2 技术实现
- 通信协议: 主要基于 Android Auto Projection Protocol,运行在蓝牙或 TCP/IP (Wi-Fi) 之上。
- UI 渲染:
- 有线连接 (旧方式): 手机通过 USB 将屏幕内容以 H.264 等视频流的形式传输给车机,车机只负责解码和显示,这种方式延迟高,交互性差。
- 无线连接 (新方式): 采用 Android Open Source Project (AOSP) 中的
libaaudio和libmediametrics等技术,手机和车机建立一个基于 AIDL (Android Interface Definition Language) 的双向通信通道,车机只接收 UI 描述指令和位图,然后进行本地渲染,这种方式延迟极低,交互流畅。
开发与生态:Android for Cars App Library (Car App Library)
这是 Google 为开发者提供的一套官方 SDK,用于在 AAOS 和 Android Auto 上开发高质量的车载应用。
1 设计哲学:驾驶安全第一
- 简化 UI: 大字体、大图标、清晰的布局,减少驾驶员分心。
- 有限交互: 减少需要多次点击或复杂手势的操作。
- 语音优先: 支持通过 Google Assistant 进行语音控制。
2 核心组件
-
Car API (
androidx.car.app): 这是 Car App Library 的核心,它提供了一套与平台无关的 API,开发者只需关注业务逻辑,而不用关心应用是运行在 AAOS 还是 Android Auto 上。Session:应用的入口点,管理应用的生命周期。Screen:表示应用中的一个界面,类似 Android 中的Activity。Template:提供了一系列预定义的 UI 模板,如ListTemplate,PaneTemplate,SearchTemplate等,确保 UI 符合车载规范。Action Strip:屏幕底部固定的操作栏,放置最常用的 1-4 个操作按钮。Navigation Template:专为导航应用设计,可显示全屏地图和转向指示。Message API (CarAppExtender`):** 用于安全地向用户显示通知,用户可以通过语音或方向盘按键快速回复。
-
Car Connectivity API (
androidx.car.cluster): 用于在仪表盘上显示信息,开发者可以定义自定义的仪表盘小部件,显示如当前播放歌曲、导航距离等关键信息。
3 开发流程
- 环境搭建: 使用 Android Studio 和最新的 Car App Library 依赖。
- 设计 UI: 使用
Template和Action Strip构建符合规范的界面。 - 实现逻辑: 处理用户交互,调用 Car API 获取车辆信息(如通过
getCarInfoManager())。 - 测试: 在 Android Studio 的 Car Emulator (模拟器) 中进行快速原型测试,并在真实车机或 Android Auto 连接的手机上进行最终测试。
核心技术挑战与解决方案
1 实时性与性能
- 挑战: 车辆控制对实时性要求极高(如刹车、气囊),而 Android 是一个为通用计算设计的非实时操作系统。
- 解决方案:
- 职责分离: 严格区分“信息娱乐域”(由 AAOS 负责)和“车身控制域”(由高可靠性 MCU 负责),两者通过 CAN/CAN FD 总线通信,VHAL 作为桥梁。
- 优化内核: 对 Linux 内核进行 RT-Preempt 补丁等实时性优化。
- 性能调优: 优化 App 启动速度、UI 渲染流畅度,避免卡顿。
2 安全与可靠性
- 挑战: 汽车是安全攸关系统,软件漏洞可能导致严重后果,系统需要 24/7 稳定运行。
- 解决方案:
- 安全启动: 确保系统从启动到每个组件的每个阶段都经过签名验证,防止恶意软件加载。
- 硬件安全模块: 集成 HSM 来存储密钥、保护敏感数据。
- OTA (Over-The-Air) 更新: 提供安全、可靠的空中升级机制,修复漏洞和更新功能,通常采用 A/B 分区方案,确保更新失败时能回滚到旧系统。
- 应用沙箱: Android 原生的沙箱机制隔离不同应用,防止数据泄露和恶意行为。
3 车内体验
- 挑战: 如何在高速移动、不同光照环境、有限操作空间下提供最佳体验?
- 解决方案:
- 多屏协同: Car App Library 支持同时控制中控屏和仪表盘,将信息合理分配到不同屏幕。
- 语音交互: 深度集成 Google Assistant,实现免手操作。
- 个性化: 支持多用户账户,根据不同驾驶员的偏好(如座椅、空调、常用应用)自动切换设置。
未来趋势与展望
- 数字座舱: Android 不仅是娱乐系统,而是整合仪表、中控、副驾屏、后娱屏、HUD 的统一数字平台,Google 的 Android Automotive OS (AAOS) Cockpit SDK 正是为了这个而生。
- 软件定义汽车: 汽车的功能越来越多地通过软件更新来定义和增强,Android 平台是实现这一愿景的关键基础。
- V2X (Vehicle-to-Everything) 集成: 未来的车载系统将直接与周围环境(车辆、基础设施、行人)通信,Android 平台需要提供低延迟、高可靠的通信能力。
- AI 与机器学习: AI 将用于提供更智能的导航推荐、个性化内容、预测性维护提醒等,Android 的 ML Kit 将在车载场景中发挥更大作用。
- 更强的开放性: 虽然目前主要由 Google 主导,但 AOSP 的开放性为其他科技公司(如华为、百度)基于 Android 打造自己的车载系统提供了可能,形成了多元化的竞争格局。
总结与交流切入点
- 如果你是开发者: 交流的重点可以是 Car App Library 的最佳实践、如何解决 UI/UX 设计 中的痛点、如何利用 VHAL 获取车辆数据、以及在 多屏开发 中遇到的问题。
- 如果你是产品经理或设计师: 可以探讨 车载场景下的用户需求、如何通过 语音和简化交互 提升体验、以及 Android Auto vs. AAOS 在产品策略上的选择。
- 如果你是工程师或技术爱好者: 可以深入讨论 AAOS 的系统架构、VHAL 的设计与实现、车载系统的安全机制、以及 OTA 更新的技术细节。
希望这份详细的梳理能帮助您更好地理解和参与 Android 车载技术的交流!
