什么是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相关的模块了,系统的学习下。

不负时光 不虚此生。

【Android Camera开发】Android Automotive介绍相关推荐

  1. Android camera(4)---Android Camera开发之基础知识篇

    Android Camera开发之基础知识篇 转自:https://blog.csdn.net/feiduclear_up/article/details/51968975#jump5 概述 Andr ...

  2. Android 高级开发 JNI NDK 介绍与使用

    Android 高级开发 JNI & NDK 介绍与使用 前言 对于没接触过的领域,即是挑战也是机遇,不仅能够提升自己的能力.还能够学习到新的技术知识 而学习新的技术的时候,最好是从头开始按照 ...

  3. Android Camera 开发常见专业术语名词解释

    Android Camera 开发常见专业术语名词解释 参考网址:http://m.blog.csdn.net/king1425/article/details/62224468 相机常见专业术语名词 ...

  4. Android Camera开发(一)之基础知识

    概述 Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助In ...

  5. Android Camera开发系列(下)——自定义Camera实现拍照查看图片等功能

    Android Camera开发系列(下)--自定义Camera实现拍照查看图片等功能 Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 上 ...

  6. android修改用户名和密码错误,Android应用开发Android Studio 修改用户名、密码、URL等操作教程...

    本文将带你了解Android应用开发Android Studio 修改用户名.密码.URL等操作教程,希望本文对大家学Android有所帮助. 修改用户名.密码: 在AndroidStudio的ter ...

  7. android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程

    写在前面本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快 ...

  8. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...

    本文将带你了解Android应用开发Android 7.0  BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...

  9. android studio socket 失败,Android应用开发Android Studio建立Socket连接失败解决方法

    本文将带你了解Android应用开发Android Studio建立Socket连接失败解决方法,希望本文对大家学Android有所帮助. < Android Studio建立Socket连接失 ...

  10. android落下动画,Android应用开发android 购物车小球掉落动画

    本文将带你了解Android应用开发android 购物车小球掉落动画,希望本文对大家学Android有所帮助. 先贴效果图 对自定义View小红球的绘制 public class BallView ...

最新文章

  1. unity三维向量变化为角度_对于向量和矩阵的理解
  2. tushare写三因子模型
  3. 信息学奥赛一本通 1397:简单算术表达式求值 | OpenJudge NOI 1.12 01:简单算术表达式求值
  4. Android开发之蓝牙(Bluetooth)---源码目录
  5. 比特币现金和ICO 及其他6个加密在泰国获准交易
  6. iOS10 拍照崩溃问题
  7. modbus协议的常用测试工具
  8. 世界首个体细胞克隆猴在中国诞生;马云在达沃斯变魔术;阿里通信回应工信部约谈丨价值早报
  9. u检验中的查u界值表_统计学中,知道u值,如何确定P值,是通过查表吗
  10. 链接测试苹果手机软件,【苹果】苹果手机上如何使用免费观影软件?用TestFlight+某影视APP试试...
  11. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件
  12. HR问:“你为什么离开上一家公司?”,这样回答最机智
  13. 【STM32】OOK软解码
  14. Python zip zip_longest
  15. ui设计现状与意义_对于ui设计行业来说,用户界面设计的发展现状是什么?
  16. 第二章节 MongoDB的基本命令
  17. 打开Visual Studio Community 2017 报出“许可证已过期”
  18. 转:电容器的好坏测量
  19. 三极管应用电路---低通滤波电路
  20. 简直无敌!5年crud经验,全网独家首发!

热门文章

  1. RT throttling分析
  2. Linux下线程池源码实现
  3. 软件一般是用什么语言开发的
  4. 流氓软件与流氓系统的清理故事
  5. 初玩《剑与家园》体验和对游戏设计的一些思考
  6. linux服务器数据同步,Linux服务器数据定期同步和备份方式
  7. jqurey怎么写入html,html如何写入和创建功能到jquery
  8. 腾讯云的ping检测
  9. cocos2d 3.11获取机型和系统版本号
  10. mysql date的写法_mysql 对日期的写法 mybatis