با شروع Android 14، رابط Audio HAL با استفاده از Stable AIDL تعریف شده است. شرکا و فروشندگان SoC تشویق می شوند تا Audio HAL خود را برای ارائه رابط AIDL دوباره پیاده سازی کنند.
گسترش کتابخانه libaudiohal
پشتیبانی چارچوبی را برای AIDL HAL اضافه می کند. با اجرای AIDL، مشخصات پیکربندی خط مشی صوتی به AIDL HAL منتقل می شود. با این تغییر، Audio Policy Manager (APM) پیکربندی را از HAL دریافت می کند به جای اینکه آن را از فایل XML ارائه شده توسط فروشنده مصرف کند.
Audio AIDL HAL API
این بخش هسته، جلوهها و APIهای معمول HAL را برای AIDL توضیح میدهد.
هنگام اجرای نسخه های جدید Audio HAL که با درایورهای هسته تعامل دارند، از پیاده سازی پیش فرض AIDL API در /hardware/interfaces/audio/aidl/default/
به عنوان مرجع استفاده کنید.
فایل Audio HAL README را برای ساختار دایرکتوری Audio HAL برای AIDL ببینید.
هسته HAL
برخی از رابط های کلیدی 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، هسته و جلوه ها HAL های صوتی در 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 وجود ندارد که بر امنیت تأثیر بگذارد.