เลเยอร์แอบสแตรกชันของฮาร์ดแวร์ (HAL) คือเลเยอร์แอบสแตรกชันประเภทหนึ่งที่มี สำหรับผู้ให้บริการฮาร์ดแวร์ที่นำไปใช้ได้จริง HAL ช่วยให้ฮาร์ดแวร์ ติดตั้งใช้งานฟีเจอร์เฉพาะอุปกรณ์ระดับล่าง โดยไม่ส่งผลกระทบ การแก้ไขโค้ดในเลเยอร์ระดับสูงขึ้น
คำที่จำเป็น
ต่อไปนี้เป็นรายการคำนิยามสำหรับคำที่ใช้ในส่วนนี้ของ เอกสารประกอบ:
- ภาษาการกำหนดอินเทอร์เฟซ Android (AIDL)
- ภาษาที่คล้ายกับ Java ใช้กำหนดอินเทอร์เฟซในลักษณะที่เป็นอิสระจาก ภาษาโปรแกรมที่ใช้ AIDL ช่วยให้สามารถสื่อสารระหว่าง ลูกค้า HAL และบริการ HAL
- HAL ที่มีพันธะผูกพัน
- HAL ที่สื่อสารกับกระบวนการอื่นๆ โดยใช้ การสื่อสารระหว่างกระบวนการ (Binder Inter-Process Communication หรือ IPC) Binderized HALs จะทำงานในกระบวนการที่แยกจากไคลเอ็นต์ที่ใช้กระบวนการดังกล่าว 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 ที่มีอยู่ โปรดดู ถึง แนบอินเทอร์เฟซเพิ่มเติมแล้ว