ภาพรวมเลเยอร์ Abstractionion ของฮาร์ดแวร์ (HAL)

Hardware Abstraction Layer (HAL) เป็นประเภทของ Abstraction Layer ที่มี อินเทอร์เฟซมาตรฐานสำหรับผู้จำหน่ายฮาร์ดแวร์ในการใช้งาน HAL ช่วยให้ผู้จำหน่ายฮาร์ดแวร์ สามารถติดตั้งใช้งานฟีเจอร์ระดับล่างที่เฉพาะเจาะจงของอุปกรณ์ได้โดยไม่ส่งผลกระทบหรือ แก้ไขโค้ดในเลเยอร์ระดับสูง

ข้อกำหนดที่จำเป็น

ต่อไปนี้เป็นรายการคำจำกัดความของคำศัพท์ที่ใช้ในส่วนนี้ของ เอกสารประกอบ

ภาษาที่ใช้สื่อสารข้อมูลระหว่างคอมโพเนนต์ของ Android (AIDL)
ภาษาที่คล้ายกับ Java ซึ่งใช้เพื่อกำหนดอินเทอร์เฟซในลักษณะที่ไม่ขึ้นอยู่กับ ภาษาโปรแกรมที่ใช้ AIDL ช่วยให้ไคลเอ็นต์ HAL และบริการ HAL สื่อสารกันได้
HAL ที่เชื่อมโยง
HAL ที่สื่อสารกับกระบวนการอื่นๆ โดยใช้การเรียก การสื่อสารระหว่างกระบวนการ (IPC) ของ Binder HAL ที่ใช้ Binder จะทำงานในกระบวนการแยกต่างหากจากไคลเอ็นต์ที่ใช้ HAL HAL ที่เชื่อมโยงจะได้รับการลงทะเบียนกับ Service Manager เพื่อให้ไคลเอ็นต์เข้าถึงความสามารถของตนได้ HAL ที่เขียนขึ้นสำหรับ Android 8 ขึ้นไปจะ ใช้ Binder
ไคลเอ็นต์ HAL
กระบวนการที่เข้าถึงบริการ HAL
อินเทอร์เฟซ HAL
อินเทอร์เฟซทั่วไปที่ทั้งไคลเอ็นต์และบริการ HAL ใช้ในการสื่อสาร
บริการ HAL

โค้ดเฉพาะฮาร์ดแวร์ เช่น โค้ดที่สื่อสารกับกล้องของอุปกรณ์ เฉพาะของคุณ คุณต้องใช้ HAL ที่จำเป็นทั้งหมดซึ่งระบุไว้ใน เมทริกซ์ความเข้ากันได้สำหรับรุ่นที่คุณกำหนดเป้าหมายในพาร์ติชันของผู้ให้บริการ ดูข้อมูลเพิ่มเติมเกี่ยวกับตารางความเข้ากันได้ได้ที่ตารางความเข้ากันได้

นอกจากนี้ คุณยังสร้างอินเทอร์เฟซ HAL ใหม่หรือขยายอินเทอร์เฟซของ HAL เพื่อ รองรับความสามารถเฉพาะของฮาร์ดแวร์ได้ด้วย

ภาษาที่ใช้สื่อสารข้อมูลระหว่างคอมโพเนนต์ของฮาร์ดแวร์ (HIDL)

ภาษาที่ใช้กำหนดอินเทอร์เฟซในลักษณะที่ไม่ขึ้นอยู่กับ ภาษาโปรแกรมที่ใช้ HIDL ช่วยให้การสื่อสารระหว่าง ไคลเอ็นต์ HAL และบริการ HAL เป็นไปได้

HAL ของกระบวนการเดียวกัน (SP)

ชุด HAL ที่ห่อหุ้มไว้แบบจำกัด Google เป็นผู้ควบคุมการเป็นสมาชิกในชุดข้อมูล HAL ของ SP มีดังนี้

  • 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 ขึ้นไปได้

สิ่งต่อไปที่ควรทำ