Android Automotive (一) 介绍

Android Automotive (一) 介绍

做了很久的Android Car开发的工作,趁着最近不太忙,总结一下。本文内容基于Android R。

Android Automotive起始于Android N(也就是Android 7.x 版本。 2016年5月19日谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布。)。Android O开始,Google对Car有了更多的支持,为汽车制定了更多的应用。提出了HIDL架构。Android P开始,对框架做了进一步完善。Android Q开始,官方API文档正式支持Android Automotive Library。

Android Automotive的代码是AndroidN首次发布(2016年5月18日).
第一笔提交在2015-07-11 03:21:47
cc449f7941456a0133ff8a4b2e49737f0936c1d0

代码库下载方法
repo sync -c packages/services/Car

代码库配置文件

为什么Google推出Android Automotive?

我认为主要有以下几点:

  • 首先Google和苹果先后推出的 Android Auto 和 CarPlay 不能得到车厂的青睐,这种技术策略核心是投屏,将手机屏幕内容显示在车机上,不可避免的需要和手机交互。
  • 车厂不想汽车数据共享给互联网公司,车厂都会各自实现一套汽车软件方案,Google难以介入。
  • 传统的开发模式,开发成本高。
  • Google需要为不同的硬件迭代以及软件版本升级做更好的改善。

Android Automotive的优势:

  1. 免费
  2. 稳定的架构
  3. 为不同供应商的硬件和软件解耦

Android Automotive的劣势:

  1. 仍然没有一套完整的解决方案。包括升级和维护、版本管理
  2. 安全性低
  3. 测试门槛高,需要各种ecu联调

什么是 Android Automotive?

Android Automotive 是一个基本 Android 平台,可运行 IVI 系统中预安装的 Android 应用以及可选的第二方和第三方 Android 应用。

Android Automotive 可为车载信息娱乐系统和车机提供开放性、自定义和规模化特性。开放性在免费的开源代码库中提供基本的车载信息娱乐功能,可进一步提升效率。借助自定义特性,实现人员能够在适当的情况下实现商品的差异化。规模化特性是通过 Android 的通用框架、语言和 API 来实现的,所有这些都使得全球数十万 Android 开发者的开发专长和成品软件得以重复使用。

Android Automotive 和 Android

了解 Android Automotive 与整个 Android 生态系统之间的关系至关重要:

扫描二维码关注公众号,回复: 15050890 查看本文章
  • Android Automotive 就是 Android 平台。Android Automotive 并非 Android 的分支或并行开发版本。它与手机和平板电脑等设备上搭载的 Android 使用相同的代码库,位于同一个存储区中。它基于开发时间逾 10 载的强大平台和功能集构建而成,因此能够利用现有的安全模型、兼容性计划、开发者工具和基础架构,同时继续保持较高的可定制性和可移植性,完全免费提供并且开源。
  • Android Automotive 扩展了 Android 平台。在将 Android 打造为功能完善的信息娱乐平台的过程中,我们增加了对汽车特定要求、功能和技术的支持。Android Automotive 将是一个一站式全栈车载信息娱乐平台,就像现在的 Android 系统之于移动设备一样。

Android Automotive 和 Android Auto

两者的命名方式可能有点让人迷惑不解。下面介绍了它们之间的区别:

  • Android Auto 是一个基于用户的手机运行的平台,可通过 USB 连接将 Android Auto 用户体验投射到兼容的车载信息娱乐系统。Android Auto 支持专为车载用途而设计的应用。
  • Android Automotive 是直接基于车载硬件运行的操作系统和平台。它是一个可定制程度非常高的全栈开源平台,可为信息娱乐体验提供强大的技术支持。Android Automotive 支持专为 Android 打造的应用,以及专为 Android Auto 打造的应用。

Automotive架构

先来看Android的架构,Android将一个系统从上到下分为几层,依次是System Apps系统应用层,Java API Framework系统框架层,Native C/C++ Libraries本地共享库,Android Runtime系统运行库,Hardware Abstraction Layer硬件抽象层,Linux Kernel系统驱动层。

关于Android平台架构可以参考《Android Platform Architecture 安卓平台架构》

Android Automotive是一个涉及系统应用层,系统框架层,本地共享库和硬件抽象层的模块。Android Automotive的系统架构如下

在这里插入图片描述

Android Automotive 架构

  • Car API:包含Android Automotive功能的 API。
  • CarService:系统框架层的服务,处理Android Automotive功能的业务逻辑。
  • Vehicle HAL:用于定义 OEM 可以实现的车辆属性的接口。

Android Automotive的界面

Android Automotive为了区别于手机系统,重新设计了一些专门在汽车设备上显示的应用,包括桌面、空调、通知等。

桌面应用程序

在这里插入图片描述

空调应用程序

在这里插入图片描述

通知界面

在这里插入图片描述

常用术语

缩写 全称 说明
HAL hardware abstraction layer 硬件抽象层
VHAL Vehicle HAL Android Automotive的硬件抽象层
RTOS Real Time Operating System 实时操作系统
OEM Original Equipment Manufacturer 原始设备制造商
MCU Motor Control Unit 微控制器单元
CAN Controller Area Network 制器域网
IVI In-Vehicle Infotainment 车载信息娱乐

一些资料链接

官方api文档: https://developer.android.google.cn/reference/android/car/Car?hl=en

官方Car指导: https://source.android.google.cn/docs/devices/automotive

Android Car开发指南:https://developer.android.google.cn/training/cars

Android 汽车应用介绍https://developer.android.google.cn/cars

附 Android主流版本、发布时间和对应的API level

版本名称Code name 名称 版本 版本发布时间 对应API
(no code name) 1 2008年9月23日 API level 1
(no code name) 1.1 2009年2月2日 API level 2
Cupcake 纸杯蛋糕 1.5 2009年4月17日 API level 3,NDK 1
Donut 甜甜圈 1.6 2009年9月15日 API level 4,NDK 2
Eclair 松饼 2.0.1 2009年12月3日 API level 6
Eclair 松饼 2.1 2010年1月12日 API level 7,NDK3
Froyo 冻酸奶 2.2.x 2010年1月12日 API level 8,NDK 4
Gingerbread 姜饼 2.3 2011年1月1日 API level 9,NDK5
Gingerbread 姜饼 2.3.3 2011年9月2日 API level 10
Honeycomb 蜂巢 3 2011年2月24日 API level 11
Honeycomb 蜂巢 3.1 2011年5月10日 API level 12,NDK 6
Honeycomb 蜂巢 3.2.x 2011年7月15日 API level 13
Ice Cream Sandwich 冰激凌三明治 4 2011年10月19日 API level 14,NDK 7
Ice Cream Sandwich 冰激凌三明治 4.0.3 2012年2月6日 API level 15,NDK 8
Jelly Bean 果冻豆 4.1 2012年6月28日 API level 16
Jelly Bean 果冻豆 4.1.1 2012年6月28日 API level 16
Jelly Bean 果冻豆 4.2 2012年11月 API level 17
Jelly Bean 果冻豆 4.3 2013年7月 API level 18
KitKat 奇巧 4.4 2013年7月24日 API level 19
Kitkat Watch 4.4W 2014年6月 API level 20
Lollipop(Android L) 棒棒糖 5 2014年6月25日 API level 21
Lollipop(Android L) 棒棒糖 5.1 API level 22
Marshmallow(Android M) 棉花糖 6 2015年5月28日 API level 23
Nougat(Android N) 牛轧糖 7 2016年5月18日 API level 24
Nougat(Android N) 牛轧糖 7.1 2016年12月 API level 25
Oreo(Android O) 奥利奥 8 2017年8月22日 API level 26
Oreo(Android O) 奥利奥 8.1 2017年12月5日 API level 27
Pie (Android P) 9 2018年8月7日 API level 28
Q (Android Q) 10 2019年9月4日 API level 29
11(Android R)(Red Velvet Cake) 红丝绒蛋糕 11 2020年9月9日 API level 30
12(Android S)(Snow Cone) 刨冰 12 2021年5月19日 API level 31
13(Android T)(Tiramisu) 提拉米苏 13 2022年8月16日 API level 32

猜你喜欢

转载自blog.csdn.net/Jun_P/article/details/127116717