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