ตั้งแต่ Android 16 เป็นต้นไป อินเทอร์เฟซ AIDL Audio HAL รองรับ Configurable Audio Policy (CAP) อย่างเต็มรูปแบบ
หน้านี้ให้ข้อมูลพื้นฐานทางเทคนิคที่จำเป็นเพื่อช่วยพาร์ทเนอร์และผู้ให้บริการ SoC ในการย้ายข้อมูลการกำหนดค่านโยบายเสียง
กรอบพารามิเตอร์
การใช้งาน CAP อิงตามกรอบพารามิเตอร์ของ Intel CAP เปิดตัวใน Android 6 กรอบพารามิเตอร์ (PfW) ช่วยให้คุณอธิบายระบบในแง่ของพารามิเตอร์ได้ การใช้ไฟล์ XML การกำหนดค่าจะช่วยให้ PfW เชื่อมโยงพารามิเตอร์ กับการดำเนินการโดยใช้ปลั๊กอิน และระบุกฎสำหรับการเปลี่ยนพารามิเตอร์ ตามเกณฑ์ปัจจุบัน
โครงสร้างของ CAP ใน HIDL
ใน HIDL การกำหนดค่าทั้งหมดสำหรับ CAP จะระบุไว้ใน XML ดูข้อมูลเพิ่มเติมได้ที่กรอบ พารามิเตอร์และการกำหนดค่าโดยใช้กรอบพารามิเตอร์ เราใช้ไฟล์ XML เพื่อระบุข้อมูลต่อไปนี้
- คำอธิบายโครงสร้างของพารามิเตอร์ (นั่นคือ คำอธิบายของ โดเมนเสียงสำหรับ PfW)
- คำจำกัดความของเกณฑ์
- กฎสำหรับกลยุทธ์การกำหนดเส้นทาง (การเลือกอุปกรณ์อินพุตและเอาต์พุต)
- ข้อกำหนดของตารางปริมาณ
เมื่อใช้ HIDL เฟรมเวิร์ก Android จะโหลดไฟล์ XML เหล่านี้ได้โดยตรงจาก พาร์ติชันของผู้ให้บริการ ระบบอนุญาตให้ทำเช่นนี้ได้เนื่องจากมีการกำหนดสคีมา XSD เป็นส่วนหนึ่งของ HAL API สำหรับไฟล์ XML เหล่านี้ HIDL HAL แต่ละรุ่นหลักมีสคีมา XSD ที่สอดคล้องกัน การเปิดตัวเวอร์ชันหลักไม่จำเป็นต้องมีความเข้ากันได้แบบย้อนหลัง
โครงสร้างของ CAP ใน AIDL
เมื่อเปลี่ยนไปใช้ AIDL การเปิดตัว HAL API จะต้องยังคงมีความเข้ากันได้แบบย้อนหลัง (ในข้อกำหนดของ HIDL การเปิดตัว AIDL HAL แต่ละครั้งคือการอัปเดต "ย่อย") ไม่สามารถใช้สคีมา XSD เป็นส่วนหนึ่งของ HAL API ได้อีกต่อไป เนื่องจากไม่มีวิธีที่กำหนดไว้ในการ กำหนดการอัปเดตสคีมาที่เข้ากันได้แบบย้อนหลัง ดังนั้น การกำหนดค่า ที่กำหนดไว้ก่อนหน้านี้ในไฟล์ XML จึงต้องมาจาก HAL โดยใช้ AIDL API เพื่ออำนวยความสะดวกในเรื่องนี้ โครงสร้างของการกำหนดค่า CAP จะได้รับการแปลงเป็น AIDL ซึ่งคล้ายกับ XML การกำหนดค่านโยบายเสียงใน AIDL Audio HAL สำหรับ Android 15
ระบบจะเพิ่มโครงสร้างข้อมูลสำหรับ CAP ลงในประเภทข้อมูลที่เสถียรทั่วไปและรวมถึง Parcelable ต่อไปนี้
AudioHalCapConfiguration.aidl
AudioHalCapCriterionV2.aidl
AudioHalCapDomain.aidl
AudioHalCapParameter.aidl
AudioHalCapRule.aidl
จุดแรกเข้าสำหรับการกำหนดค่า CAP อยู่ในโครงสร้าง
AudioHalEngineConfig.CapSpecificConfig
ดูความคิดเห็นใน
AudioHalCapConfiguration.aidl
เพื่อดูแผนภาพโครงสร้างข้อมูล CAP
การติดตั้งใช้งาน เริ่มต้น ของ AIDL HAL มีคลาสตัวช่วย ที่กรอกข้อมูล AIDL Parcelable ตามเนื้อหาของไฟล์ CAP XML เดิม เพื่อลดความซับซ้อนในการย้ายข้อมูลสำหรับพาร์ทเนอร์
สถานการณ์การย้ายข้อมูล
พาร์ทเนอร์อาจพิจารณาตัวเลือกตามที่ระบุไว้ในส่วนนี้ โดยขึ้นอยู่กับว่าเป็นการเปิดตัวผลิตภัณฑ์เป็นครั้งแรกที่ไม่เคยใช้ CAP มาก่อน หรือเป็นการย้ายข้อมูลผลิตภัณฑ์ที่มีอยู่
ผลิตภัณฑ์ใหม่
สำหรับผลิตภัณฑ์ใหม่ที่เริ่มใช้ CAP ในการใช้งานนโยบายเสียง OEM สามารถเลือกใช้ XML เพื่อจัดเก็บการกำหนดค่า CAP ในฝั่งผู้ให้บริการได้
ข้อดีของการใช้ XML คือมีชุดเครื่องมือ การเขียนสคริปต์ ที่ช่วยให้สร้างการกำหนดค่าจากคำอธิบายระดับสูงได้
หาก OEM ตัดสินใจใช้ XML เพื่อจัดเก็บการกำหนดค่า CAP ในพาร์ติชันของผู้ให้บริการ ขอแนะนำให้ใช้การใช้งานเริ่มต้นของตัวแยกวิเคราะห์ XML เพื่อแปลงการกำหนดค่าเป็น AIDL
การอัปเดตสำหรับผลิตภัณฑ์ที่มีอยู่
หากผลิตภัณฑ์ใช้ CAP อยู่แล้วและมีการกำหนดค่า XML คุณจะ ใช้ CAP ที่มีอยู่ต่อไปกับ HAL เวอร์ชัน AIDL ได้
รูปแบบการตั้งชื่อสำหรับกลยุทธ์ผลิตภัณฑ์จะแตกต่างกันใน HIDL และ AIDL
เวอร์ชันของการกำหนดค่า CAP ใน HIDL กลยุทธ์ในตัว ("เดิม")
จะใช้ชื่อย่อที่เป็นตัวพิมพ์เล็ก เช่น media
ส่วนใน AIDL กลยุทธ์ในตัว
จะใช้ชื่อที่เป็นตัวพิมพ์ใหญ่ทั้งหมดซึ่งมีคำนำหน้าเป็น STRATEGY_
เช่น STRATEGY_MEDIA
ดูรายการกลยุทธ์ที่มีมาให้ใน CapProductStrategies.xml
ไฟล์เดียวกันนี้จะกำหนดรหัส "ที่จัดสรรไว้ล่วงหน้า" สำหรับกลยุทธ์เฉพาะ OEM ซึ่ง
เป็นไปตามรูปแบบการตั้งชื่อของ vx_10xx
โดยมีหมายเลขตั้งแต่ 1000
ถึง 1039
ผลิตภัณฑ์เดิม
หากผลิตภัณฑ์ที่ใช้ CAP ไม่อัปเดตพาร์ติชันของผู้ให้บริการและยังคงใช้ HIDL คุณสามารถอัปเดตพาร์ติชันระบบเป็น Android 16 ได้ กรอบงานยังคงใช้ได้กับการกำหนดค่า CAP แบบเดิม
ตัวอย่างการใช้งาน
AOSP มีตัวอย่างของอุปกรณ์เสมือน Cuttlefish เวอร์ชัน "ยานยนต์" ซึ่งใช้ CAP กับ AIDL
HAL เพื่อช่วยพาร์ทเนอร์ในการติดตั้งใช้งาน CAP สำหรับแพลตฟอร์มของตน การกำหนดค่าเฉพาะอุปกรณ์จะอยู่ใน
device/google/cuttlefish/shared/auto/audio/policy/engine
โดยมีชื่อเป้าหมาย lunch
เป็น aosp_cf_x86_64_auto
Android.bp
ไฟล์นี้สามารถ
ใช้เป็นข้อมูลอ้างอิงในการสร้างไฟล์ของผู้ให้บริการ CAP ทั้งชุดได้