AIDL Audio HAL

ใน Android 14 ขึ้นไป อินเทอร์เฟซ Audio HAL จะ กำหนดโดยใช้ Stable AIDL เราขอแนะนำให้พาร์ทเนอร์และผู้ให้บริการ SoC ใช้ Audio HAL อีกครั้งเพื่อให้อินเทอร์เฟซ AIDL

การขยายไลบรารี libaudiohal จะเพิ่มการรองรับเฟรมเวิร์กสำหรับ AIDL HAL เมื่อใช้การใช้งาน AIDL ข้อกำหนดการกำหนดค่าของนโยบายเสียงจะย้ายไปที่ AIDL HAL เมื่อมีการเปลี่ยนแปลงนี้ Audio Policy Manager (APM) จะรับการกำหนดค่าจาก HAL แทนที่จะใช้จากไฟล์ XML ที่ผู้ให้บริการระบุ

API ของ Audio AIDL HAL

ส่วนนี้อธิบาย API ของ Core, Effects และ Common HAL สำหรับ AIDL

ใช้การใช้งานเริ่มต้นของ AIDL API ที่ /hardware/interfaces/audio/aidl/default/ เป็นข้อมูลอ้างอิงเมื่อใช้ HAL ของเสียงเวอร์ชันใหม่ที่ โต้ตอบกับไดรเวอร์เคอร์เนล

ดูโครงสร้างไดเรกทอรี Audio HAL สำหรับ AIDL ได้ที่ไฟล์ README ของ Audio HAL

Core HAL

อินเทอร์เฟซหลักบางส่วนของ Core HAL ที่ใช้ AIDL มีดังนี้

Effects HAL

อินเทอร์เฟซหลักบางส่วนของ Effects HAL ที่ใช้ AIDL มีดังนี้

  • IFactory.aidl เป็นจุดแรกเข้าของ API
  • Descriptor.aidl มีข้อมูลทั้งหมด เช่น ความสามารถและแอตทริบิวต์สำหรับการใช้งานเอฟเฟกต์
  • Capability.aidl กำหนดความสามารถของเอฟเฟกต์ที่จะไม่เปลี่ยนแปลงในขณะรันไทม์
  • Parameter.aidl กำหนดพารามิเตอร์ทั้งหมดที่อินสแตนซ์ของเอฟเฟกต์รองรับ
  • IEffect.aidl ใช้เพื่อกำหนดค่าและควบคุมอินสแตนซ์ของเอฟเฟกต์ที่เฉพาะเจาะจง
  • Parcelable เฉพาะของเอฟเฟกต์ซึ่งตั้งชื่อตามเอฟเฟกต์

  • API ของ Effects HAL เวอร์ชันล่าสุด ที่อยู่ระหว่างการพัฒนา อยู่ใน /hardware/interfaces/audio/aidl/android/hardware/audio/effect/

  • API ของ Effects HAL เวอร์ชันล่าสุด ที่เผยแพร่แล้ว อยู่ใน /hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect

ดูข้อมูลเพิ่มเติมได้ที่ เอฟเฟกต์เสียง สำหรับ ข้อมูลเพิ่มเติม

Common HAL

โครงสร้างข้อมูลและอินเทอร์เฟซที่แชร์ระหว่าง HAL ต่างๆ เช่น BT HAL, Core และ Effects Audio HAL จะอยู่ใน Common HAL

ประเภทข้อมูลที่เสถียรทั่วไป

HAL และเฟรมเวิร์กจะใช้คำจำกัดความโครงสร้างข้อมูลที่เสถียร

การทดสอบ API ของ Audio AIDL HAL

เราได้เพิ่มการทดสอบ VTS ใหม่สำหรับอินเทอร์เฟซ AIDL

ไม่มีการเปลี่ยนแปลงใน HAL เวอร์ชันใหม่ที่อาจส่งผลต่อความปลอดภัย