Как мне написать код, использующий библиотеку [email protected]?

Я пытаюсь научиться писать слой аппаратной абстракции (HAL). Вот путь, который я прошел до сих пор. Пожалуйста, поправьте меня, если я ошибаюсь.

  1. Скачал AOSP и успешно собрал (86%)
  2. Находится библиотека поддержки автомобилей Hal
  3. Расположен код C ++ android.hardware.automotive.vehicle.

Вещи, которые я предпринял после этих шагов, описанных ниже, не смогли распознать эти вышеперечисленные классы.

  1. Импортируйте классы android.hardware.automotive.vehicle в Android Studio для типичного Android-приложения, ориентированного на 29 уровень API.
  2. Добавление метатега приложения android.car
  3. Скопируйте / Вставьте весь исходный код в AOSP / packages / services / Car /
  4. Частично предполагалось добавить библиотеку [email protected] и попытаться получить к ней доступ через 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;

как, черт возьми, они получают доступ к этим классам?

Спасибо


person gerfmarquez    schedule 30.11.2020    source источник
comment
Думаю, я частично вывел ответ из этого другого сообщения, stackoverflow.com/ questions / 58119775 / android-studio-car-api Хотя я все еще сомневаюсь, что мне нужно включать весь jar-файл, или даже если обычная полная сборка AOSP сгенерирует все необходимые jar-файлы для конкретного пакета android.hardware.automotive .транспортное средство   -  person gerfmarquez    schedule 30.11.2020


Ответы (1)


Автомобиль HAL не предназначен для прямого доступа из приложений. Автосервис сделает это за вас.

У вас есть несколько вариантов в зависимости от того, чего вы на самом деле пытаетесь достичь:

  1. Научитесь писать HAL-сервисы - это все равно что писать драйвер для определенного оборудования (в данном случае чего-то, что предоставляет данные об автомобиле в Car Service).

  2. Научитесь писать клиенты HAL - попробуйте изменить EmbeddedKitchenSink. Обратите внимание, что вам нужно создать его с помощью AOSP, а не в AmdroidStudio, поскольку это системное приложение (а обычные приложения не имеют доступа к HAL).

  3. Изучите API автомобилей - вот для чего вам нужна автомобильная библиотека. Подробная информация о том, как его использовать: https://stackoverflow.com/a/63321234/14759774

person twasilczyk    schedule 13.12.2020