Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

معماری اندروید

معماری سیستم Android شامل اجزای زیر است:

مروری بر معماری سیستم Android
شکل 1. معماری سیستم آندروید
  • چارچوب برنامه چارچوب برنامه اغلب توسط توسعه دهندگان برنامه استفاده می شود. به عنوان یک توسعه دهنده سخت افزار ، شما باید از API های توسعه دهنده آگاه باشید زیرا بسیاری از آنها مستقیماً به رابط های HAL زیرنویس می شوند و می توانند اطلاعات مفیدی درباره درایورهای پیاده سازی ارائه دهند.
  • اتصال دهنده IPC . مکانیسم Binder Inter-Process Communication (IPC) به چارچوب برنامه اجازه می دهد تا مرزهای فرآیند را عبور داده و کد خدمات سیستم Android را فراخوانی کند. این رابط های برنامه کاربردی سطح بالا را قادر می سازد تا با خدمات سیستم Android ارتباط برقرار کنند. در سطح چارچوب برنامه ، این ارتباط از نظر توسعه دهنده پنهان است و به نظر می رسد همه چیز "فقط کار می کنند".
  • خدمات سیستم خدمات سیستم اجزای مدولار و متمرکز مانند مدیر پنجره ، جستجوی سرویس یا مدیر اعلان هستند. عملکردی که توسط API چارچوب برنامه در معرض دید قرار گرفته است ، برای دسترسی به سخت افزار اساسی با سرویس های سیستم ارتباط برقرار می کند. اندروید شامل دو گروه خدمات است: سیستم (مانند مدیر پنجره و مدیر اعلان) و رسانه (خدمات مربوط به پخش و ضبط رسانه).
  • لایه انتزاع سخت افزار (HAL) . A HAL یک رابط استاندارد برای فروشندگان سخت افزار برای پیاده سازی تعریف می کند ، که Android را قادر می سازد در مورد پیاده سازی درایورهای سطح پایین اطلاعاتی داشته باشد. استفاده از HAL به شما امکان می دهد عملکرد را بدون تأثیر یا تغییر در سیستم سطح بالاتر پیاده سازی کنید. پیاده سازی های HAL در ماژول ها بسته بندی می شوند و در زمان مناسب توسط سیستم Android بارگیری می شوند. برای جزئیات ، به لایه انتزاع سخت افزار (HAL) مراجعه کنید .
  • هسته لینوکس توسعه درایورهای دستگاه شما مشابه ایجاد درایور دستگاه لینوکس معمولی است. اندروید از نسخه هسته لینوکس با چند مورد خاص مانند Low Memory Killer (سیستم مدیریت حافظه ای که در حفظ حافظه تهاجمی تر است) ، قفل های بیدار (سرویس سیستم PowerManager ) ، درایور Binder IPC و سایر ویژگی های مهم استفاده می کند. برای یک سیستم عامل تعبیه شده تلفن همراه. این اضافات اساساً برای عملکرد سیستم هستند و بر پیشرفت درایور تأثیری ندارند. می توانید از هر نسخه هسته استفاده کنید به شرطی که از ویژگی های مورد نیاز پشتیبانی کند (مانند درایور اتصال دهنده). با این حال ، ما توصیه می کنیم از آخرین نسخه هسته Android استفاده کنید. برای جزئیات ، به ساختمان هسته ها مراجعه کنید.

زبان تعریف رابط HAL (HIDL)

اندروید 8.0 چارچوب سیستم عامل آندروید (در پروژه ای معروف به Treble ) را مجدداً معماری کرد تا تولیدکنندگان به روزرسانی دستگاه ها را به نسخه جدیدی از Android آسان تر ، سریع تر و هزینه کمتری داشته باشند. در این معماری جدید ، زبان تعریف رابط HAL (HIDL ، "hide-l" تلفظ می شود) رابط بین HAL و کاربران آن را مشخص می کند و امکان جایگزینی چارچوب Android را بدون بازسازی HAL ها فراهم می کند.

HIDL از طریق یک رابط فروشنده جدید ، اجرای فروشنده (نرم افزار سطح پایین تر مخصوص دستگاه و نویسندگان سیلیکون) را از چارچوب سیستم عامل Android جدا می کند. فروشندگان یا سازندگان SOC یک بار HAL ها را می سازند و آنها را در یک پارتیشن /vendor روی دستگاه قرار می دهند. چارچوب ، در پارتیشن خود ، می تواند با به روزرسانی بیش از حد هوا (OTA) بدون ترکیب مجدد HAL ها جایگزین شود.

تفاوت بین معماری قدیمی Android و معماری مبتنی بر HIDL در استفاده از رابط فروشنده است:

  • در اندروید 7.x و نسخه های قبلی ، هیچ رابط رسمی فروشنده ای وجود ندارد ، بنابراین سازندگان دستگاه برای انتقال دستگاه به نسخه جدیدتر Android باید بخش زیادی از کد Android را به روز کنند:

    شکل 2. محیط به روزرسانی Android قدیمی
  • در اندروید 8.0 و بالاتر ، یک رابط فروشنده پایدار جدید امکان دسترسی به بخشهای سخت افزاری اندروید را فراهم می کند ، بنابراین سازندگان دستگاه می توانند نسخه های جدید اندرویدی را به سادگی و با به روزرسانی چارچوب سیستم عامل اندروید ارائه دهند - بدون کار اضافی مورد نیاز تولید کنندگان سیلیکون:

    شکل 3. محیط بروزرسانی فعلی Android

همه دستگاه های جدیدی که با اندروید 8.0 و بالاتر راه اندازی می شوند می توانند از معماری جدید بهره ببرند. برای اطمینان از سازگاری رو به جلوی پیاده سازی های فروشنده ، رابط فروشنده توسط Vendor Test Suite (VTS) تأیید می شود ، که مشابه با مجموعه تست سازگاری (CTS) است . می توانید از VTS برای خودکار کردن تست هسته HAL و OS در معماریهای قدیمی و فعلی Android استفاده کنید.

منابع معماری

برای جزئیات بیشتر در مورد معماری Android ، به بخشهای زیر مراجعه کنید:

  • انواع HAL . HAL های صحافی شده ، گذرا ، همان فرآیند (SP) و قدیمی را توصیف می کند.
  • HIDL (عمومی) شامل اطلاعات کلی در مورد رابط بین HAL و کاربران آن است.
  • HIDL (C ++) . شامل جزئیاتی برای ایجاد پیاده سازی C ++ از رابط های HIDL است.
  • HIDL (جاوا) حاوی جزئیاتی درباره رابط جاوا برای رابط های HIDL است.
  • ConfigStore HAL . API ها را برای دسترسی به موارد پیکربندی فقط خواندنی مورد استفاده برای پیکربندی چارچوب Android توصیف می کند.
  • دستگاه پوشش درخت . جزئیات استفاده از پوشش درختی دستگاه (DTO) در Android را ارائه می دهد.
  • کیت توسعه بومی فروشنده (VNDK) . مجموعه کتابخانه های منحصر به فرد فروشنده را برای اجرای HAL های فروشنده توصیف می کند.
  • شیface رابط فروشنده (VINTF) . اشیا را توصیف می کند که اطلاعات مربوط به یک دستگاه را جمع می کنند و این اطلاعات را از طریق API قابل جستجو در دسترس قرار می دهند.
  • SELinux برای آندروید 8.0 . جزئیات تغییرات و سفارشی سازی SELinux.

علاوه بر منابع موجود در این سایت ، اعضای تیم Treble با ایجاد تعادل در اکوسیستم نرم افزار فعال سهامداران توزیع شده جهانی ، Treble: Fast Software Updates را منتشر کردند. این مقاله برای اعضای ACM رایگان است و افراد غیر عضو می توانند چکیده مقاله را خریداری یا بخوانند.