一、IVI与Android Automotive概览:车载信息娱乐系统的前世今生

大家好,我是老张。在车载行业摸爬滚打了十几年,今天咱们来聊聊IVI和Android Automotive。说实话,这个领域变化太快了,我刚入行那会儿,车载系统还停留在“能放CD就是高科技”的阶段。嗯,现在想想,真是恍如隔世。

1.1 什么是IVI?

IVI,全称In-Vehicle Infotainment,中文叫车载信息娱乐系统。说白了,就是车里那块大屏幕背后的整套软硬件系统。它不只是个“大号平板”,而是集成了导航、音乐、电话、车辆设置、空调控制等功能的综合平台。

核心定义:IVI是车辆座舱内,用于提供信息、娱乐、通信和车辆控制功能的人机交互系统。

1.2 IVI的发展历史

我经历过IVI的几个典型阶段,给大家梳理一下:

阶段 时间 典型特征 我印象最深的事
1.0 收音机时代 1990s以前 AM/FM收音机、磁带机 小时候坐我爸的车,旋钮调台是唯一的乐趣
2.0 CD导航时代 2000-2010 CD播放器、离线导航、蓝牙电话 我记得第一次用车载导航,地图光盘还得定期更新
3.0 智能互联时代 2010-2020 触控屏、3G/4G联网、App生态 我在项目中遇到过,早期安卓车机卡顿到让人崩溃
4.0 座舱域控时代 2020至今 多屏互动、语音助手、OTA升级 现在做项目,芯片算力动不动就是8核起步

1.3 IVI的核心功能

你想想看,现在的IVI到底要干哪些活?我总结下来,无非这几大类:

  • 导航与定位:GPS+惯性导航,实时路况,在线地图更新。我个人习惯用高德,但有些车企喜欢用百度,这里坑不少。
  • 多媒体娱乐:音乐、视频、收音机、流媒体。注意,视频播放要考虑行车安全限制。
  • 通信与互联:蓝牙电话、Wi-Fi热点、CarPlay/Android Auto手机互联。
  • 车辆控制:空调、座椅、车窗、驾驶模式等设置。
  • 语音交互:越来越重要,我建议新项目直接上云端+本地双引擎方案。
  • OTA升级:系统固件和应用在线更新,这是现在车企的标配能力。

避坑指南:我曾经在某个项目中,忽略了IVI的电源管理。结果车子熄火后,系统还在偷偷跑后台服务,第二天电瓶亏电了。嗯,这里要注意,IVI的休眠和唤醒逻辑一定要设计好。

二、Android Automotive OS 与 Android Auto 的区别

这个问题,我面试新人时几乎必问。很多人搞混,其实它们完全是两码事。

2.1 Android Auto:手机投屏方案

Android Auto,说白了就是把你手机上的界面投射到车机屏幕上。手机是计算核心,车机只是个显示器+触控板。我刚开始接触时也觉得挺方便,但用久了就会发现:

  • 手机必须连着线(现在支持无线了,但延迟感人)
  • 手机发热严重,导航+充电,夏天能煎鸡蛋
  • 无法深度控制车辆功能,比如调空调

2.2 Android Automotive OS:原生车载系统

Android Automotive OS 是 Google 专门为汽车打造的原生操作系统。它直接跑在车机的硬件上,不依赖手机。你想想看,这意味着什么?

  • 系统可以深度访问车辆CAN总线、传感器
  • 支持多屏显示(仪表盘、中控、副驾屏)
  • 可以控制空调、车窗等硬件
  • 独立联网,不需要手机做热点
对比维度 Android Auto Android Automotive OS
运行位置 手机上 车机硬件上
计算能力 依赖手机CPU 依赖车机SoC
车辆控制 不支持 原生支持
多屏扩展 有限 原生支持
典型代表 大众、福特部分车型 沃尔沃XC40 Recharge、Polestar 2

注意:Android Automotive OS 虽然叫“Android”,但它和手机上的Android有显著差异。它没有Google Play服务(国内版本),很多手机上的App不能直接跑。我曾经踩过这个坑,把手机App直接移植到车机上,结果各种崩溃。

三、AOSP 与 Android Automotive 的关系

这个问题,我建议你从源码层面去理解。AOSP(Android Open Source Project)是Google开源的Android基础代码库。而Android Automotive,本质上就是AOSP的一个特殊“分支”或“配置”。

3.1 架构关系

我画了一张图,帮你理清它们的关系:

AOSP (Android Open Source Project) 通用Android框架层 ActivityManager、WindowManager、PackageManager、View System Android Automotive CarService、Vehicle HAL 多屏策略、驾驶模式 手机/平板 Android Telephony、Camera HAL 触摸输入、传感器框架 Linux Kernel + Hardware Abstraction Layer (HAL) 显示驱动、音频驱动、网络驱动、CAN总线接口 Automotive 特有 手机/平板 特有 通用共享

从这张图你能看出来,Android Automotive 和手机 Android 共享了绝大部分的 AOSP 基础框架。区别在于上层服务:

  • Automotive 用 CarService 替代了 Telephony 服务
  • Automotive 用 Vehicle HAL 替代了 Camera HAL 等
  • Automotive 增加了驾驶模式、多屏管理等汽车特有逻辑

3.2 代码层面的差异

我建议你直接去看 AOSP 源码。在 packages/services/Car/ 目录下,就是 Automotive 的核心代码。举个例子:

// AOSP 通用代码路径
frameworks/base/services/core/java/com/android/server/
  - am/  (ActivityManagerService)
  - wm/  (WindowManagerService)
  - pm/  (PackageManagerService)

// Automotive 特有代码路径
packages/services/Car/
  - car-service/
  - vehicle-hal/
  - car-ui-lib/

关键点:Android Automotive 不是从零开发的。它是在 AOSP 基础上,增加了汽车相关的服务、API 和 HAL。你如果熟悉 AOSP 开发,转做 Automotive 会很快上手。但要注意,汽车场景对稳定性、安全性要求极高,不能拿手机开发的思路来套。

3.3 实际项目中的选择

我在做项目选型时,通常会这样判断:

  • 如果只是需要手机投屏,用 Android Auto 就够了,开发成本低
  • 如果需要深度定制座舱体验,必须上 Android Automotive OS
  • 如果预算有限,可以考虑 AOSP 基础上自己裁剪,但维护成本高

个人经验:我曾经参与过一个项目,客户非要自己基于 AOSP 改一套车载系统。结果光适配各种车机硬件就花了半年,最后稳定性还不行。后来换了 Android Automotive 的官方方案,三个月就搞定了。所以,能用现成的就别自己造轮子。

四、本章小结

好了,这一章的内容就这些。我们聊了IVI的定义和发展史,理清了Android Auto和Android Automotive OS的本质区别,也搞懂了AOSP和Automotive的架构关系。你想想看,这些基础知识是不是比想象中简单?

下一章,我们会深入Android Automotive的架构细节,聊聊CarService到底是怎么工作的。嗯,到时候见。


公众号:蓝海资料掘金营,微信deep3321