ใน Android 8.0 และสูงกว่า เลเยอร์ระดับล่างจะถูกเขียนใหม่เพื่อใช้สถาปัตยกรรมโมดูลาร์แบบใหม่ที่มากขึ้น อุปกรณ์ที่ใช้ Android 8.0 ขึ้นไปต้องรองรับ HAL ที่เขียนด้วย HIDL โดยมีข้อยกเว้นบางประการตามรายการด้านล่าง HAL เหล่านี้สามารถจับตัวเป็นก้อนหรือส่งผ่านได้ ใน Android 11 รองรับ HAL ที่เขียนด้วย AIDL AIDL HAL ทั้งหมดถูกผูกมัด
Binderized HALs HAL แสดงในภาษานิยามอินเทอร์เฟซ HAL (HIDL) หรือภาษานิยามอินเทอร์เฟซ Android (AIDL) HAL เหล่านี้จะแทนที่ทั้ง HAL แบบธรรมดาและแบบดั้งเดิมที่ใช้ใน Android เวอร์ชันก่อนหน้า ใน Binderized HAL เฟรมเวิร์ก Android และ HAL จะสื่อสารกันโดยใช้การเรียก Binder Inter-Process Communication (IPC) อุปกรณ์ทั้งหมดที่เปิดตัวด้วย Android 8.0 หรือใหม่กว่าจะต้องรองรับ Binderized HAL เท่านั้น
ผ่าน HAL HAL แบบธรรมดาหรือ Legacy ที่ห่อหุ้มด้วย HIDL HAL เหล่านี้ห่อหุ้ม HAL ที่มีอยู่และสามารถให้บริการ HAL ในโหมดสารประสานและกระบวนการเดียวกัน (ส่งผ่าน) อุปกรณ์ที่อัปเกรดเป็น Android 8.0 สามารถใช้ HAL แบบพาสทรูได้
ข้อกำหนดโหมด HAL
อุปกรณ์ | ทะลุผ่าน | ผูกมัด |
---|---|---|
เปิดตัวด้วย Android 8.0 | HAL ที่ระบุใน Passthrough HAL จะต้องเป็น passthrough | HAL อื่นๆ ทั้งหมดถูกรวมเข้าด้วยกัน (รวมถึง HAL ที่เป็นส่วนขยายของผู้ขาย) |
อัปเกรดเป็น Android 8.0 | HAL ที่ระบุใน Passthrough HAL จะต้องเป็น passthrough | HALs ที่ระบุไว้ใน Binderized HAL จะต้องถูกผูกมัด |
HAL อื่นๆ ทั้งหมดที่มีให้โดยอิมเมจของผู้ขายสามารถอยู่ในโหมดพาสทรูหรือโหมดไบเดอร์ไดซ์ ในอุปกรณ์ที่รองรับเสียงแหลมอย่างสมบูรณ์ สิ่งเหล่านี้ทั้งหมดจะต้องได้รับการผูกมัด |
Binderized HAL
Android กำหนดให้ใช้ HALS ต่อไปนี้เพื่อผูกมัดบนอุปกรณ์ Android ทั้งหมด ไม่ว่าจะเป็นอุปกรณ์เปิดตัวหรืออุปกรณ์อัปเกรด:
-
android.hardware.biometrics.fingerprint@2.1
แทนที่fingerprintd
ซึ่งไม่มีใน Android 8.0 แล้ว -
android.hardware.configstore@1.0
ใหม่ใน Android 8.0 -
android.hardware.dumpstate@1.0
อินเทอร์เฟซดั้งเดิมที่จัดทำโดย HAL นี้ไม่สามารถชิมและเปลี่ยนแปลงได้ ด้วยเหตุนี้ ต้องปรับใช้dumpstate_board
อีกครั้งบนอุปกรณ์ที่กำหนด (นี่คือ HAL ที่เป็นทางเลือก) -
android.hardware.graphics.allocator@2.0
จำเป็นต้องมีการผูกมัดใน Android 8.0 ดังนั้นตัวอธิบายไฟล์จึงไม่จำเป็นต้องแชร์ระหว่างกระบวนการที่เชื่อถือได้และไม่น่าเชื่อถือ -
android.hardware.radio@1.0
. แทนที่ส่วนต่อประสานที่จัดทำโดยrild
ซึ่งอยู่ในกระบวนการของมันเอง -
android.hardware.usb@1.0
. ใหม่ใน Android 8.0 -
android.hardware.wifi@1.0
. ใหม่ใน Android 8.0 แทนที่ไลบรารี Wi-Fi HAL เดิมที่โหลดลงในsystem_server
-
android.hardware.wifi.supplicant@1.0
อินเทอร์เฟซ HIDL ผ่านกระบวนการwpa_supplicant
ที่มีอยู่
ผ่าน HAL
Android กำหนดให้ HAL ต่อไปนี้อยู่ในโหมดส่งผ่านบนอุปกรณ์ Android ทั้งหมด ไม่ว่าจะเป็นอุปกรณ์เปิดตัวหรืออุปกรณ์อัปเกรด:
-
android.hardware.graphics.mapper@1.0
แม็พหน่วยความจำเข้ากับกระบวนการที่มันอาศัยอยู่ -
android.hardware.renderscript@1.0
ผ่านรายการในกระบวนการเดียวกัน (เทียบเท่ากับopenGL
)
HAL ทั้งหมดที่ไม่ได้อยู่ในรายการด้านบนจะต้องเข้าเล่มสำหรับอุปกรณ์เปิดใช้
HAL กระบวนการเดียวกัน
Same-Process HAL (SP-HAL) จะเปิดขึ้นเสมอในกระบวนการเดียวกันที่ใช้ ซึ่งรวมถึง HAL ทั้งหมดที่ไม่ได้แสดงไว้ใน HIDL ตลอดจนบางส่วนที่ไม่ได้รับการผูกมัด การเป็นสมาชิกในชุด SP-HAL นั้นควบคุมโดย Google เท่านั้น โดยไม่มีข้อยกเว้น
SP-HAL รวมถึงสิ่งต่อไปนี้:
-
openGL
-
Vulkan
-
android.hidl.memory@1.0
(ให้บริการโดยระบบ Android ส่งผ่านเสมอ) -
android.hardware.graphics.mapper@1.0
android.hardware.renderscript@1.0