Android automotive架构简介

架构

Automotive架构

在这里插入图片描述
上图是android automotive的简单架构图:

  1. 最上面的时car app,是一些车相关的应用,可以看作是在车上的预制应用。
  2. CarManager是app调用CarService的一个中间管理类,类似于WifiManager.
  3. CarService是具体的服务类,在自己独立的进程中,实现了AIDL,被应用通过CarManager调用。
  4. Vehicle HAL实现了HIDL服务
  5. 最下面的是车的各个ECU,可以通过can总线与这些ECU通信,例如仪表等。

Automotive与原有android的架构关系

在这里插入图片描述

从这幅图中我们可以看出,Android Automative是在原先Android的系统架构上增加了一些与车相关的(图中虚线框中绿色背景的)模块。
包括:

  1. Car App:包括OEM和第三方开发的App,例如CarHvacApp
    目录:package/apps/Car
  2. Car API:提供给汽车App特有的接口
    目录:package/services/Car/car-lib
  3. Car Service:系统中与车相关的服务
    目录:package/services/Car
  4. Vehicle Network Service:汽车的网络服务
  5. Vehicle HAL:汽车的硬件抽象层描述

package/services/Car代码目录

在这里插入图片描述
packages/services/Car下面有CarService,它是一个单独的app。
car-lib:包含了car api。

产品配置

Car App

/car_product/build/car.mk 这个文件中列出了汽车系统中专有的模块:

#Automotive specific packages

PRODUCT_PACKAGES += \

vehicle_monitor_service \

CarService \

CarTrustAgentService \

CarDialerApp \

CarRadioApp \

OverviewApp \

CarLensPickerApp \

LocalMediaPlayer \

CarMediaApp \

CarMessengerApp \

CarHvacApp \

CarMapsPlaceholder \

CarLatinIME \

CarUsbHandler \

android.car \

libvehiclemonitor-native \


这个列表中,首字母大写的模块基本上都是汽车系统中专有的App。这些App的源码位于/platform/packages/services/Car/或者/platform/packages/apps/Car/目录下。当然,OEM厂商可以添加更多的App。

CarService

Bp编译选项

LOCAL_PACKAGE_NAME := CarService


Androidmanifest文件:系统常驻进程

在这里插入图片描述
CarService类
在这里插入图片描述

参考

https://zhuanlan.zhihu.com/p/607874721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值