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

【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名 描述 客户端 备注
1 admin CarDevicePolicyService 汽车设备策略服务 CarDevicePolicyManager AAOS 12添加
2 am CarActivityService 汽车Activity服务 CarActivityManager AAOS 13添加
3

FixedActivityService

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

AAOS 13添加

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

4 audio CarAudioService 汽车音频服务 CarAudioManager AAOS 7添加
5 bluetooth CarBluetoothService 汽车蓝牙服务 CarBluetoothManager AAOS 8添加
6 cluster ClusterHomeService 仪表Home服务 ClusterHomeManager AAOS 12添加
7

ClusterNavigationService

仪表导航服务


http://www.kler.cn/a/328332.html

相关文章:

  • Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
  • C 语言标准库 - <stdlib.h>
  • 机器翻译-基础与模型
  • 【初阶数据结构与算法】线性表之栈和队列的定义与实现(含源码和有效的括号练习)
  • 身份证号码校验
  • 深入解析大带宽服务器:性能优势与选择指南
  • 【Web】Electron:第一个桌面程序
  • Python与C#关于switch的使用区别
  • [python][pipenv]pipenv的使用
  • 输出 / 目录下所有目录文件的大小并排序
  • 如何改变音频声音大小?关于改变音频大小的方法介绍
  • NLP任务之文本分类(情感分析)
  • 简单vue指令实现 el-table 可拖拽表格功能
  • Qt C++设计模式->享元模式
  • Windows远程Kylin系统-xrdp
  • CTF中文件包含
  • 【优选算法】(第三篇)
  • IDEA 系列产品 下载
  • 前后端传参
  • Android 已经过时的方法用什么新方法替代?
  • 通信工程学习:什么是SMTP简单邮件传输协议
  • windows C++-计划组
  • 机器学习西瓜书——线性判别分析LDA
  • 使用PyTorch实现自然语言处理:从基础到实践
  • Go基础学习07-map注意事项;多协程对map的资源竞争;sync.Mutex避免竟态条件
  • QEMU使用Qemu-Guest-Agent传输文件、执行指令等