معماری AOSP

پلتفرم سیستم باز اندروید (AOSP) کد منبع اندروید برای عموم در دسترس و قابل تغییر است. هر کسی می تواند AOSP را برای دستگاه خود بارگیری و تغییر دهد. AOSP یک پیاده سازی کامل و کاملا کاربردی از پلتفرم موبایل اندروید را ارائه می دهد.

دو سطح از سازگاری برای دستگاه های پیاده سازی AOSP وجود دارد: سازگاری AOSP و سازگاری Android. یک دستگاه سازگار با AOSP باید با فهرست الزامات موجود در سند تعریف سازگاری (CDD) مطابقت داشته باشد. یک دستگاه سازگار با Android باید با فهرست الزامات موجود در CDD و الزامات نرم‌افزار فروشنده (VSR) و آزمایش‌هایی مانند موارد موجود در مجموعه تست فروشنده (VTS) و مجموعه تست سازگاری (CTS) مطابقت داشته باشد. برای اطلاعات بیشتر در مورد سازگاری Android، به برنامه سازگاری Android مراجعه کنید.

معماری AOSP

پشته نرم افزار برای AOSP شامل لایه های زیر است:

معماری پشته نرم افزار AOSP
شکل 1. معماری پشته نرم افزار AOSP.
  • برنامه اندروید. برنامه ای که صرفاً با استفاده از API Android در Android SDK ایجاد شده است. Google Play Store به طور گسترده ای برای یافتن و دانلود برنامه های اندروید استفاده می شود، اگرچه گزینه های بسیار دیگری نیز وجود دارد. در برخی موارد، سازنده دستگاه ممکن است بخواهد یک برنامه Android را برای پشتیبانی از عملکرد اصلی دستگاه از قبل نصب کند. اگر به توسعه برنامه‌های Android علاقه دارید، به developers.android.com بروید.
  • برنامه ممتاز برنامه ای که با استفاده از ترکیبی از Android و APIهای سیستم ایجاد شده است. این برنامه‌ها باید به‌عنوان برنامه‌های دارای امتیاز در دستگاه از قبل نصب شده باشند.
  • برنامه ساخت دستگاه برنامه ای که با استفاده از ترکیبی از API Android، API سیستم و دسترسی مستقیم به پیاده سازی فریمورک اندروید ایجاد شده است. از آنجا که سازنده دستگاه ممکن است مستقیماً به APIهای ناپایدار در چارچوب Android دسترسی داشته باشد، این برنامه‌ها باید از قبل روی دستگاه نصب شده باشند و فقط زمانی می‌توانند به‌روزرسانی شوند که نرم‌افزار سیستم دستگاه به‌روزرسانی شود.
  • فریمورک اندروید. گروهی از کلاس‌های جاوا، رابط‌ها و سایر کدهای از پیش کامپایل‌شده که برنامه‌ها بر اساس آن‌ها ساخته می‌شوند. بخش‌هایی از چارچوب با استفاده از APIهای Android SDK به صورت عمومی در دسترس هستند. بخش‌های دیگر چارچوب فقط برای OEMها از طریق استفاده از APIهای سیستم Android SDK در دسترس است. کد فریم ورک اندروید در فرآیند یک برنامه اجرا می شود.
  • Android SDK. یک کیت توسعه نرم افزار برای استفاده در ایجاد برنامه هایی که با فریم ورک اندروید تعامل دارند. Android SDK شامل Android API است که برای همه برنامه‌ها در دسترس است و سیستم API که فقط برای برنامه‌های دارای امتیاز در دسترس است. برای اطلاعات بیشتر در مورد Android SDK's Android API، به developers.android.com بروید. توجه داشته باشید که یک کیت توسعه بومی اندروید (NDK) نیز وجود دارد که به شما امکان می دهد بخشی از برنامه اندروید خود را با استفاده از کد بومی بنویسید.
  • خدمات سیستمی سرویس‌های سیستم اجزای ماژولار و متمرکزی مانند system_server ، SurfaceFlinger و MediaService هستند. عملکردی که توسط API چارچوب Android در معرض دید قرار می‌گیرد، با سرویس‌های سیستم برای دسترسی به سخت‌افزار زیربنایی ارتباط برقرار می‌کند.
  • زمان اجرا اندروید (ART). یک محیط اجرای برنامه جاوا که توسط AOSP ارائه شده است. ART ترجمه بایت کد برنامه را به دستورالعمل های مخصوص پردازنده انجام می دهد که توسط محیط زمان اجرا دستگاه اجرا می شود.
  • لایه انتزاعی سخت افزاری (HAL). HAL یک لایه انتزاعی با یک رابط استاندارد برای پیاده سازی فروشندگان سخت افزار است. HAL‌ها به اندروید اجازه می‌دهند که نسبت به پیاده‌سازی درایورهای سطح پایین‌تر بی‌اعتنا باشد. استفاده از HAL به شما این امکان را می‌دهد تا بدون تأثیرگذاری یا تغییر سیستم سطح بالاتر، عملکرد را پیاده‌سازی کنید.
  • برای اطلاعات بیشتر، به نمای کلی HAL مراجعه کنید.
  • شیاطین و کتابخانه های بومی. دیمون های بومی در این لایه عبارتند از init , healthd , logd و storaged . این دیمون‌ها مستقیماً با هسته یا سایر رابط‌ها تعامل دارند و به پیاده‌سازی HAL مبتنی بر فضای کاربر وابسته نیستند. کتابخانه های بومی در این لایه شامل libc ، liblog ، libutils ، libbinder و libselinux هستند. این کتابخانه‌های بومی مستقیماً با هسته یا سایر رابط‌ها تعامل دارند و به پیاده‌سازی HAL مبتنی بر فضای کاربر وابسته نیستند.
  • هسته. بخش مرکزی هر سیستم عامل، هسته با سخت افزار زیرین دستگاه صحبت می کند. در صورت امکان، هسته AOSP به ماژول های سخت افزاری و ماژول های خاص فروشنده تقسیم می شود. برای توضیحات، از جمله تعاریف، اجزای هسته AOSP، به نمای کلی هسته مراجعه کنید.

بعدش چی؟

  • اگر با AOSP تازه کار هستید و می‌خواهید توسعه را شروع کنید، به بخش شروع کنید.
  • اگر می‌خواهید درباره لایه خاصی از AOSP اطلاعات بیشتری کسب کنید، روی نام لایه در ناوبری سمت چپ کلیک کنید و با نمای کلی آن لایه شروع کنید.