لایه انتزاعی سختافزار (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 و بالاتر کار کند.
حالا چه میشود؟
- برای آشنایی با نحوه پیادهسازی سرویس HAL، به AIDL برای HAL مراجعه کنید.
- برای آشنایی با نحوه ایجاد یا گسترش HAL موجود، به میاناهای گسترشیافته پیوستشده مراجعه کنید.