0. 概述

CarEngine 封装了 CarService 的各种 Car*Manager,并提供了方便的 API 来连接 CarService、注册车辆信号、收发车辆信号等功能。

应用开发者只需要关注 CarEngine 定义的 Car Event,无需关注 Property ID,不用看矩阵表格,且车辆信号矩阵改变时也无需修改代码。

CarEngine 还提供方便的基于 shell 的调试工具,可以发送信号、链接上下行信号。

CarEngine 要做的是:「向上提供统一 API,向下兼容各种变化(CarService、信号矩阵)。」

目前 CarEngine 已集成进 M01 和 X01 中。

1. 接入 CarEngine

Android.bp 编译方式:

android_app {
    libs: [
        "liauto.carengine",
    ]
}

Android.mk 编译方式:

LOCAL_JAVA_LIBRARIES += \\
    liauto.carengine

Gradle 编译方式:

// Path: vendor/(chehejia|liauto)/packages/libs/CarEngine/prebuilts/liauto.carengine.jar
dependencies {
    compileOnly files('libs/liauto.carengine.jar')
}

在 AndroidManifest.xml 中声明使用 CarEngine 及声明调用 VHAL 的权限。

<uses-permission android:name="android.car.permission.CAR_VENDOR_EXTENSION" />

<application android:label="XXX">
    <uses-library android:name="liauto.carengine" />
</application>