در اندروید ۱۴ و بالاتر، رابط کاربری Audio HAL با استفاده از Stable AIDL تعریف میشود. به شرکا و فروشندگان SoC توصیه میشود که Audio HAL خود را برای ارائه رابط کاربری AIDL مجدداً پیادهسازی کنند.
گسترش کتابخانه libaudiohal پشتیبانی چارچوبی برای AIDL HAL را اضافه میکند. با پیادهسازی AIDL، مشخصات پیکربندی سیاست صوتی به AIDL HAL منتقل میشود. با این تغییر، مدیر سیاست صوتی (APM) به جای استفاده از فایل XML ارائه شده توسط فروشنده، پیکربندی را از HAL دریافت میکند.
رابط برنامهنویسی کاربردی صوتی AIDL HAL
این بخش هسته، اثرات و APIهای رایج HAL برای AIDL را شرح میدهد.
هنگام پیادهسازی نسخههای جدید Audio HALهایی که با درایورهای هسته تعامل دارند، از پیادهسازی پیشفرض API AIDL در /hardware/interfaces/audio/aidl/default/ به عنوان مرجع استفاده کنید.
برای ساختار دایرکتوری Audio HAL مربوط به AIDL، به فایل Audio HAL README مراجعه کنید.
هسته هال
برخی از رابطهای کلیدی 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پشتیبانی از دوز صدا را ارائه میدهد. برای اطلاعات بیشتر به Sound dose مراجعه کنید. - آخرین نسخه از Core HAL API در حال توسعه در
/hardware/interfaces/audio/aidl/android/hardware/audio/core/قرار دارد. - آخرین نسخه منتشر شده از Core HAL API در
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/قرار دارد.
اثرات هال
برخی از رابطهای کلیدی Effects HAL، با استفاده از AIDL، به شرح زیر است:
-
IFactory.aidlنقطه ورود به API است. -
Descriptor.aidlشامل تمام اطلاعات مانند قابلیتها و ویژگیهای مربوط به پیادهسازی یک اثر است. -
Capability.aidlقابلیتهای افکت را تعریف میکند که در زمان اجرا تغییر نمیکنند. -
Parameter.aidlتمام پارامترهای پشتیبانی شده توسط نمونهی افکت را تعریف میکند. -
IEffect.aidlبرای پیکربندی و کنترل نمونههای خاص effect استفاده میشود. قطعات قابل جمعآوری مختص یک اثر که از روی آن اثر نامگذاری شدهاند.
آخرین نسخه از رابط برنامهنویسی کاربردی (API) مربوط به Effects HAL که در حال توسعه است ، در مسیر
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/قرار دارد.آخرین نسخه منتشر شده از رابط برنامهنویسی کاربردی Effects HAL در مسیر
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effectقرار دارد.
برای اطلاعات بیشتر به بخش جلوههای صوتی مراجعه کنید.
هال مشترک
ساختار دادهها و رابطهای مشترک بین HALهای مختلف مانند BT HAL، هسته و جلوههای صوتی HAL در HAL مشترک قرار دارند.
آخرین نسخه Common AIDL HAL که در حال توسعه است ، در مسیر
/hardware/interfaces/audio/aidl/android/hardware/audio/common/قرار دارد.آخرین نسخه منتشر شده از رابط برنامهنویسی کاربردی مشترک HAL در
/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
آزمونهای VTS جدید برای رابط AIDL ارائه شدهاند.
هیچ تغییری در نسخه جدید HAL وجود ندارد که بتواند بر امنیت تأثیر بگذارد.