1. AAOS 概述:Android Automotive OS 的诞生背景、与 Android Auto 的区别、核心设计理念

1.1 诞生背景:从移动端到汽车端的系统演进

Android Automotive OS(AAOS)是 Google 专为汽车座舱设计的原生操作系统,其诞生源于三个核心驱动力:

  • 车载智能化需求爆发:传统嵌入式 RTOS(如 QNX、Linux 定制版)难以满足用户对导航、语音、应用生态的快速迭代需求。
  • 移动生态向座舱延伸:Android 拥有超过 300 万应用开发者,Google 希望将成熟的移动端技术栈(AOSP、HAL、Binder)移植到车载场景。
  • 安全与合规要求:汽车行业需要 ISO 26262(功能安全)、ASPICE(软件开发流程)等标准,AAOS 从架构层面引入了多用户隔离、系统分区、安全启动等机制。
关键时间线:2017 年 Google 在 I/O 大会上首次发布 AAOS 预览版;2018 年沃尔沃 Polestar 2 成为首款量产搭载 AAOS 的车型;2021 年 AAOS 开始支持 Android 12 的“数字车钥匙”和“多屏扩展”特性。

1.2 AAOS 与 Android Auto 的本质区别

很多开发者容易混淆这两个概念,下表从架构、运行位置、控制权三个维度进行对比:

对比维度 Android Auto Android Automotive OS (AAOS)
运行位置 手机端运行,车机仅作为投屏显示 车机硬件上原生运行,独立于手机
系统架构 依赖手机 Android 系统,车机端仅运行投影协议 完整的 Android 系统栈,包含 HAL、CarService、SystemUI
应用生态 仅支持经过 Google 认证的 Auto 应用(导航、音乐、通话) 支持完整的 Android 应用生态,但需通过车载兼容性测试
硬件控制 无法直接访问车辆 CAN 总线、空调、车窗等硬件 通过 CarService 和 Vehicle HAL 直接控制车辆硬件
多屏支持 仅支持中控屏单屏投射 原生支持仪表盘、中控、副驾屏、HUD 等多屏协同
离线能力 依赖手机网络,手机离线则功能受限 车机自带 eSIM 或 Wi-Fi,可独立联网运行
一句话总结:Android Auto 是“手机投屏方案”,AAOS 是“车机原生系统方案”。AAOS 的目标是让汽车成为一台独立的 Android 设备,而不是手机的附属品。

1.3 核心设计理念:安全、分层、可扩展

AAOS 的架构设计围绕三个核心理念展开,这些理念贯穿了整个系统栈:

  1. 安全优先(Safety First):引入多用户隔离(驾驶员/乘客模式)、系统分区(只读系统分区 + 可写数据分区)、安全启动链(Verified Boot),确保即使应用崩溃也不会影响车辆安全功能。
  2. 分层解耦(Layered Decoupling):将系统分为应用层、框架层、硬件抽象层(HAL)、内核层,每层通过标准接口通信(如 Binder、HIDL、AIDL),方便 OEM 定制硬件驱动而不影响上层应用。
  3. 可扩展性(Extensibility):通过 CarService 提供统一的车辆功能 API(空调、门窗、座椅、灯光),OEM 可以开发自定义 Vehicle HAL 实现,同时支持第三方应用通过 Car App Library 接入。
AAOS vs Android Auto 架构对比 Android Auto(投屏方案) 手机端:完整 Android 系统 投影协议(Android Auto 协议) 车机端:仅显示 + 触摸反馈 车机无独立计算能力,依赖手机 Android Automotive OS(原生方案) 应用层(Car App + 第三方) 框架层(CarService + SystemUI) 硬件抽象层(Vehicle HAL) 内核层(Linux + 车载驱动) 车机独立运行,直接控制硬件 vs

1.4 AAOS 系统分层架构总览

AAOS 在标准 Android 架构基础上增加了车载专属层次,整体分为五层:

  • 应用层(Application Layer):包含系统应用(设置、电话、媒体)和车载应用(导航、空调控制、车辆设置)。OEM 可预装自定义应用。
  • 框架层(Framework Layer):核心是 CarService,它作为车辆功能的“中央控制器”,管理空调、门窗、座椅、灯光等所有车辆硬件抽象。
  • 系统服务层(System Services):包括 CarPropertyService(属性管理)、CarDrivingStateService(驾驶状态)、CarDiagnosticService(诊断)等。
  • 硬件抽象层(HAL Layer):通过 Vehicle HAL 接口与车辆 CAN 总线、以太网、LIN 总线通信。OEM 需要实现 IVehicle 接口。
  • 内核与驱动层(Kernel & Drivers):基于 Linux 内核,增加车载专用驱动(如 CAN 控制器、车载以太网、GPS、蓝牙车载协议栈)。
AAOS 五层系统架构 应用层 系统应用(设置/电话/媒体) | 车载应用(导航/空调/车辆设置) 框架层(核心:CarService) CarPropertyService | CarDrivingStateService | CarDiagnosticService 系统服务层 车辆属性管理 | 驾驶状态监控 | 诊断服务 | 用户会话管理 硬件抽象层(Vehicle HAL) IVehicle 接口 | CAN 总线抽象 | 车载以太网抽象 内核与驱动层(Linux Kernel + 车载驱动)

1.5 核心设计理念的落地体现

以下表格展示了三个核心理念在具体模块中的实现方式:

设计理念 实现模块 具体机制
安全优先 多用户管理、系统分区 驾驶员模式限制视频/游戏应用;只读系统分区防止恶意修改;安全启动链验证每个分区签名
分层解耦 Vehicle HAL、CarService OEM 实现 Vehicle HAL 即可适配不同硬件;CarService 通过 AIDL 接口与 HAL 通信,上层应用无需关心硬件差异
可扩展性 Car App Library、自定义属性 第三方应用通过 Car App Library 调用空调/导航 API;OEM 可注册自定义车辆属性(如座椅按摩模式)
常见误区:AAOS 不是“把 Android 手机系统直接刷到车机上”。它从内核层就加入了车载专用调度策略(如实时性要求高的 CAN 通信使用 RT 线程),并且移除了手机端不必要的服务(如 NFC、指纹识别),增加了车辆特有的电源管理(如休眠唤醒、低功耗模式)。

1.6 本章小结