Интересно, зачем нужен HAL? Я новичок во внутренностях андроида.
Ниже мое понимание.
Шаг 1:
Служба Android взаимодействует с файлом .cpp через JNI. Службы предоставляют интерфейс Binder для прикладного уровня.
Шаг 2:
файл cpp использует libhardware [ hw_get_module() ] для загрузки модуля HAL. [то есть: dlopen].
Шаг 3. [Модуль HAL]
Модуль HAL напрямую взаимодействует с аппаратным драйвером.
ПРИМЕЧАНИЕ. Поправьте меня, если я ошибаюсь?
Я мог понять ход процесса. но почему между ними требуется модуль HAL?
Каковы другие преимущества, кроме динамической загрузки HAL?