ใน 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 มีดังนี้
IModule.aidlเป็นจุดแรกเข้าของ API- สตรีมเป็นแบบทิศทางเดียวและ AudioFlinger ใช้เพื่อส่งหรือรับ
เสียงไปยังและจาก HAL ผ่าน
IStreamOut.aidlและIStreamIn.aidl ITelephony.aidlมีการควบคุมเฉพาะสำหรับฟังก์ชันโทรคมนาคมIBluetooth.aidlมีการควบคุม BT SCO และ HFP ที่อยู่ในIPrimaryModuleใน HIDL APIIConfig.aidlมีพารามิเตอร์การกำหนดค่าทั่วทั้งระบบISoundDose.aidlรองรับการวัดปริมาณเสียง ดูข้อมูลเพิ่มเติมได้ที่การวัดปริมาณเสียง- API ของ Core HAL เวอร์ชันล่าสุด ที่อยู่ระหว่างการพัฒนา อยู่ใน
/hardware/interfaces/audio/aidl/android/hardware/audio/core/ - API ของ Core HAL เวอร์ชันล่าสุด ที่เผยแพร่แล้ว อยู่ใน
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
Effects HAL
อินเทอร์เฟซหลักบางส่วนของ Effects HAL ที่ใช้ AIDL มีดังนี้
IFactory.aidlเป็นจุดแรกเข้าของ APIDescriptor.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
Common AIDL HAL เวอร์ชันล่าสุด ที่อยู่ระหว่างการพัฒนา อยู่ใน
/hardware/interfaces/audio/aidl/android/hardware/audio/common/API ของ Common HAL เวอร์ชันล่าสุด ที่เผยแพร่แล้ว อยู่ใน
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
ประเภทข้อมูลที่เสถียรทั่วไป
HAL และเฟรมเวิร์กจะใช้คำจำกัดความโครงสร้างข้อมูลที่เสถียร
ประเภทข้อมูลที่เสถียรเวอร์ชันล่าสุด ที่อยู่ระหว่างการพัฒนา อยู่ใน
/system/hardware/interfaces/media/aidl/android/media/audio/common/ประเภทข้อมูลที่เสถียรเวอร์ชันล่าสุด ที่เผยแพร่แล้ว อยู่ใน
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
การทดสอบ API ของ Audio AIDL HAL
เราได้เพิ่มการทดสอบ VTS ใหม่สำหรับอินเทอร์เฟซ AIDL
ไม่มีการเปลี่ยนแปลงใน HAL เวอร์ชันใหม่ที่อาจส่งผลต่อความปลอดภัย