Какво е основното предимство на наличието на HAL слой в Android?

Чудя се защо се изисква HAL?. Нов съм във вътрешните устройства на Android.

По-долу е моето разбиране.

Стъпка 1:

Услугата за Android взаимодейства с .cpp файла чрез JNI. Услугите разкриват Binder Interface за Application Layer.

Стъпка 2:

cpp файлът използва libhardware [ hw_get_module() ] за зареждане на HAL модула. [т.е.: dlopen].

Стъпка 3: [HAL модул]

Модулът HAL взаимодейства директно с хардуерния драйвер.

ЗАБЕЛЕЖКА: Поправете ме, ако греша?

Можех да разбера хода на процеса. но защо е необходим HAL модул между тях?.

Какви са другите предимства от динамичното зареждане на HAL?


person Whoami    schedule 13.05.2014    source източник


Отговори (3)


Основното предимство на HAL е, че той абстрахира различните реализации от различни доставчици и осигурява последователен API за горните слоеве.

person Ramesh Prasad    schedule 13.05.2014

Различните доставчици може да имат различни хардуерни конфигурации. Те могат да поддържат една и съща функционалност по различни начини. HAL се внедряват от доставчици на хардуер и Android не познава вътрешността им. Така че HAL е специфична за хардуера реализация (която е оптимизирана и персонализирана за основния хардуер) и предоставя общ интерфейс за работа.

person Abhishek Bansal    schedule 12.08.2014

  • Android HAL [Hardware Abstraction Layer] (абстрактно) преодолява празнината между хардуер и софтуер.
  • Приложението/рамката за Android комуникира с основния хардуер чрез Java API, а не чрез системни повиквания.
  • Но Linux има способността да обработва само системни повиквания от приложение.
  • Така се нуждаем от свързващ слой между рамката на android и системата на linux.
  • Android HAL позволява на приложението/рамката на Android да комуникира с драйверите на конкретното устройство за хардуера.
  • За приложение за Android HAL предоставя API, чрез които услугата може да отправи заявка към устройството.
  • И HAL използва функции, предоставени от по-ниско ниво на Linux система, за да обслужва заявката от android framework.
  • HAL е c/c++ слой, който е специфична за доставчика реализация.

Източник

person livemaker    schedule 09.04.2019