Android Car automotive解析
--------本文摘自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是汽车与车辆网络服务之间的接口定义:
如下是对相关类的解析:
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解析相关推荐
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...
- Android源码解析(一)动画篇-- Animator属性动画系统
Android源码解析-动画篇 Android源码解析(一)动画篇-- Animator属性动画系统 Android源码解析(二)动画篇-- ObjectAnimator Android在3.0版本中 ...
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/act ...
- Android Service完全解析,关于服务你所需知道的一切(下)
转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...
- Android Volley完全解析3:定制自己的Request
原文链接:http://blog.csdn.net/guolin_blog/article/details/17612763,CSDN 郭霖 经过前面两篇文章的学习,我们已经掌握了Volley各种Re ...
- Android Volley完全解析2:使用Volley加载网络图片
原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 在上一篇文章中,我们了解了Volley到底是什么,以及它的 ...
- Android Volley完全解析1:初识Volley的基本用法
原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 1. Volley简介 我们平时在开发Android应用的 ...
- 关于Android中XML解析方式
XML解析一般有三种方式:DOM .SAX.PULL. SAX解析器:它是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作.当事件源产生事件后,调用事件处理器相应的 ...
最新文章
- jzoj 6302. 提高组
- js值的拷贝和值的引用_到达P值的底部:直观的解释
- 数据安全架构设计与实战~思维导图
- 迭代器 java_Java设计模式8:迭代器模式
- 获取spring里的bean
- css 特殊性 权重排列
- (一二四)给类对象赋值、以及类对象的返回值
- 用手机约会为何胜过电脑?
- 如果人生只剩最后一天,你想在这天干什么?
- CCF NOI1042 发奖学金
- 染成茜色的坂道 文本提取(导出)方法
- H3CSE园区-SSH
- java opencv 模板匹配算法_浅谈opencv模板匹配算法原理
- Spark入门程序(idea,scala)
- 【python】短信验证之腾讯云短信验证详细步骤
- 《UniBench A Benchmark for Multi-Model Database Management Systems》阅读笔记
- TortoiseSVN配置
- html5+连连看+抽奖,html 大转盘抽奖
- Qlik view 连接数据库
- Android开发随手记1
热门文章
- Angular+arcgisjs之平面地图测距、测面积、搜索
- iOS小技能: 集成社会化分享(代理商展业二维码)
- 钻石值钱吗?python分析近年钻石价格走势【包含图表分析】
- 共享文件夹服务器内存资源不足,『excel文件打开就提示可用资源不足,无法完成此任务』共享文件夹怎么设置...
- 公寓酒店项目工程智能门锁的种类以及系统有哪些?
- 爱迪尔 门锁接口文档_爱迪尔门锁软件管理系统
- 最小二乘法,简明公式整理,数学证明,matlab程序(自写代码、lsqcurvefit函数、fminsearch函数)
- NFT 的洗盘交易,真的赚钱吗?
- BIGO 的数据管理与应用实践
- python3下tensorflow练习(八)之迁移学习