Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ประเภท HAL

ใน Android 8.0 และสูงกว่าเลเยอร์ระดับล่างจะถูกเขียนใหม่เพื่อปรับใช้สถาปัตยกรรมแบบแยกส่วนที่ใหม่กว่า อุปกรณ์ที่ใช้ Android 8.0 ขึ้นไปจะต้องรองรับ HAL ที่เขียนด้วย HIDL โดยมีข้อยกเว้นบางประการดังนี้ HAL เหล่านี้สามารถถูก binderized หรือ passthrough ใน Android R สนับสนุน HAL ที่เขียนด้วย AIDL AIDL HAL ทั้งหมดจะถูก binderized

  • HAL ที่ถูก Binderized HAL แสดงในภาษาคำจำกัดความอินเทอร์เฟซ HAL (HIDL) หรือภาษานิยามอินเทอร์เฟซ Android (AIDL) HAL เหล่านี้จะแทนที่ HAL ทั้งแบบเดิมและแบบเดิมที่ใช้ใน Android รุ่นก่อนหน้า ใน Binderized HAL กรอบงาน Android และ HAL จะสื่อสารซึ่งกันและกันโดยใช้การเรียก binder inter-process communication (IPC) อุปกรณ์ทั้งหมดที่เปิดตัวพร้อมกับ Android 8.0 หรือใหม่กว่าต้องรองรับ HAL ที่ถูก binderized เท่านั้น
  • Passthrough HALs HAL ที่ใช้การห่อด้วย HIDL หรือ HAL ดั้งเดิม HAL เหล่านี้ห่อ HAL ที่มีอยู่และสามารถให้บริการ HAL ในโหมด binderized และกระบวนการเดียวกัน (passthrough) อุปกรณ์ที่อัพเกรดเป็น Android 8.0 สามารถใช้ HAS แบบส่งผ่าน

ข้อกำหนดโหมด HAL

เครื่อง ทะลุผ่าน Binderized
เปิดตัวด้วย Android 8.0 HAL ที่ระบุไว้ใน Passthrough HAL ต้องเป็นพาส HAL อื่น ๆ ทั้งหมดจะถูก binderized (รวมถึง HAL ที่เป็นส่วนขยายของผู้จัดจำหน่าย)
อัปเกรดเป็น Android 8.0 HAL ที่ระบุไว้ใน Passthrough HAL ต้องเป็นพาส HAL ที่ระบุไว้ใน Binderized HAL ต้องถูก binderized
HAL อื่น ๆ ทั้งหมดที่จัดทำโดยอิมเมจของผู้ขายสามารถอยู่ในโหมดส่งผ่านหรือ binderized ในอุปกรณ์ที่เข้ากันได้กับ Treble ทั้งหมดสิ่งเหล่านี้จะต้องถูก binderized

HAL ที่ถูก Binderized

Android ต้องการ HALS ต่อไปนี้จึงจะถูก binderized บนอุปกรณ์ 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 แทนที่ system_server Wi-Fi HAL ดั้งเดิมที่ถูกโหลดเข้าสู่ system_server
  • android.hardware.wifi.supplicant@1.0 อินเตอร์เฟส HIDL ผ่านกระบวนการ wpa_supplicant ที่มีอยู่

หมายเหตุ : Android มีอินเทอร์เฟซ HIDL ต่อไปนี้ซึ่งจะอยู่ในโหมด binderized เสมอ: android.frameworks.* , android.system.* และ android.hidl.* (ยกเว้นสำหรับ android.hidl.memory@1.0 ตามที่อธิบายไว้ด้านล่าง)

Passthrough HALs

Android ต้องการให้ HAL ต่อไปนี้อยู่ในโหมดส่งผ่านบนอุปกรณ์ Android ทั้งหมดโดยไม่คำนึงว่าเป็นอุปกรณ์เปิดตัวหรืออัพเกรดอุปกรณ์:

  • android.hardware.graphics.mapper@1.0 แม็พหน่วยความจำในกระบวนการที่ใช้งาน
  • android.hardware.renderscript@1.0 ส่งรายการในกระบวนการเดียวกัน (เทียบเท่ากับ openGL )

HAL ทั้งหมดที่ไม่อยู่ในรายการด้านบนจะต้องถูก binderized สำหรับอุปกรณ์เรียกใช้

HAL กระบวนการเดียวกัน

Same-Process HALs (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

HALs ทั่วไปและดั้งเดิม

HAL ทั่วไป (คัดค้านใน Android 8.0) เป็นอินเทอร์เฟซที่สอดคล้องกับ application binary interface (ABI) ที่ระบุชื่อและกำหนดเวอร์ชัน อินเทอร์เฟซระบบ Android จำนวนมาก ( กล้อง เสียง เซ็นเซอร์ ฯลฯ ) อยู่ในรูปแบบของ HAL ทั่วไปซึ่งกำหนดไว้ภายใต้ ฮาร์ดแวร์ / libhardware / include / hardware

Legacy HALs (เลิกใช้แล้วใน Android 8.0) เป็นอินเตอร์เฟสที่มีมาก่อน HAL ทั่วไป ระบบย่อยที่สำคัญบางอย่าง (Wi-Fi, Radio Interface Layer และ Bluetooth) เป็น HAL ดั้งเดิม ในขณะที่ไม่มีวิธีที่เหมือนกันหรือเป็นมาตรฐานในการอธิบาย HAL ดั้งเดิมสิ่งใดก็ตามที่มีการคาดการณ์ล่วงหน้า Android 8.0 ที่ไม่ใช่ HAL ทั่วไปคือ HAL ดั้งเดิม บางส่วนของ HAL ที่สืบทอดมานั้นมีอยู่ใน libhardware_legacy ในขณะที่ส่วนอื่น ๆ จะกระจายไปทั่ว codebase