AIDL Audio HAL

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

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

Audio AIDL HAL API

ส่วนนี้อธิบาย API ของ HAL หลัก เอฟเฟกต์ และทั่วไปสำหรับ AIDL

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

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

HAL หลัก

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

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

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

HAL ทั่วไป

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

ประเภทข้อมูลที่เสถียรที่พบบ่อย

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

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

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

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