سیستم عامل اندروید: معماری، ویژگیها و نقش آن در زندگی دیجیتال
۱. معماری لایهای اندروید: از هسته تا برنامههای کاربردی
سیستم عامل اندروید مانند یک کیک چندلایه طراحی شده است. هر لایه وظیفهٔ مشخصی دارد و با لایهٔ دیگر ارتباط برقرار میکند. این طراحی باعث میشود برنامهنویسان بدون نیاز به دانستن جزئیات سختافزاری، برنامههای خود را بنویسند. در زیر چهار لایهٔ اصلی را مشاهده میکنید:
| نام لایه (معادل فارسی) | کار اصلی | مثال ساده |
|---|---|---|
| برنامههای کاربردی | برنامههایی که کاربر مستقیماً با آنها کار میکند | مرورگر کروم، اینستاگرام، بازی |
| چارچوب برنامه | ارائهٔ سرویسهای استاندارد به برنامهها (مثل اعلانها) | مدیریت صفحهها و دسترسی به دوربین |
| کتابخانهها و زمان اجرای اندروید | کدهای آماده برای نمایش گرافیک، پایگاه داده و... | کتابخانهٔ اسکیال برای رسم تصاویر |
| هستهٔ لینوکس | مدیریت حافظه، پردازنده و درایورهای سختافزار | تخصیص 2 گیگابایت رم به یک بازی سنگین |
یک مثال ساده: وقتی در بازی گوشی خود روی صفحه ضربه میزنید، این رویداد ابتدا توسط لایهٔ برنامه (خود بازی) دریافت میشود. سپس با کمک چارچوب برنامه، به لایهٔ کتابخانهها ارسال میگردد تا اثر لمس محاسبه شود. در نهایت هستهٔ لینوکس با استفاده از درایور صفحهٔ لمسی، سیگنال الکتریکی را به مختصات (x,y) تبدیل کرده و پاسخ حرکت را روی نمایشگر رسم میکند. این فرایند در کمتر از 16 میلیثانیه انجام میشود.
۲. مدیریت حافظه و چندوظیفگی در اندروید
اندروید از سیستمی به نام مدیریت حافظه بر اساس فعالیت استفاده میکند. وقتی شما برنامهای را باز میکنید، اندروید بخشی از حافظهٔ رم را به آن اختصاص میدهد. اگر حافظه پر شود، سیستمی به نام «کشتن فرایند کماهمیت» فعال میشود. برای درک بهتر، فرمول زیر میزان حافظهٔ در دسترس را نشان میدهد:
$ حافظه \ آزاد = حافظه \ کل - (حافظه \ سیستم + حافظه \ برنامهها + حافظه \ کش )$در این رابطه، حافظهٔ کش شامل دادههایی است که برنامهها برای اجرای سریعتر ذخیره میکنند. اندروید بر اساس اولویت، فرایندها را به پنج دسته تقسیم میکند:
- فرایند پیشزمینه (برنامهٔ در حال استفاده)
- فرایند قابل مشاهده (برنامهای که بخشی از آن دیده میشود)
- فرایند سرویس (مثل پخش موسیقی در پسزمینه)
- فرایند پشتیبان (برنامههای مینیمایز شده)
- فرایند خالی (برای کش نگهداری میشود)
اگر حافظه کم شود، ابتدا فرایندهای خالی و سپس پشتیبان حذف میشوند. این روش باعث میشود برنامهٔ در حال اجرا هرگز از حافظه بیرون نیفتد. برای نمونه، وقتی در حال تماشای ویدیو هستید و اعلان پیامک میآید، اندروید برنامهٔ پیامرسان را در دستهٔ «قابل مشاهده» قرار میدهد و حافظهٔ کافی برای هر دو را نگه میدارد.
۳. کاربرد عملی: مدل امنیتی مجوزها (دسترسیها)
یکی از نقاط قوت اندروید، سیستم مجوزهاست. هر برنامه برای دسترسی به سختافزارهایی مانند دوربین، موقعیت مکانی یا میکروفون باید از کاربر اجازهٔ صریح بگیرد. از اندروید 6 به بعد، مجوزها در زمان اجرا (هنگام نیاز) درخواست میشوند نه هنگام نصب. این کار امنیت را به شدت افزایش میدهد.
مثال عینی: فرض کنید برنامهٔ «نقشه» را نصب کردهاید. برای نمایش مسیر شما، این برنامه به موقعیت مکانی نیاز دارد. وقتی برای اولین بار دکمهٔ «مکانیابی» را لمس میکنید، اندروید پنجرهای نشان میدهد با عبارت «آیا به نقشه اجازه میدهید به موقعیت مکانی شما دسترسی پیدا کند؟» اگر اجازه ندهید، برنامه فقط نقشهٔ ثابت را نشان میدهد. اگر اجازه دهید، اندروید تابع زیر را به صورت خودکار اجرا میکند:
$Access = \begin{cases} 1 & \text{if user grants permission} \\ 0 & \text{if denied} \end{cases}$در این تابع، $Access=1$ به معنای اجازهٔ کامل و $Access=0$ به معنای عدم دسترسی است. برنامه نمیتواند این مقدار را تغییر دهد و اندروید هر بار که برنامه سعی در استفاده از دوربین یا موقعیت دارد، این مقدار را بررسی میکند.
۴. چالشهای مفهومی در اندروید
پاسخ: هر سازنده (مانند سامسونگ، شیائومی) باید نسخهٔ جدید اندروید را با درایورهای سختافزاری خود تطبیق دهد. این کار زمانبر و هزینهبر است. همچنین برخی گوشیهای قدیمی حافظه یا پردازندهای ضعیف دارند که نمیتوانند نسخهٔ جدید را روان اجرا کنند. بنابراین شرکتها معمولاً فقط برای مدلهای پرچمدار و تا 2 یا 3 سال بهروزرسانی ارائه میدهند.
پاسخ: اندروید از یک ماشین مجازی به نام آرت (زمان اجرای اندروید) استفاده میکند که برنامهها را به صورت «همزمان-با-ترجمه» اجرا میکند. این روش باعث میشود برنامهها سریع باز شوند، اما حافظهٔ بیشتری نسبت به روش اجرای مستقیم اشغال شود. به عنوان مثال، یک برنامهٔ ساده در اندروید ممکن است 50 مگابایت رم بگیرد، در حالی که در برخی سیستمعاملهای دیگر 20 مگابایت نیاز داشته باشد. این یک تصمیم طراحی برای افزایش سرعت پاسخگویی است.
پاسخ: خیر، متنباز بودن به این معناست که کد منبع در دسترس عموم است. همین موضوع باعث میشود هزاران محقق امنیتی در سراسر جهان کدها را بررسی کرده و حفرههای امنیتی را زودتر پیدا کنند. در مقابل، سیستمعاملهای بسته فقط توسط تیم داخلی شرکت بررسی میشوند. آمارها نشان میدهد که سرعت رفع آسیبپذیریهای بحرانی در اندروید به طور میانگین 30 روز است که از بسیاری از نرمافزارهای بسته بهتر عمل میکند.
۵. جدول مقایسهٔ نسخههای مهم اندروید
| نام نسخه | سال انتشار | ویژگی کلیدی | وضعیت پشتیبانی |
|---|---|---|---|
| اندروید 4.4 کیتکت | 2013 | بهبود مصرف رم در دستگاههای ارزان | متوقف شده |
| اندروید 6.0 مارشمالو | 2015 | مجوزهای زمان اجرا و مدیریت حافظه | متوقف شده |
| اندروید 10 | 2019 | حالت تاریک سراسری و حریم خصوصی پیشرفته | فعال (فقط امنیتی) |
| اندروید 13 | 2022 | بهینهسازی تبلتها و زبانهای راستبهچپ | فعال (کامل) |
پاورقیها
1هستهٔ لینوکس: قلب سیستم عامل لینوکس که مدیریت منابع سختافزاری را بر عهده دارد. معادل انگلیسی آن Linux kernel است.
2لایهٔ انتزاع سختافزار: لایهای که جزئیات فنی سختافزارها را از بقیهٔ سیستم پنهان میکند (HAL - Hardware Abstraction Layer).
3آرت (زمان اجرای اندروید): ماشین مجازی که کدهای برنامه را به دستورات پردازنده تبدیل میکند. مخفف Android Runtime.
4فرایند کماهمیت: برنامههایی که کاربر مدتی است با آنها کار نکرده و اندروید میتواند برای آزادسازی حافظه، آنها را ببندد. معادل انگلیسی Low-importance process.
5مجوزهای زمان اجرا: درخواست دسترسی به سختافزار یا داده در لحظهٔ نیاز، نه هنگام نصب برنامه (Runtime permissions).