ตั้งแต่ 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 สำหรับเอฟเฟกต์
อินเทอร์เฟซที่สําคัญบางอย่างของเอฟเฟกต์ HAL ที่ใช้ AIDL มีดังนี้
IFactory.aidl
คือจุดแรกเข้าไปยัง APIDescriptor.aidl
มีข้อมูลทั้งหมด เช่น ความสามารถและแอตทริบิวต์สําหรับการติดตั้งใช้งานเอฟเฟกต์Capability.aidl
กำหนดความสามารถของเอฟเฟกต์ที่จะไม่เปลี่ยนแปลงขณะรันไทม์Parameter.aidl
กำหนดพารามิเตอร์ทั้งหมดที่อินสแตนซ์เอฟเฟกต์รองรับIEffect.aidl
ใช้เพื่อกําหนดค่าและควบคุมอินสแตนซ์เอฟเฟกต์ที่เฉพาะเจาะจงรายการที่แบ่งพาร์เซลได้เฉพาะเอฟเฟกต์ซึ่งตั้งชื่อตามเอฟเฟกต์
Effects 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 เสียงสำหรับเอฟเฟกต์จะอยู่ใน 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 เวอร์ชันใหม่ไม่มีการเปลี่ยนแปลงที่อาจส่งผลต่อความปลอดภัย