0

なぜHALが必要なのだろうか。私はアンドロイドの内部に不慣れです。

以下は私の理解です。

ステップ1:

Android サービスは、JNI を介して .cpp ファイルと対話します。サービスは、アプリケーション層のバインダー インターフェイスを公開します。

ステップ2:

cpp ファイルは libhardware [ hw_get_module() ] を使用して HAL モジュールをロードします。[すなわち: dlopen]。

ステップ 3: [HAL モジュール]

HAL モジュールは、ハードウェア ドライバーと直接対話します。

注: 間違っている場合は修正してください。

処理の流れが理解できました。しかし、なぜHALモジュールが間に必要なのですか?.

HAL を動的にロードすること以外に、どのような利点がありますか?

4

3 に答える 3

2

HAL の主な利点は、さまざまなベンダーによるさまざまな実装を抽象化し、上位レイヤーに一貫した API を提供することです。

于 2014-05-13T08:30:30.563 に答える
0
  • Android HAL [ハードウェア アブストラクション レイヤー] (要約) は、ハードウェアとソフトウェアの間のギャップを埋めます。
  • Android アプリケーション/フレームワークは、システム コールではなく Java API を介して基盤となるハードウェアと通信します。
  • しかし、Linux はアプリケーションからのシステム コールしか処理できません。
  • したがって、Android フレームワークと Linux システムの間に接着層が必要です。
  • Android HAL を使用すると、Android アプリケーション/フレームワークがハードウェア固有のデバイス ドライバーと通信できるようになります。
  • Android アプリケーションの場合、HAL は、サービスがデバイスにリクエストを送信できる API を提供します。
  • また、HAL は、下層の Linux システムが提供する機能を使用して、Android フレームワークからのリクエストを処理します。
  • HAL は、ベンダー固有の実装である ac/c++ レイヤーです。

ソース

于 2019-04-09T13:10:10.067 に答える