硬體抽象層 (HAL) 總覽
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
硬體抽象層 (HAL) 是一種抽象層,具有可供硬體供應商實作的標準介面。HAL 可讓硬體供應商實作較低層級的裝置特定功能,而不會影響或修改較高層層的程式碼。
必要條款
以下列出本章節所用詞彙的定義:
- Android 介面定義語言 (AIDL)
- 用於定義介面的 Java 語言,與使用的程式設計語言無關。AIDL 可讓 HAL 用戶端與 HAL 服務之間進行通訊。
- 繫結式 HAL
- HAL,使用繫結器處理序間通訊 (IPC) 呼叫與其他程序通訊。繫結化 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 對應工具 5 HAL
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (由 Android 系統提供,一律包裝)
- android.hardware.renderscript@1.0
- 包裝 HAL
這是在 Android 8 之前建立,但已包裝在 AIDL 或 HIDL 包裝函式的 HAL 服務,能夠與 Android 8 以上版本搭配使用。
後續步驟
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-07-10 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]