ตั้งแต่ Android 14 เป็นต้นไป อินเทอร์เฟซ HAL ของเสียงจะกำหนดโดยใช้ AIDL ที่เสถียร เราขอแนะนำให้พาร์ทเนอร์และผู้ให้บริการ SoC ใช้ Audio HAL อีกครั้งเพื่อให้อินเทอร์เฟซ AIDL
การขยายไลบรารี libaudiohal
จะเพิ่มการรองรับเฟรมเวิร์กสำหรับ AIDL HAL
เมื่อใช้ AIDL ระบบจะย้ายข้อกำหนดการกำหนดค่านโยบายเสียงไปยัง AIDL HAL การเปลี่ยนแปลงนี้ทำให้เครื่องมือจัดการนโยบายเสียง (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
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
รองรับปริมาณเสียง ดูข้อมูลเพิ่มเติมได้ที่ปริมาณเสียง- Core HAL API เวอร์ชันล่าสุดที่อยู่ระหว่างการพัฒนาคือ
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
- Core HAL API เวอร์ชันล่าสุดที่เผยแพร่อยู่ใน
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
HAL ของเอฟเฟกต์
อินเทอร์เฟซหลักๆ ของ Effects HAL ที่ใช้ AIDL มีดังนี้
IFactory.aidl
คือจุดแรกเข้าของ APIDescriptor.aidl
มีข้อมูลทั้งหมด เช่น ความสามารถและแอตทริบิวต์สําหรับการติดตั้งใช้งานเอฟเฟกต์Capability.aidl
กำหนดความสามารถของเอฟเฟกต์ที่ไม่เปลี่ยนแปลงเมื่อรันไทม์Parameter.aidl
กำหนดพารามิเตอร์ทั้งหมดที่อินสแตนซ์เอฟเฟกต์รองรับIEffect.aidl
ใช้เพื่อกําหนดค่าและควบคุมอินสแตนซ์เอฟเฟกต์ที่เฉพาะเจาะจงรายการที่แยกส่วนได้เฉพาะเอฟเฟกต์ซึ่งตั้งชื่อตามเอฟเฟกต์
Effects HAL API เวอร์ชันล่าสุดที่อยู่ระหว่างการพัฒนาคือ
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
Effects HAL API เวอร์ชันล่าสุดที่เผยแพร่แล้วอยู่ใน
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
ดูข้อมูลเพิ่มเติมได้ในเอฟเฟกต์เสียง
HAL ทั่วไป
โครงสร้างข้อมูลและอินเทอร์เฟซที่แชร์ระหว่าง HAL ต่างๆ เช่น BT HAL, HAL หลัก และ HAL เสียงสำหรับเอฟเฟกต์จะอยู่ใน HAL ทั่วไป
Common AIDL HAL เวอร์ชันล่าสุดที่อยู่ระหว่างการพัฒนาอยู่ใน
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
Common HAL API เวอร์ชันล่าสุดที่เผยแพร่แล้วอยู่ใน
/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/
การทดสอบ Audio AIDL HAL API
มีชุดทดสอบ VTS ใหม่สําหรับอินเทอร์เฟซ AIDL
HAL เวอร์ชันใหม่ไม่มีการเปลี่ยนแปลงที่อาจส่งผลต่อความปลอดภัย