اغراق آمیز نیست اگر ذکر کنیم که اندروید پیشروی غیرقابل نفوذ در حوزه تلفن های هوشمند و لپ تاپ ها است. طبق آخرین برآوردهای بازار، بیش از 80 درصد از کل صنعت را در اختیار دارد. محبوبیت سیستم عامل اندروید موبایل عمدتاً به دلیل تصمیم گوگل برای حفظ آن به عنوان یک محصول منبع باز و ادغام با سایر غول های فناوری از حوزه های مختلف است. Open Handset Alliance که متشکل از شرکتهایی مانند سامسونگ، الجی، اچتیسی، AT&T است، جدیدترین مزایای فنآوری را در اختیار اندروید قرار میدهد. با این حال، برای اکثر کاربران اندروید ناشناخته است، قدرت واقعی آن از عناصر اصلی آن ناشی می شود. در اینجا، ما نگاهی به مؤلفه های اساسی که سیستم اندروید بر اساس آن است می اندازیم:
آ. هسته لینوکس: ثبات و امنیت تلفن های اندرویدی به دلیل پایه لینوکس آن است. قبل از نسخه ساندویچ بستنی اندروید، نسخه 2.6 لینوکس برای تامین انرژی هسته آن استفاده می شد. از آنجایی که لینوکس اساساً یک محصول منبع باز نیز هست، گوگل تغییراتی در معماری کد خود ایجاد کرد تا آن را برای دستگاه های تلفن همراه بهینه کند. با این حال، آخرین نسخه های اندروید از نسخه ارتقا یافته لینوکس 3.0 استفاده می کنند.
ب سیستم فایل: اندروید از ساختار یک سیستم فایل اصلی یونیکس پیروی می کند، اما چند تغییر معماری نیز ایجاد کرده است. ذخیره سازی بر اساس اهداف مختلف به چند دسته تقسیم می شود. پوشه “/system” فقط برای استفاده سیستم عامل است و کاربران اندرویدی به اصلاح فایل های موجود در پوشه دسترسی ندارند. از طرف دیگر، تمام اطلاعات برنامه و کاربر در پوشه “/data” ذخیره می شود. در حالی که سایر توزیعهای لینوکس به حداقل یک کاربر اجازه دسترسی ریشه به سیستم را میدهند، اکثر تولیدکنندگان تلفنهای اندرویدی دسترسی root را برای مشتریان قفل میکنند.
ج. پشته نرم افزار: مجموعه ای از کتابخانه های زمان اجرا مخصوص اندروید و سایر فریم ورک ها در بالای هسته لینوکس لایه بندی شده اند. چارچوب برنامه لایه سوم را تشکیل میدهد که برای اکثر برنامههایی که روی گوشی قرار دارند پوشش میدهد. چارچوب برنامه شامل مدیر تماس، مدیر تلفن، مدیر مکان، مدیر بسته، ارائه دهندگان محتوا و سایر رابط های میان افزار ابزار است. این لایه خاص به طور گسترده با زبان برنامه نویسی C کدگذاری شده است.
د برنامه ها: برنامه های اندروید بالاترین لایه معماری اندروید را تشکیل می دهند. اینها برای کاربر ارتباط بیشتری دارند زیرا ویژگی هایی را ارائه می دهند که مالک دستگاه می تواند مستقیماً از آنها استفاده کند. در داخل، این برنامه ها با چارچوب برنامه ارتباط برقرار می کنند تا اهداف خود را برآورده کنند و ویژگی هایی را در اختیار کاربران قرار دهند.