ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL) เป็นระดับชั้นการจัดการโดยตรงประเภทหนึ่งที่มี อินเทอร์เฟซมาตรฐานสำหรับผู้จำหน่ายฮาร์ดแวร์เพื่อนำไปใช้ HAL ช่วยให้ผู้จำหน่ายฮาร์ดแวร์ สามารถติดตั้งใช้งานฟีเจอร์ระดับล่างที่เฉพาะเจาะจงกับอุปกรณ์ได้โดยไม่ส่งผลกระทบหรือ แก้ไขโค้ดในเลเยอร์ระดับสูง
คำที่จำเป็น
ต่อไปนี้คือรายการคำจำกัดความของคำศัพท์ที่ใช้ในส่วนนี้ของ เอกสารประกอบ
- ภาษาที่ใช้สื่อสารข้อมูลระหว่างคอมโพเนนต์ของ Android (AIDL)
- ภาษาที่คล้ายกับ Java ซึ่งใช้ในการกำหนดอินเทอร์เฟซในลักษณะที่ไม่ขึ้นอยู่กับ ภาษาโปรแกรมที่ใช้ AIDL ช่วยให้ไคลเอ็นต์ HAL และบริการ HAL สื่อสารกันได้
- HAL ที่เชื่อมโยง
- HAL ที่สื่อสารกับกระบวนการอื่นๆ โดยใช้การเรียก การสื่อสารระหว่างกระบวนการ (IPC) ของ Binder HAL ที่ใช้ Binder จะทำงานในกระบวนการแยกต่างหากจากไคลเอ็นต์ที่ใช้ HAL HAL ที่เชื่อมโยงจะได้รับการลงทะเบียนกับผู้จัดการบริการเพื่อให้ไคลเอ็นต์เข้าถึงความสามารถของ HAL ได้ HAL ที่เขียนขึ้นสำหรับ Android 8 ขึ้นไปจะใช้ Binder
- ไคลเอ็นต์ HAL
- กระบวนการที่เข้าถึงบริการ HAL
- อินเทอร์เฟซ HAL
- อินเทอร์เฟซทั่วไปที่ทั้งไคลเอ็นต์และบริการ HAL ใช้ในการสื่อสาร
- บริการ HAL
โค้ดเฉพาะฮาร์ดแวร์ เช่น โค้ดที่สื่อสารกับกล้องของอุปกรณ์ เฉพาะของคุณ คุณต้องใช้ HAL ที่จำเป็นทั้งหมดซึ่งแสดงอยู่ใน เมทริกซ์ความเข้ากันได้สำหรับการเผยแพร่ที่คุณกำหนดเป้าหมายในพาร์ติชันของผู้ให้บริการ ดูข้อมูลเพิ่มเติมเกี่ยวกับเมทริกซ์ความเข้ากันได้ได้ที่เมทริกซ์ความเข้ากันได้
นอกจากนี้ คุณยังสร้างอินเทอร์เฟซ HAL ใหม่หรือขยายอินเทอร์เฟซของ HAL เพื่อ รองรับความสามารถเฉพาะของฮาร์ดแวร์ได้ด้วย
- ภาษาที่ใช้นิยามอินเทอร์เฟซสำหรับฮาร์ดแวร์ (HIDL)
ภาษาที่ใช้กำหนดอินเทอร์เฟซในลักษณะที่ไม่ขึ้นอยู่กับ ภาษาโปรแกรมที่ใช้ HIDL ช่วยให้การสื่อสารระหว่างไคลเอ็นต์ HAL และบริการ HAL เป็นไปได้
- HAL ของกระบวนการเดียวกัน (SP)
ชุด HAL ที่ห่อหุ้มไว้แบบจำกัด Google เป็นผู้ควบคุมการเป็นสมาชิกในชุดข้อมูล SP HAL มีดังนี้
- HAL ของ Stable C mapper 5
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (ระบบ Android จัดให้ มีการห่อหุ้มเสมอ)
- android.hardware.renderscript@1.0
- HAL ที่ห่อหุ้ม
บริการ HAL ที่สร้างขึ้นก่อน Android 8 แต่มีการห่อหุ้มใน AIDL หรือ HIDL Wrapper เพื่อให้ทำงานกับ Android 8 ขึ้นไปได้
ต้องทำอะไรต่อ
- ดูวิธีใช้บริการ HAL ได้ที่ AIDL สำหรับ HAL
- หากต้องการดูวิธีสร้างหรือขยาย HAL ที่มีอยู่ โปรดดูอินเทอร์เฟซแบบขยายที่แนบมา