ใน Android 14 ขึ้นไป อินเทอร์เฟซ Audio HAL จะกำหนดโดยใช้ Stable 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 มีดังนี้
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/
HAL ของเอฟเฟกต์
อินเทอร์เฟซหลักบางส่วนของ 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
ดูข้อมูลเพิ่มเติมได้ที่เอฟเฟกต์เสียง
HAL ทั่วไป
โครงสร้างข้อมูลและอินเทอร์เฟซที่แชร์ระหว่าง HAL ต่างๆ เช่น BT HAL, Core และ Effects Audio HAL จะอยู่ใน Common 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/
การทดสอบ API ของ HAL AIDL สำหรับเสียง
มีการทดสอบ VTS ใหม่สำหรับอินเทอร์เฟซ AIDL
HAL เวอร์ชันใหม่ไม่มีการเปลี่ยนแปลงใดๆ ที่อาจส่งผลต่อความปลอดภัย