Android Automotive OS白皮书

1,085 阅读10分钟

原文地址:www.androidautomotivebook.com/android-aut…

摘要

谷歌的操作系统Android Automotive OS适用于连接车载信息娱乐系统(IVI),已经对传统的汽车信息娱乐领域产生了颠覆性影响。在这篇技术白皮书中,我们将概述Android Automotive OS的功能和架构,以支持原始设备制造商(OEMs)和一级供应商在未来信息娱乐战略方面的决策过程。

关键字

Android Automotive, Operating System (OS), Google Automotive Services (GAS), Human-Machine Interface (HMI), In-Vehicle Infotainment (IVI), User Experience (UX)

  1. 介绍

当今的用户对车辆信息娱乐系统(IVI)和连接服务提出了与他们喜爱的消费电子设备、应用和云服务相同的直观和令人兴奋的体验要求。此外,他们希望他们的个人应用生态系统能够整合到车辆中。通过谷歌的Android Automotive操作系统,所有这些都可以更轻松地实现。 全球范围内,汽车制造商正仔细评估Android Automotive操作系统的好处。一些汽车制造商已经选择与谷歌建立正式合作伙伴关系,共同打造下一代的车载信息娱乐系统,包括谷歌汽车服务(GAS)。其他一些制造商使用开源项目AOSP,包括车载扩展,独立构建Android Automotive系统,而还有一部分主要是由于对依赖性和数据所有权的顾虑而犹豫不决。 对于那些目前在决策十字路口的人来说,我们希望在谷歌的Android Automotive操作系统的一些技术方面提供一些见解。然而,本文并不试图详尽地涵盖所有技术方面,而是旨在给出一个概览。如果需要更深入的讨论,我们建议参加我们的Android Automotive基础培训课程。

  1. 功能概述

为了了解操作系统的各个组件和附加值,我们希望简要介绍其结构。

图1显示了Android Automotive的抽象层体系结构,分为四个层次。在本节中,我们关注Google Automotive Services(GAS)和内置应用程序。

Google Automotive Services (GAS)。

GAS描述了一组由Google预编译并通过许可模式提供的客户特定和技术服务。最重要的服务包括:

  • Google Maps和导航: 用于智能地址、路径、加油站和充电站搜索的从A点到B点的导航功能。
  • Google Assistant: 语音个人助手,可用于控制各种车辆功能(可扩展)或向用户提供附加信息。
  • Google Play商店: 提供并管理针对车辆使用量身定制的第三方应用程序。
  • 设置向导: 创建车辆用户配置文件和连接设置。
  • 汽车键盘: 一种为汽车行业设计的键盘,用于操作触摸屏并支持多种语言。

OEM通过与Google的合作伙伴关系获得对GAS的访问权限。这提供了与Google的密切沟通和支持、扩展的技术文档以及带有新更新和升级的季度预发布(QPR)版本的访问权限。

非GAS是指不需要集成GAS的平台版本。OEM只需下载免费提供的AOSP源代码与车载扩展并集成自己的应用程序和服务。您可能会选择这种变体,例如计划在中国推出时,由于该市场上无法使用Google服务,或者如果您是Tier 1供应商而没有OEM合同,因为Google目前只直接与OEM合作伙伴。

英雄应用程序。除了GAS之外,Google正在开发诸如以下应用程序:

  • 媒体中心: 用于集成本地媒体播放器等媒体来源的框架。该框架已完全集成,与通知中心和拨号器无缝交互。
  • 拨号器: 中央电话应用程序,允许管理连接的智能手机的联系人并进行通话。
  • 车辆设置: 管理各种系统设置,例如时间和语言、用户管理和连接设置。
  • 通知中心: 向用户提供简短的系统通知以及启动应用程序的交互。

这些应用程序可在android.googlesource.com上获得。除了这些针对车辆的应用程序,还有许多其他应用程序可在…/package/apps/…中获得。

  1. Frameworks & Libraries

为了创建一个全面的人机交互界面(HMI),需要使用各种框架和库来集成应用程序,并实施适用于所有系统和用户应用程序的一般规则和限制。

UI 框架: SystemUI / CarSystemUI管理中央屏幕的总体结构。用户可以根据需要自定义这些框架,并更改工具栏的各个片段及其内容(例如,屏幕顶部的状态栏,底部的全局导航栏以及主要片段和HVAC工具栏)。此外,OEM / Tier 1可以通过SystemUI来管理主题(颜色,字体和样式的使用)和弹出窗口的显示。

谷歌将SystemUI定义为“……一个持久的进程,为系统提供UI,但不在system_server进程之内” [2]。SystemUIApplication通过一组定义好的服务(例如SystemBars,PowerUI或自定义的服务)扩展了SystemUI,这些服务在一个与系统用户界面隔离的方式下工作,并随启动过程一起启动。

对于Android Automotive最重要的扩展之一是DrivingUxRestrictions框架。该框架已经集成到谷歌提供的应用程序中。框架使用OEM指定的配置文件,在某些驾驶情况下阻止最终用户的触摸交互,以避免用户分散注意力。OEM可以在其中扩展和定制现有的框架。

Car-lib。 除了HMI的功能之外,谷歌还提供了其他无数的功能层。我们想指出三个特殊的服务[2],为我们减少了很多工作量。

CarInfoManager。 根据开发策略,OEM可能希望通过一个平台版本管理多个车型变体。CarInfoManager可用于动态适应HMI。作为代理组件,它提供关于车辆型号、变体和其他相关车辆属性的静态信息。

CarPowerManager。 信息娱乐系统及其应用程序的行为在很大程度上取决于车辆的系统状态。这些应用程序通过CarPowerManager与基于通用状态机的车辆硬件抽象层(Vehicle HAL)和车载微控制器单元(VMCU)进行通信,如图2所示。

因此,应用程序可以在特定状态或状态变化时执行个别操作。这是必需的,例如在打开/关闭蓝牙或Wi-Fi等服务时。

CarProjectionManager。 对不同投影技术的高效集成和处理是当今信息娱乐系统的重要要求。用户应该可以自由选择Android Auto、Apple CarPlay或其他镜像技术。通过CarProjectionManager,谷歌使开发一个应用程序成为可能,该应用程序在建立连接时保证相同的系统行为,管理智能手机并关闭连接。

  1. Android Automotive 操作系统架构

Android平台(AOSP)可以一般地划分为图3中显示的组件。它们包括:

  • 应用程序框架和应用程序
  • Android汽车系统服务和Binder IPC(进程间通信)
  • 硬件抽象层
  • Linux内核

谷歌扩展了AOSP系统,加入了汽车系统应用程序、汽车API、汽车服务和车辆硬件抽象层,以提供一个完全功能的、与车型无关的车载信息娱乐操作系统(参考图1)。

车载信息娱乐系统的源代码分发通常包括:

OEM 和第三方应用程序作为一组Android应用程序,包括HMI和应用程序的后台服务,存储在/product分区中。

Android 开源项目(AOSP): 包括从通用系统应用程序、应用程序框架、系统服务到硬件抽象层接口的所有GIT树软件包,应位于/system分区中。

板级支持套件(BSP): 包括带有特定硬件的HAL实现的Linux内核映像。BSP依赖于片上系统(SoC),属于/vendor分区的一部分。

OEM可以通过自主开发的汽车或非汽车应用程序和系统服务扩展现有源代码,例如HUD管理、轮胎压力监测、充电程序管理等,以扩展其信息娱乐系统的功能。

由于在Project Treble中进行的体系结构变更和可用分区的扩展,将来不仅可以替换HMI层,还可以替换Android框架、BSP和硬件(参见图4)。

以下部分概述了各个系统层的职责和任务:

应用程序框架。通常称为“HMI层”,应用程序框架包含系统和用户应用程序。我们建议将应用程序设计为仅负责可视化,包括小型计算,以避免阻塞主UI线程,并将核心业务逻辑放在服务层的系统服务中。此外,应用程序使用后台服务管理自己的翻译标签和通知。 这种设计方案在未来可以轻松进行更新,并支持多种HMI设计,例如适用于不同车品牌。

服务层。 系统服务包含在服务层中,并由SystemServer启动。它们作为系统进程运行,具有普通Android服务所没有的额外特权。这种方法为OEM开发其他应用程序提供了机会,这些应用程序可以在没有源代码重复的情况下使用该服务。此外,出于安全原因,OEM还可以将服务作为附加层使用,以避免应用程序与硬件抽象层直接通信。

车辆硬件抽象层(HAL)。 车辆硬件抽象层的作用是以可扩展且与车型无关的方式向系统服务公开特定于汽车的接口。这些接口包括:

  • 访问车辆中的电子控制单元(ECUs)发送/接收的信号
  • 访问车辆微控制器单元生成的信号,传输给车载信息娱乐操作系统(IVI OS)
  • 访问车辆网络提供的面向服务的功能(如SOME-IP)

上述层是平台的核心元素,负责应用程序与车辆ECUs之间的数据交换。图5显示了详细的体系结构。

  1. 总结

在这份技术白皮书中,我们提供了一些关于Android Automotive操作系统(AAOS)的见解,该操作系统由谷歌不断开发,并在android.googlesource.com上公开提供。除了基本功能、框架和库之外,我们解释了分层架构,并介绍了如何通过OEM扩展系统。

我们认为Android Automotive是一个有效的平台,包含了所有必要的核心功能。它在开发、集成和维护连接的信息娱乐系统方面成本更低。系统可以进行完全定制,但与原始源代码的任何偏离都会增加OEM的开发和维护工作量。另一个好处是,谷歌将定期发布补丁和每年的重大升级,增加功能、扩展功能和其他改进。

根据我们的经验,与通常的4年开发周期相比,IVI开发时间可以缩短2年。在这种情况下,部署了包括GAS在内的Android Automotive操作系统,并开发了完全定制的HMI。部署非GAS系统将需要额外的开发和集成工作。

如果您想了解更多有关Android Automotive操作系统的技术信息,我们建议参加我们的Android Automotive OS研讨会,深入了解技术细节。

  1. 引用

  1. Android Automotive
  2. Android Automotive SystemUI
  3. Android Automotive Power Management
  4. Android Automotive Android Architecture
  5. Project Treble. What Makes Android 8 different?