当前位置: 首页 > news >正文

【AAOS】CarService -- Android汽车服务

概述

Android Automative OS理解为Android OS + Android Automative Service,而CarService就是提供汽车相关功能的最主要模块。

  • CarService与Android OS的关系:CarService运行于独立的进程中,其作为原有Android服务的补充,在汽车设备上运行。CarService在整体车载通信中起到承上启下的作用。

        用户会通过显示在屏幕上App,将对车辆的操作信息通过Car API 传递给Framework Service,Service再通过HIDL/AIDL将信息处理后传递给HAL Service,HAL Service再将数据处理后传递给MCU,MCU通过CAN bus将信息传递给汽车上的各个ECU,然后由ECU对汽车的机械零部件进行控制,这样就完成了一次从Android APP到车辆机械零部件间的通信。

HIDL是一种类似于AIDL的跨进程通信手段,主要应用于HAL层程序的跨进程通信。Google在Android 8中引入并在Android 10中废弃,Android 10 以后逐渐被AIDL取代。

  • CarService 源码位置:/packages/services/Car/service/ 
packages/services/Car/car-lib/src/android/car/ICar.aidl
packages/services/Car/service/src/com/android/car/ICarImpl.java
packages/services/Car/service/src/com/android/car/CarServiceBase.java
packages/services/Car/service/src/com/android/car/CarServiceUtils.java
packages/services/Car/service/src/com/android/car/CarServiceImpl.java
packages/services/Car/service-builtin/src/com/android/car/CarService.java
frameworks/opt/car/services/builtInServices/src/com/android/internal/car/CarServiceHelperService .java

 CarService组成

作为 Android Automotive 的核心进程,原生的CarService业务量非常庞大,包含了许多与汽车相关的服务。所有应用都需要通过 CarService 来查询、控制整车的状态。例如:车辆的速度、档位、点火状态等等,CarService有许多子服务,负责具体功能。

No类别Service名描述客户端备注
1adminCarDevicePolicyService汽车设备策略服务CarDevicePolicyManagerAAOS 12添加
2amCarActivityService汽车Activity服务CarActivityManagerAAOS 13添加
3

FixedActivityService

监控显示器顶部的Activity,并确保在固定模式下的Activity在崩溃或因任何原因进入后台时重新启动。

AAOS 13添加

此组件还监视目标包的更新,并在更新完成后重新启动它。

4audioCarAudioService汽车音频服务CarAudioManagerAAOS 7添加
5bluetoothCarBluetoothService汽车蓝牙服务CarBluetoothManagerAAOS 8添加
6clusterClusterHomeService仪表Home服务ClusterHomeManagerAAOS 12添加
7

ClusterNavigationService

仪表导航服务

相关文章:

  • 机器学习:opencv--摄像头OCR
  • ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到
  • Python爬虫之requests(二)
  • 基于SSM+Vue+MySQL的在线视频学习系统
  • 技术周刊第2期: Cursor 面临的挑战 -2024
  • 深度学习技术在流体力学中的应用与实操培训【1/3理论课程2/3实操课程】
  • python 实现random forest classifier随机森林分类器算法
  • 王道-计网
  • 工具类:JWT
  • 【Golang】Go语言字符串处理库--strings
  • Apache Solr:深入探索与常见误区解析
  • Docker-2.如何保存数据退出
  • STL与PLY格式转化
  • 基于Spring Boot+Vue的减肥健康管理系统设计和实现【原创】(BMI算法,协同过滤算法、图形化分析)
  • Redis 介绍
  • [译]前端离线指南(上)
  • 【个人向】《HTTP图解》阅后小结
  • conda常用的命令
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java程序员幽默爆笑锦集
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • pdf文件如何在线转换为jpg图片
  • 翻译--Thinking in React
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 时间复杂度与空间复杂度分析
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #{}和${}的区别是什么 -- java面试
  • #NOIP 2014# day.2 T2 寻找道路
  • #每日一题合集#牛客JZ23-JZ33
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (笔试题)合法字符串
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)windows配置JDK环境
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计大学生兼职系统
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)Linux Shell编程——输入输出重定向
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)关于pipe()的详细解析
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .chm格式文件如何阅读
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET IoC 容器(三)Autofac
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET6实现破解Modbus poll点表配置文件
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码