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

ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง (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 ขึ้นไปได้

ต้องทำอะไรต่อ