نمای کلی لایه انتزاعی سخت‌افزار (HAL)

لایه انتزاعی سخت‌افزار (HAL) نوعی لایه انتزاعی با میانای استاندارد برای پیاده‌سازی فروشندگان سخت‌افزار است. «لایه انتزاعی سخت‌افزار» به فروشندگان سخت‌افزار اجازه می‌دهد ویژگی‌های سطح پایین و مختص دستگاه را بدون تأثیرگذاری یا تغییر کد در لایه‌های سطح بالاتر پیاده‌سازی کنند.

عبارت‌های الزامی

در زیر فهرستی از تعاریف اصطلاحات استفاده‌شده در این بخش از مستندات آمده است:

زبان تعریف میانای Android‏ (AIDL)
زبانی شبیه به جاوا که برای تعریف کردن میانه‌ها به‌شیوه‌ای مستقل از زبان برنامه‌نویسی مورد استفاده به‌کار می‌رود. ‫AIDL امکان برقراری ارتباط بین کاربران HAL و سرویس‌های HAL را فراهم می‌کند.
HAL پیوندشده
یک HAL که بااستفاده از تماس‌های ارتباط بین‌فرایندی (IPC) binder با فرایندهای دیگر ارتباط برقرار می‌کند. «لایه انتزاع سخت‌افزار»های پیوندشده در فرایندی جدا از مشتری که از آن‌ها استفاده می‌کند اجرا می‌شوند. «لایه‌های انتزاع سخت‌افزار» (HAL) پیوندی در مدیر سرویس ثبت می‌شوند تا مشتریان بتوانند به قابلیت‌های آن‌ها دسترسی داشته باشند. ‫HALهای نوشته‌شده برای Android 8 و بالاتر بایندرشده هستند.
کارخواه HAL
فرایندی که به سرویس HAL دسترسی دارد.
میانای HAL
واسط مشترکی که هم سرویس و هم کارخواه HAL برای برقراری ارتباط از آن استفاده می‌کنند.
سرویس HAL

کد سخت‌افزار خاص، مانند کدی که با دوربین دستگاه خاص شما ارتباط برقرار می‌کند. باید همه HALهای لازم را که در ماتریس سازگاری برای نسخه‌ای که در بخش فروشنده هدف قرار می‌دهید فهرست شده است پیاده‌سازی کنید. برای اطلاعات بیشتر درباره ماتریس‌های سازگاری، به ماتریس‌های سازگاری مراجعه کنید.

همچنین می‌توانید میانای HAL جدیدی ایجاد کنید یا میانای HAL را گسترش دهید تا از قابلیت‌های منحصربه‌فرد سخت‌افزارتان پشتیبانی کنید.

زبان تعریف میانای سخت‌افزار (HIDL)

زبانی که برای تعریف کردن میانه‌ها به روشی مستقل از زبان برنامه‌نویسی مورداستفاده به‌کار می‌رود. ‫HIDL ارتباط بین کاربران HAL و خدمات HAL را ممکن می‌کند.

Same Process (SP) HAL

مجموعه محدودی از HALهای بسته‌بندی‌شده. عضویت در مجموعه توسط Google کنترل می‌شود. «لایه‌های انتزاع سخت‌افزاری» SP شامل موارد زیر است:

  • ‫Stable C mapper 5 HAL
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (ارائه‌شده توسط سیستم Android، همیشه بسته‌بندی‌شده)
  • android.hardware.renderscript@1.0
Wrapped HAL

سرویس HAL که قبل‌از Android 8 ایجاد شده است، اما در AIDL یا پوشش HIDL پیچیده شده است تا با Android 8 و بالاتر کار کند.

حالا چه می‌شود؟