1

我正在尝试学习编写硬件抽象层(HAL)。这是我到目前为止所采取的路径,如果我在任何步骤中偏离,请纠正我。

  1. 下载 AOSP 并成功构建 (86%)
  2. 定位车辆 Hal 支持库
  3. 位于 android.hardware.automotive.vehicle C++ 代码。

之后我尝试了以下步骤,但未能成功识别上述类。

  1. 在 Android Studio 中导入 android.hardware.automotive.vehicle 类,用于针对 29 Api Level 的典型 Android 应用程序。
  2. 添加 android.car 应用的元标记
  3. 复制/粘贴 AOSP /packages/services/Car/ 下的所有源代码
  4. 部分考虑添加 android.hardware.automotive.vehicle@2.0.so 库并尝试通过 JNI 访问它(对此不太确定)。

请给我定位,我看到 github 上的一些存储库没有做任何特别的事情,并且他们能够以某种方式将包导入到这样的 java 类中。

import android.hardware.automotive.vehicle.V2_0.VehicleHwKeyInputAction;
import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess;

这里

他们到底是如何获得这些课程的?

谢谢

4

1 回答 1

0

Vehicle HAL 并不意味着可以直接从应用程序访问。汽车服务为您做到这一点。

根据您实际要完成的工作,您有几个选择:

  1. 学习编写 HAL 服务 - 这就像为给定硬件编写驱动程序(在这种情况下,是向 Car Service 提供汽车数据的东西)。

  2. 学习编写 HAL 客户端 - 首先尝试修改EmbeddedKitchenSink应用程序。请注意,您需要使用 AOSP 而不是在 AmdroidStudio 中构建它,因为这是一个系统应用程序(并且常规应用程序无权访问 HAL)

  3. 学习车辆 API - 这就是您需要汽车库的目的。有关如何使用它的详细信息:https ://stackoverflow.com/a/63321234/14759774

于 2020-12-13T19:39:04.393 回答