HAL เสียง AIDL

ตั้งแต่ 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 มีดังนี้

HAL สำหรับเอฟเฟกต์

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

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

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

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

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

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

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