• 【Android Camera开发】Android Automotive介绍


    在这里插入图片描述

    什么是Android Automotive

    Android Automotive 是一个基本 Android 平台车载信息娱乐系统,简称IVI(In-Vehicle Infotainment)。

    Android Automotive OS 简称 AAOS,是扩展自 Android OS 的操作系统、直接基于车载硬件运行。和 Android 一样是一个可定制程度非常高的全栈开源平台。

    Android Automotive 就是 Android 平台。

    在这里插入图片描述

    Android Automotive 和 Android

    1. Android Automotive 并非 Android 的分支或并行开发版本。

    2. Android Automotive 扩展了 Android 平台。

    Android Automotive 和 Android Auto

    Auto 和 Automotive 的命名比较相似,貌似分不清楚,实则区别非常明显。

    ** Android Auto 不是 OS。**

    它是集成在 Android OS 里的 feature。

    当通过 USB、Wi-Fi 将 Android Phone 连接到支持 Android Auto 的车机上后,Android OS 将自动加载支持 Auto 模式下的 App 并将图像投屏到车机屏幕上。

    跟 CarPlay 一样,其本质上是投屏。Phone 提供计算、渲染,车机只是 Display,Display 和按键回传 Input 的事件,Phone 处理好之后将新的帧数据回传进行 Display。

    而 Android Automotive 是 OS,其归属于 AOSP 项目,代码也在 Android OS 之中。在编译的时候选择 automotive 的编译 target 即可生成车载机使用的 AAOS。

    在这里插入图片描述

    Android Automotive 架构

    Android Automative是在原先Android的系统架构上增加了一些与车相关的模块。

    在这里插入图片描述

    ** Car App:包括OEM和第三方开发的App **
    ** Car API:提供给汽车App特有的接口**
    ** Car Service:系统中与车相关的服务**
    ** Vehicle Network Service:汽车的网络服务**
    ** Vehicle HAL:汽车的硬件抽象层描述**

    Car App

    包括 OEM厂商和第三方的apk(android/packages/services/Car)
    在这里插入图片描述

    Car ApI

    提供给汽车app特有的接口。

    这些API是提供给Android automotive系统的app,对于其他平台(例如手机和平板)通常是没有意义的,所以这些API没有包含在Android Framework SDK中。

    代码路径:/packages/services/Car/car-lib/src/android/car/

    在这里插入图片描述

    上图只是展示了部分:

    下面介绍一下关键的接口:

    接口解释
    car.java包含了与车相关的基本API。例如:车辆后视镜,门,座位,窗口等。
    app →menu车辆应用菜单相关API。
    cluster仪表盘相关API。
    media多媒体相关API。
    hardware车辆硬件相关API。
    navigation导航相关API。
    settings设置相关API。

    Car Services

    Car Service并非一个服务,而是一系列的服务。

    Car Service集中在一个App中。可以想象,这个App需要非常高的权限,所以这是一个系统App。

    这些服务都在ICarImpl.java构造函数中列了出来: /packages/services/Car/service/src/com/android/car/ICarImpl.java

    Vehicle HAL

    代码路径:hardware/interfaces/automotive/vehicle/2.0/

    用于定义 OEM 可以实现的车辆属性的接口。
    包含属性元数据(例如,车辆属性是否为 int 以及允许使用哪些更改模式)。

    Vehicle HAL 支持 3 个级别的数据访问安全性:

    • 仅限系统(由 vns_policy.xml 控制)
    • 允许拥有权限的应用访问(通过汽车服务)
    • 无需任何权限即可访问(通过汽车服务)

    仅允许部分系统组件直接访问车辆属性,而车辆网络服务是把关程序。大多数应用需通过汽车服务的额外把关(例如,只有系统应用可以控制 HVAC,因为这需要仅授予系统应用的系统权限)。

    主要来看一下EVS的相关框架:

    EVS

    EVS,(Extended View System,扩展视图系统),包括以下系统组件:

    在这里插入图片描述

    代码路径:

    APP:packages/services/Car/evs/
    HAL:hardware/interfaces/automotive/evs/1.0/
    编译目标:system/bin/evs_app
    运行在init进程中,所以支持快速倒车。

    今天的学习就到这里了。_


    Ps:
    最近开始负责Evs相关的模块了,系统的学习下。

    不负时光 不虚此生。

    在这里插入图片描述

  • 相关阅读:
    基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)
    Java 超新星开源项目 Solon v1.10.10 发布
    2022 年十大 Python Web 开发框架
    spark底层为什么选择使用scala语言开发
    【每日一题】从数量最多的堆取走礼物
    深入浅出Spring注解ConfigurationProperties
    Boost Efficiency with a Unified App Testing Process
    前端面试的话术集锦第 6 篇:高频考点(事件机制 & 跨域 & 存储机制 & 浏览器缓存等)
    数据中台、BI业务访谈(四)—— 十个问题看本质
    Python中跨越多个文件使用全局变量
  • 原文地址:https://blog.csdn.net/u012739527/article/details/126362424