ตั้งแต่ Android 14 เป็นต้นไป อินเทอร์เฟซ Audio HAL จะถูกกำหนดโดยใช้ Stable AIDL พันธมิตรและผู้จำหน่าย SoC ได้รับการสนับสนุนให้ปรับใช้ Audio HAL ของตนใหม่เพื่อให้มีอินเทอร์เฟซ AIDL
การขยายไลบรารี libaudiohal
จะเพิ่มการรองรับเฟรมเวิร์กสำหรับ AIDL HAL เมื่อใช้ AIDL ข้อกำหนดการกำหนดค่านโยบายเสียงจะถูกย้ายไปยัง AIDL HAL ด้วยการเปลี่ยนแปลงนี้ Audio Policy Manager (APM) จะได้รับการกำหนดค่าจาก HAL แทนที่จะใช้จากไฟล์ XML ที่ผู้จำหน่ายจัดเตรียมไว้
เสียง AIDL HAL API
ส่วนนี้จะอธิบาย Core, Effects และ Common HAL API สำหรับ AIDL
ใช้การใช้งานเริ่มต้นของ AIDL API ที่ /hardware/interfaces/audio/aidl/default/
เป็นข้อมูลอ้างอิงเมื่อใช้ Audio HAL เวอร์ชันใหม่ที่มีการโต้ตอบกับไดรเวอร์เคอร์เนล
ดู ไฟล์ Audio HAL README สำหรับโครงสร้างไดเรกทอรี Audio HAL สำหรับ AIDL
คอร์ ฮาล
อินเทอร์เฟซหลักบางส่วนของ Core HAL โดยใช้ AIDL มีดังนี้:
-
IModule.aidl
เป็นจุดเริ่มต้นเข้าสู่ API - สตรีมเป็นแบบทิศทางเดียวและ AudioFlinger ใช้เพื่อส่งหรือรับเสียงเข้าและออกจาก HAL ผ่าน
IStreamOut.aidl
และIStreamIn.aidl
-
ITelephony.aidl
จัดให้มีการควบคุมเฉพาะสำหรับฟังก์ชันระบบโทรศัพท์ -
IBluetooth.aidl
ให้การควบคุม BT SCO และ HFP ที่อยู่บนIPrimaryModule
ใน HIDL API -
IConfig.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
เป็นจุดเริ่มต้นเข้าสู่ API -
Descriptor.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, 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 ใหม่ที่อาจส่งผลต่อความปลอดภัย