Как ссылаться на пользовательскую службу AIDL HAL в коде JNI (Android.bp)?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как ссылаться на пользовательскую службу AIDL HAL в коде JNI (Android.bp)?

Сообщение Anonymous »

У меня есть пользовательская настройка, при которой мне нужно взаимодействовать с пользовательским HAL через IPC в службе Android JNI. Я работаю следующим образом:
HMI -> CustomSensorManager -> AIDL -> Пользовательская системная служба -> Binder IPC -> Пользовательская служба JNI -> AIDL -> Пользовательский сервис HAL (поставщик/фреймворк).
Я успешно создал собственный HAL, который считывает данные датчиков. Вот Android.bp для службы HAL:

Код: Выделить всё

cc_binary {
name: "android.hardware.sensors-service",
vendor: true,
relative_install_path: "hw",
init_rc: ["android.hardware.sensors-service.rc"],
vintf_fragments: ["android.hardware.sensors-service.xml"],

srcs: [
"Sensors.cpp",
"service.cpp",
"ConvertUtils.cpp",
],

shared_libs: [
"libbase",
"liblog",
"libhardware",
"libbinder_ndk",
"libbinder",
"libutils",
"android.hardware.vsensors-V1-ndk",
],
}
Ниже представлена ​​структура папок для пользовательского HAL.
[img]https://i .sstatic.net/BHl0qGjz.png[/img]

Я также написал интерфейс AIDL для HAL следующим образом:

Код: Выделить всё

aidl_interface {
name: "android.hardware.vsensors",
vendor: true,
srcs: ["android/hardware/vsensors/*.aidl"],
stability: "vintf",
owner: "ABCD",
backend: {
cpp: {
enabled: false,
},
java: {
sdk_version: "module_current",
},
},
}
Ниже представлена ​​структура папок для helpl_interface
[img]https://i.sstatic. net/3K3d57fl.png[/img]

Проблема:
Теперь я хочу взаимодействовать с этим сервисом HAL на уровне JNI. Я добавляю код службы JNI:

Код: Выделить всё

frameworks/base/services/core/jni/Android.bp
frameworks/base/services/core/jni/com_android_server_CustomSensorService.cpp
frameworks/base/services/core/jni/onload.cpp
Ниже приведен код, в котором я пытаюсь получить службу HAL с помощью AIDL через IPC, но не могу правильно ссылаться на интерфейс AIDL ISensors.
JNI Код (com_android_server_CustomSensorService.cpp):

Код: Выделить всё

static sp getSensorService() {
if (gSensorService == nullptr) {
sp sm = defaultServiceManager();
sp binder = sm->getService(String16("android.hardware.vsensors.ISensor/default"));
if (binder != nullptr) {
gSensorService = android::interface_cast(binder);
LOGI("Successfully connected to ISensors service");
} else {
LOGE("Failed to connect to ISensors service");
}
}
return gSensorService;
}
Проблема:
Я не уверен, как правильно ссылаться или интегрировать helpl_interface для HAL в frameworks/base/services/core/jni/Android .bp-файл. Как правильно сослаться на интерфейс AIDL или добавить его, чтобы уровень JNI мог его найти?
Любые рекомендации или примеры того, как правильно связать AIDL для HAL с уровнем JNI, будут полезны. быть оцененным по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/790 ... android-bp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как ссылаться на пользовательскую службу AIDL HAL в коде JNI (Android.bp)?
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Какой диспетчер служб и драйвер связующего используются для связи между системой и HAL через стабильные AIDL.
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Подключить службу с приложением через AIDL в AOSP
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Подключить службу с приложением через AIDL в AOSP
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Android JNI обнаружила ошибку в приложении: obj == null, но не имеет кода JNI [libc.so]
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»