HAL เสียง AIDL

ใน 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 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 ของเอฟเฟกต์

อินเทอร์เฟซที่สําคัญบางอย่างของเอฟเฟกต์ HAL ที่ใช้ AIDL มีดังนี้

  • IFactory.aidl คือจุดแรกเข้าไปยัง API
  • Descriptor.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 ทั่วไป

ประเภทข้อมูลแบบคงที่ทั่วไป

คำนิยามของโครงสร้างข้อมูลที่เสถียรใช้ทั้งโดย HAL และเฟรมเวิร์ก

การทดสอบ Audio AIDL HAL API

VTS ใหม่ มีไว้สำหรับอินเทอร์เฟซ AIDL

ส่วน HAL เวอร์ชันใหม่จะไม่มีการเปลี่ยนแปลงใดๆ ที่ส่งผลต่อความปลอดภัย