怎么做淘宝联盟网站,常见的推广平台有哪些,杭州做搜索引擎网站的公司,免费响应式模板网站模板前言
Android Automotive 是一个基本 Android 平台#xff0c;可运行 IVI 系统中预安装的 Android 应用以及可选的第二方和第三方 Android 应用。
本系列文档将会系统的介绍 Android Automotive 的功能、架构、逻辑等。模块逻辑将从 应用api接口、系统服务、底层服务#x…前言
Android Automotive 是一个基本 Android 平台可运行 IVI 系统中预安装的 Android 应用以及可选的第二方和第三方 Android 应用。
本系列文档将会系统的介绍 Android Automotive 的功能、架构、逻辑等。模块逻辑将从 应用api接口、系统服务、底层服务各层展开介绍。本篇文档将从整体的角度描述 Android Automotive例如定义、功能、架构等后续将从各层展开详细描述。 下一篇AndroidAutomotive模块介绍二应用及接口介绍
正文
1、介绍
1.1 定义
什么是 Android Automotive
Android Automotive 是一个基本 Android 平台可运行 IVI In-Vehicle Infotainment系统中预安装的 Android 应用以及可选的第二方和第三方 Android 应用。
Android Automotive 可为车载信息娱乐系统和车机提供开放性、自定义和规模化特性。开放性在免费的开源代码库中提供基本的车载信息娱乐功能可进一步提升效率。借助自定义特性实现人员能够在适当的情况下实现商品的差异化。规模化特性是通过 Android 的通用框架、语言和 API 来实现的所有这些都使得全球数十万 Android 开发者的开发专长和成品软件得以重复使用。
1.2 发展
1.2.1 Android O 版本特性
Google 在 Android O 版本上新增了 Treble 化对 Android 系统的框架进行了一次较大的改变打算彻底解决 Android 系统碎片化的问题让制造商以更低的成本、更轻松、更快速的将设备升级到新版的 Android 系统Google 称这个架构为 Treble 架构。Android O 版本之前的系统架构中Android Framework 与 Android Hal 是打包成一个 system.img 的Framework 与 Hal 之间是紧耦合的通过链接对应的硬件 so 库的方式建立功能交互所以 Android Framework 的升级的同时也需要对 Android Hal 进行升级。
Android O 版本之前通信架构
Android O 之后的版本Android 更新了系统框架设计成为 Treble 架构架构将 Hal 层与 Framework 层分离将 Android 系统层服务打包到 system.img 中Android Hal 打包到 vendor.img 中。引入了 HIDL 的接口语言来处理 Framework 与 Hal 之间的通信。
Android O 版本之后的通信架构
1.2.2 Android Automotive 发展
Android O 版本中推出了 Treble 架构的同时又推出了 Android Automotive 功能该功能是专门为车载而设计的一个功能模块。同时也表示 Google 正式进军汽车车载领域。
Android Automotive 就是 Android 平台在 Android 强大的功能基础上扩展了 Android 在车载上的功能增加了对汽车特定要求、功能和技术的支持成为一个一站式全栈车载信息娱乐平台。
Google 在多年前已经布局车载领域2014 年推出了 Android Auto专门为驾驶环境而设计的一个 APP。功能是将手机端的应用投屏到车机上在有线或者无线连接的基础上将手机端的应用、信息、界面显示到车机屏幕上扩展车机的功能使用。
基于手机端的 Android Auto 方案Google 将适合车载的功能集成在车载 Android 系统推出了 Android Automotive这样解决了需要有线或者无线连接的通信介质这样开发的重点就在车机端可以和车身信号进行交互做到车机与各 ECU 件之间功能的完美融合但是对于应用来说车机端的应用还是依赖各厂商的定制提供的原生应用比较少。
2、架构
2.1 原生架构图
这里引用一张原生的架构图来看下 Android Automotive 架构
从上面的原生架构图中我们可以发现Google 把 Android Automotive 分为 System Apps、Android Framewrok API、Android System Servies、Vehicle Hal 四层功能。
System Apps车载上层的应用软件主要用于实现人机交互功能包括空调显示、车辆健康、泊车辅助等。Android Framework API提供给上层应用的车辆 API 接口。Android System Services系统中与车相关的服务可以统称为 CarService由很多个子 Service 组成包括 CarHavcService、CarSensorService 等。Vehicle Hal用于定义 OEM 可以实现的车辆属性的接口。Android Automotive 的硬件抽象层 (HAL) 为 Android 框架提供了一致的接口。系统集成商可以将特定于功能的平台 HAL 接口如 HVAC与特定于技术的网络接口如 CAN 总线连接以实现车载 HAL 模块。典型的实现可能包括运行专有实时操作系统 (RTOS) 的专用微控制器单元 (MCU)该微控制器单元用于 CAN 总线访问或类似操作可通过串行链路连接到运行 Android Automotive 的 CPU。除了专用 MCU还可以将总线访问作为虚拟 CPU 来实现。只要实现符合车载 HAL 的接口要求每个合作伙伴都可以选择适合硬件的架构。
2.2 架构图
那么将原生架构图扩展开来整体架构图如下所示
上图中是 Android Automotive 的架构图上层的 CarServiceApp 通过 CarServiceApi 接口调用到 Framework 服务中中间通过 Aidl 通信方式交互。Framework CarService 服务通过 android.hardware.automotive.vehicle 库 Hidl 方式与 Vehicle Hal 层交互。Vehicle Hal 层下是与 OEM 厂商建立交互逻辑实现方式多样。
上图在架构上对于 Car API 与 Car Service 展开子模块描述Android Automotive 中 APP、Service 包含许多子模块后续将会展开描述
2.3 架构简要描述
2.3.1 Car Service App
Car Service App 代码路径为/android/packages/apps/Car。
路径下包含许多应用Android Automotive 为系统定制了一些专门适用车载系统的应用以代替传统的手机应用模块。
2.3.2 Car Service Api
Car Service Api 代码路径为/android/packages/services/Car/car-lib。
系统应用或者 OEM 三方应用通过 Car Service Api 调用 Car Service 功能。
2.3.3 Car Service
Car Service 代码路径为/android/packages/services/Car。
系统框架层提供了多个模块来对 Android Automotive 进行支持最重要的有一个服务CarService (com.android.car)。
CarService 是一个类似 Android 系统中 SystemSever 的服务。它由一个服务启动而里面又控制着数十个子模块服务。CarService 中 CarService 只作为服务的入口具体的业务逻辑都在内部的子服务中处理。
2.3.4 Vehicle Hal
Vehicle Hal 代码路径为/android/hardware/interfaces/automotive。
VehicleService是一个native服务代码实现在目录 /android/hardware/interfaces/automotive/vehicle/2.0/default。
硬件抽象层主要是提供了一个native服务android.hardware.automotive.vehicle2.0-service负责处理车辆相关的业务。
3、总结
本篇文档中主要从整体的角度分析 Android Automotive包括系统架构以及架构各层之间的交互简要描述架构各层的功能及代码路径。后续将会对于各层功能展开描述。
下一篇AndroidAutomotive模块介绍二应用及接口介绍