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