--------本文摘自google官方关于automotive架构讲解内容。转载请注明出处。---------

借助各种总线拓扑,很多汽车子系统都可以实现互连以及与车载信息娱乐 (IVI) 系统的连接。不同的制造商提供的确切总线类型和协议之间有很大差异(甚至同一品牌的不同车型之间也是如此),例如控制器区域网络 (CAN) 总线、局域互联网络 (LIN) 总线、面向媒体的系统传输 (MOST) 总线以及汽车级以太网和 TCP/IP 网络(如 BroadR-Reach)。

Android Automotive 的硬件抽象层 (HAL) 为 Android 框架提供了一致的接口(无需考虑物理传输层)。因此车载 HAL 是开发 Android Automotive 实现的接口。

系统集成商可以将特定于功能的平台 HAL 接口(如 HVAC)与特定于技术的网络接口(如 CAN 总线)连接,以实现车载 HAL 模块。典型的实现可能包括运行专有实时操作系统 (RTOS) 的专用微控制器单元 (MCU),以用于 CAN 总线访问或类似操作,该微控制器单元可通过串行链路连接到运行 Android Automotive 的 CPU。除了专用的 MCU,还可以将总线访问作为虚拟 CPU 来实现。只要实现符合车载 HAL 的接口要求,每个合作伙伴都可以选择适合硬件的架构。

架构

车载HAL是汽车与车辆网络服务之间的接口定义:

图1.车载HAL与Android Automotive架构

如下是对相关类的解析:

  • Car API:包含 CarHvacManager 和 CarSensorManager 等 API。如需详细了解受支持的 API,请参阅 /platform/packages/services/Car/car-lib。

  • CarService:位于 /platform/packages/services/Car/。

  • VehicleNetworkService:通过内置安全机制控制车载 HAL。仅限访问系统组件(第三方应用等非系统组件需使用 Car API)。原始设备制造商 (OEM) 可以通过 vns_policy.xml 和 vendor_vns_policy.xml 控制访问权限。位于 /platform/packages/services/Car/vehicle_network_service/;要查看用于访问车辆网络的库,请参阅 /platform/packages/services/Car/libvehiclenetwork/。

  • 车载 HAL:定义 OEM 可以实现的车辆属性的接口。包含属性元数据(例如,车辆属性是否为 int 以及允许使用哪些更改模式)。位于 hardware/libhardware/include/hardware/vehicle.h。要了解基本参考实现的相关信息,请参阅 hardware/libhardware/modules/vehicle/。

有关更多详情,请参阅车辆属性。

安全性

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

  • 仅限系统(由 vns_policy.xml 控制)

  • 允许拥有权限的应用访问(通过汽车服务)

  • 无需任何权限即可访问(通过汽车服务)

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

验证

AOSP 包含开发过程中使用的以下测试资源:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    加载车载 HAL 并执行简单操作的命令行原生工具。它有助于系统在开发的早期阶段启动并运行。

  • packages/services/Car/tests/carservice_test/
    包含使用模拟车载 HAL 属性进行的汽车服务测试。每个属性的预期行为都会在测试中实现,这是了解预期行为的绝佳起点。

  • hardware/libhardware/modules/vehicle/
    基本参考实现。

Android Car automotive解析相关推荐

  1. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

  2. Android源码解析(一)动画篇-- Animator属性动画系统

    Android源码解析-动画篇 Android源码解析(一)动画篇-- Animator属性动画系统 Android源码解析(二)动画篇-- ObjectAnimator Android在3.0版本中 ...

  3. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

  4. Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

    本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/act ...

  5. Android Service完全解析,关于服务你所需知道的一切(下)

    转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...

  6. Android Volley完全解析3:定制自己的Request

    原文链接:http://blog.csdn.net/guolin_blog/article/details/17612763,CSDN 郭霖 经过前面两篇文章的学习,我们已经掌握了Volley各种Re ...

  7. Android Volley完全解析2:使用Volley加载网络图片

    原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 在上一篇文章中,我们了解了Volley到底是什么,以及它的 ...

  8. Android Volley完全解析1:初识Volley的基本用法

    原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 1. Volley简介 我们平时在开发Android应用的 ...

  9. 关于Android中XML解析方式

    XML解析一般有三种方式:DOM .SAX.PULL. SAX解析器:它是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作.当事件源产生事件后,调用事件处理器相应的 ...

最新文章

  1. jzoj 6302. 提高组
  2. js值的拷贝和值的引用_到达P值的底部:直观的解释
  3. 数据安全架构设计与实战~思维导图
  4. 迭代器 java_Java设计模式8:迭代器模式
  5. 获取spring里的bean
  6. css 特殊性 权重排列
  7. (一二四)给类对象赋值、以及类对象的返回值
  8. 用手机约会为何胜过电脑?
  9. 如果人生只剩最后一天,你想在这天干什么?
  10. CCF NOI1042 发奖学金
  11. 染成茜色的坂道 文本提取(导出)方法
  12. H3CSE园区-SSH
  13. java opencv 模板匹配算法_浅谈opencv模板匹配算法原理
  14. Spark入门程序(idea,scala)
  15. 【python】短信验证之腾讯云短信验证详细步骤
  16. 《UniBench A Benchmark for Multi-Model Database Management Systems》阅读笔记
  17. TortoiseSVN配置
  18. html5+连连看+抽奖,html 大转盘抽奖
  19. Qlik view 连接数据库
  20. Android开发随手记1

热门文章

  1. Angular+arcgisjs之平面地图测距、测面积、搜索
  2. iOS小技能: 集成社会化分享(代理商展业二维码)
  3. 钻石值钱吗?python分析近年钻石价格走势【包含图表分析】
  4. 共享文件夹服务器内存资源不足,『excel文件打开就提示可用资源不足,无法完成此任务』共享文件夹怎么设置...
  5. 公寓酒店项目工程智能门锁的种类以及系统有哪些?
  6. 爱迪尔 门锁接口文档_爱迪尔门锁软件管理系统
  7. 最小二乘法,简明公式整理,数学证明,matlab程序(自写代码、lsqcurvefit函数、fminsearch函数)
  8. NFT 的洗盘交易,真的赚钱吗?
  9. BIGO 的数据管理与应用实践
  10. python3下tensorflow练习(八)之迁移学习