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