معماری سیستم عامل اندروید شامل اجزای نرم افزاری است. این اجزا بطور تقریبی شامل پنج لایه و چهار بخش اصلی است. نمودار معماری اندروید در تصویر قابل دیدن است:
هسته لینوکس
در پایین لایه ها Linux – Linux 3.6 با تقریباً 115 وصله قرار دارد. این سطح, انتزاع را بین سختافزارهای دستگاه فراهم میکند و شامل تمام درایورهای سختافزاری ضروری مانند دوربین، صفحهکلید، صفحهنمایش و غیره است. همچنین، هسته تمام مواردی را که لینوکس در آنها واقعاً خوب است، مانند شبکهسازی و مجموعه وسیعی از درایورهای دستگاه، را کنترل میکند.
کتابخانه ها
در بالای هسته لینوکس مجموعه ای از کتابخانه ها از جمله موتور مرورگر وب منبع باز WebKit، کتابخانه معروف libc، پایگاه داده SQLite وجود دارد که یک مخزن مفید برای ذخیره و به اشتراک گذاری داده های برنامه، کتابخانه هایی برای پخش و ضبط صدا و تصویر، SSL و از جمله کتابخانه های مسئول امنیت اینترنت و غیره می باشد.
کتابخانه های اندروید
این دسته شامل آن دسته از کتابخانههای مبتنی بر جاوا میشود که مختص توسعه اندروید هستند. هایی از کتابخانههای این دسته شامل کتابخانههای چارچوب برنامه کاربردی علاوه بر آنهایی هستند که ساخت رابط کاربری، طراحی گرافیکی و دسترسی به پایگاه داده را آسان میکنند. خلاصه ای از چند کتابخانه اصلی اندروید که در دسترس توسعه دهنده اندروید است به شرح زیر است :
- android.app – دسترسی به مدل اپلیکیشن را فراهم می کند و سنگ بنای تمامی اپلیکیشن های اندروید است.
- android.content – دسترسی به محتوا، انتشار و ارسال پیام بین برنامه ها و اجزای برنامه را تسهیل می کند.
- android.database − مدیریت دسترسی dataهای ذخیرسازی شده توسط appilicationها , که شامل کلاس های مدیریت Database SQLite است.
- android.opengl − یک رابط جاوا به API رندر گرافیک OpenGL ES 3D.
- android.os − برنامه های کاربردی را با دسترسی به خدمات استاندارد سیستم عامل از جمله پیام ها، خدمات سیستم و ارتباطات بین فرآیندی فراهم می کند.
- android.text − برای ارائه و دستکاری متن روی نمایشگر دستگاه استفاده می شود.
- android.view − بلوک های ساختمانی اساسی رابط های کاربری برنامه ها.
- android.widget − مجموعه ای غنی از اجزای رابط کاربری از پیش ساخته مانند buttonها، برچسب ها، نمای لیست، مدیران طرح، Radio Buttonها و … میباشد.
- android.webkit − مجموعهای از کلاسها برای اجازه دادن به قابلیتهای مرور وب در برنامهها ساخته میشوند.
پس از پوشش کتابخانه های kernel مبتنی بر جاوا در زمان Android Runtime، اکنون نیاز است که کتابخانه های مبتنی بر C/C++ موجود در این لایه پشته نرم افزار اندروید را بررسی کنیم.
زمان اجرا اندروید
این بخش سوم معماری است و در لایه دوم از پایین موجود است. این بخش یک جزء کلیدی به نام ماشین مجازی Dalvik را ارائه می دهد که نوعی ماشین مجازی جاوا است. این ماشین بطور خاص برای اندروید طراحی و بهینه سازی شده است.
Dalvik VM از ویژگی های اصلی لینوکس مانند مدیریت Storage و Multi Thread استفاده میکند که در زبان جاوا ذاتی است. Dalvik VM هر برنامه اندرویدی را قادر میسازد تا در فرآیند خاص خود با نمونهای از ماشین مجازی Dalvik اجرا شود.
زمان اجرا اندروید همچنین مجموعه ای از کتابخانه های اصلی را فراهم می کند که توسعه دهندگان برنامه های اندروید را قادر می سازد برنامه های اندروید را با استفاده از زبان برنامه نویسی استاندارد جاوا بنویسند.
Framework Application
لایه Application Framework بسیاری از خدمات سطح بالاتر را در قالب کلاس های جاوا به برنامه ها ارائه می دهد. توسعه دهندگان برنامه مجازند از این خدمات در برنامه های خود استفاده کنند.
Framework Android شامل خدمات کلیدی زیر است :
- Activity Manager – تمام جنبه های چرخه عمر برنامه و پشته فعالیت را کنترل می کند.
- Content Providers – مجوز اشتراک گذاری dataها را بین applicationهای نصبی را مدیریت میکنید.
- Resource Manager – دسترسی به منابع غیر کد مانند stringها، تنظیمات رنگ و طرح های رابط کاربری را فراهم میکند.
- Notifications Manager – به برنامه های کاربردی اجازه می دهد تا هشدارها و اعلان ها را به کاربر نمایش دهند.
- View System – مجموعه ای از نماهای توسعه پذیر که برای ایجاد رابط های کاربری برنامه ها استفاده می شود.
Applications
در معماری اندروید بالاترین لایه مربوط به لایه اپلیکیشن ها می باشد که تمام برنامه های اندروید را میتوانید در لایه بالایی پیدا کنید. شما برنامه خود را می نویسید تا فقط روی این لایه نصب شود. نمونه هایی از این برنامه ها عبارتند از مخاطبین، مرورگر، بازی ها و غیره.