سیستم عامل اندروید پشته ای از اجزای نرم افزاریست که تقریباً به پنج بخش و چهار لایه اصلی تقسیم می شود.در شکل زیر معماری اندروید نشان داده شده است.

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

Linux kernel(هسته لینوکس)

در پایین ترین لایه در معماری اندروید , لینوکس 3.6 قرار دارد که دارای حدوداً 115 تکه یا (patches) است. این سطح انتزاعی ،سخت افزار دستگاه را فراهم می کند که شامل تمام درایور سخت افزارهای ضروری مانند دوربین، صفحه کلید، صفحه نمایش و غیره. همچنین هسته, همه ی چیزهایی که واقعاٌ نیاز هستند مثل شبکه کردن و آرایه ی وسیعی از درایورهای سخت افزار که به عنوان واسط عمل می کنند را بررسی می کند.

Libraries(کتابخانه ها)

در بالای هسته لینوکس مجموعه ای از کتابخانه ها  از جمله موتور جست و جو گر وب متن باز  WebKit, کتابخانه libc, پایگاه داده SQLite که یک مخزن مفید برای ذخیره سازی و اشتراک گذاری برنامه داده ها، کتابخانه هایی برای بازی و ضبط صوتی و تصویری، کتابخانه های SSL  که مسئول امنیت اینترنت و غیره را بر عهده دارند, وجود دارد.

Android Libraries(کتابخانه های اندروید)

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

  • android.app : دسترسی به مدل نرم افزار را فراهم می کند که در همه ی برنامه های اندرویدی وجود دارد.
  • android.content :دسترسی به محتوا, انتشارات و پیام های بین نرم افزار ها و قطعات برنامه را تسهیل می کند.
  • android.database: برای دسترسی به اطلاعات منتشر شده توسط ارائه دهندگان محتوا که شامل مدیریت کلاس های پایگاه داده ی SQLite است مورد استفاده قرار می گیرد.
  • android.opengl : یک رابط جاوا به OpenGL ES 3D برای بارگذاری گرافیکی API است.
  • android.os :برنامه های کاربردی با دسترسی به خدمات استاندارد سیستم عامل از جمله پیام ها, system services و  ارتباطات inter-process را فراهم می کند.
  • android.text : برای ارائه و تغییر متن در صفحه نمایش دستگاه مورد استفاده قرار می گیرد.
  • android.view : برای ساختن قسمت های اساسی رابط کاربری برنامه مورد استفاده قرار می گیرد.
  • android.widget : مجموعه غنی است از اجزای رابط کاربر از پیش ساخته شده مانند دکمه ها، برچسب ها، ListView ها, مدیریت لیوت ها, radioButton ها و غیره.
  • android.webkit -مجموعه ای از کلاس های در نظر گرفته شده که اجازه می دهد قابلیت های مرورگر وب در برنامه های کاربردی ساخته شود.

core libraries, اندروید را در زمان اجرا بر اساس جاوا تحت پوشش دارد.در این زمان ما به نوبه ی خود توجه داریم به  کتابخانه هایی که بر اساس زبان ++C/C در این لایه ی بسته ی نرم افزاری اندروید وجود دارند.

Android Runtime

سومین قسمت از معماری اندروید که از پایین در لایه ی دوم قرار دارد.این قسمت جزء کلیدی به نام  Dalvik Virtual Machine است که یک نوع ماشین مجازی ویژه ی جاوا را برای اندروید طراحی و بهینه کرده است.Dalvik VM از ویژگی های هسته ی لینوکس مثل مدیریت حافظه و چند نخی استفاده می کند,که از خصوصیات ذاتی زبان جاوا است. Dalvik VM هر برنامه ی اندرویدی را قادر می سازد تا به صورت فعال در روند اجرایی خود نمونه ای از ماشین مجازی Dalvik داشته باشد . همچنین در زمان اجرای اندروید نیز مجموعه ای از کتابخانه های اصلی را فراهم می کند تا توسعه دهندگان نرم افزار اندروید قادر باشند برنامه های کاربردی و استاندارد را با استفاده از زبان برنامه نویسی جاوا بسازند.

Application Framework(فریم ورک اپلیکیشن)

لایه Application Framework بسیاری از خدمات سطح بالاتر را برای برنامه های کاربردی در قالب کلاس های جاوا فراهم می کند و به توسعه دهندگان اندروید این اجازه را داده است تا از این خدمات در برنامه های خود استفاده کنند.

Android framework شامل خدمات کلیدی زیر است :

  • Activity Manager – تمام جنبه های چرخه حیات برنامه و دسته ی اکتیویتی را کنترل می کند.
  • Content Providers – به برنامه ها این اجازه را می دهد تا داده ها را انتشار و با برنامه های دیگر به اشتراک بگذارند.
  • Resource Manager -دسترسی به منابع جاسازی شده ی بدون کد مثل رشته ها,تنظیمات رنگ و لایه های رابط کاربری فراهم می کند.
  • Notifications Manager – به برنامه ها این اجازه را می دهد تا اعلان ها و هشدار ها را به کاربر نمایش دهند.
  • View System – از مجموعه ی توسعه پذیر  view ها برای ایجاد واسط کاربر نرم افزار استفاده می کند.

Applications(اپلیکیشن ها)

شما می توانید تمام برنامه های اندرویدی را در لایه بالا پیدا کنید. در این لایه فقط قادر هستید تا برنامه ها ی نوشته شده ی خودتان را نصب کنید.چند نمونه از این برنامه ها را مثل مخاطبین, Books, مرورگرها,بازی ها و غیره میتوان نام برد.