硬體抽象層 (HAL) 總覽

硬體抽象層 (HAL) 是一種抽象層,其中包含硬體供應商可實作的標準介面。HAL 可讓硬體供應商實作較低層級的裝置專屬功能,且不會影響或修改較高層級的程式碼。

必要條款

以下列出本章節所用詞彙的定義:

Android 介面定義語言 (AIDL)
類似 Java 的語言,用於以不受使用程式設計語言影響的方式定義介面。AIDL 可讓 HAL 用戶端與 HAL 服務之間進行通訊。
繫結 HAL
使用繫結器處理序間通訊 (IPC) 呼叫,與其他程序通訊的 HAL。繫結化 HAL 的執行程序與使用繫結的 HAL 不同,綁定 HAL 會註冊至服務管理員,以便用戶端存取其功能。針對 Android 8 以上版本編寫的 HAL 會經過繫結狀態。
HAL 用戶端
存取 HAL 服務的程序。
HAL 介面
HAL 用戶端和服務用於通訊的通用介面。
HAL 服務

硬體專屬程式碼,例如用於特定裝置相機的程式碼。針對在廠商分區中指定的版本,您必須為相容性矩陣實作所有必要的 HAL。如要進一步瞭解相容性矩陣,請參閱「相容性矩陣」。

您也可以建立新的 HAL 介面,或擴充 HAL 的介面,以支援硬體的獨特功能。

硬體介面定義語言 (HIDL)

一種語言,可用來以不受使用中程式設計語言影響的方式定義介面。HIDL 可讓 HAL 用戶端與 HAL 服務之間進行通訊。

相同程序 (SP) HAL

一組受限的包裝 HAL。此組合中的會員資格由 Google 控管。SP HAL 包括:

  • 穩定的 C Mapper 5 HAL
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (由 Android 系統提供,一律包裝)
  • android.hardware.renderscript@1.0
包裝 HAL

在 Android 8 之前建立的 HAL 服務,但已包裝在 AIDL 或 HIDL 包裝函式中,以便與 Android 8 以上版本搭配運作。

後續步驟