اجزای معماری اندروید به صورت کلی به ۴ دسته اصلی تقسیم میشود که عبارتند از:
- Kernel
- ماشین مجازی Dalvik
- application framework
- applications
برای درک بهتر این معماری و اجزای درونی آن، به تصاویر زیر توجه کنید:
هسته اندروید (kernel) چیست؟
اندروید بر روی هسته لینوکس نسخه ۲٫۶ به بالاتر اجرا میشود. هسته، اولین و نخستین لایهی نرم افزاری در اندروید است که با سخت افزار به صورت کاملا مستقیم در تعامل میباشد. تغییرات در هسته و یا ساختن دوبارهی آن چیزی نیست که لازم باشد از ابتدا به ساکن و مجددا توسط یک برنامه نویس انجام شود! فقط سازندگان سخت افزار قادر به تغییرات درون هسته هستند و این یک امر غیرطبیعی و ناممکن برای برنامه نویسان خواهد بود؛ چرا که یک برنامه نویس تنها قادر است تا لایههای نرم افزاری را تغییر دهد نه سخت افزار آن را و این مورد تنها بهعهدهی افرادی است که با سخت افزار اندروید در ارتباط هستند.
کتابخانه ها
اجزای کتابخانهها بعنوان یک لایه مترجم بین هسته و فریم ورکها عمل میکنند. این کتابخانهها و اجزای درونی آنها با زبان C و ++C نوشته شدهاند؛ اما از طریق یک API در زبان جاوا در اختیار توسعه دهندگان قرار میگیرند تا به سهولت قابل استفاده باشند. برنامه نویسان و توسعه دهندگان میتوانند از طریق فریم ورکهای زبان جاوا برای دسترسی مستقیم به کتابخانههای اصلی C و ++C استفاده کنند.
برخی از کتابخانههای اصلی عبارتند از:
- LibWebCore
- Media libraries
- Graphics libraries
ماشین مجازی Dalvik زمان اجرای اجزای کتابخانهها با آنها در تعامل میباشد تا باعث یکپارچگی اجرای آنها باشد. ماشین مجازی، بخش مهم و ضروری در اندروید است تا برنامههای سیستمی و شخص ثالث را بدرستی اجرا نماید.
به تصویر زیر توجه کنید:
به تصویر زیر توجه کنید؛ پس از تبدیل، فایلهای dex. به طرز قابل توجهی کوچکتر و کم حجمتر میشوند!
Application Framework چیست؟
اپلیکیشن فریم ورک، یکی از بلاکهای مهم ساختن سیستم نهایی میباشد. این فریم ورکها مجموعهای از خدمات را درون سیستم برای برنامهنویس یا توسعه دهندگان جهت نوشتن یک برنامه بدون مشکل فراهم میکنند. بهعنوان یک توسعه دهنده شما کد را مینویسید و فقط از APIها برای تکمیل آنها در زبان جاوا استفاده میکنید. از طریق یک API در زبان جاوا قادر خواهید بود تا به هسته و کتابخانههای C و ++C دسترسی داشته باشید.
اول اینکه، کیفیت دادههای ذخیرهشده در دستگاههای تلفن همراه کاربر بیشتر شخصی میشود تا مواردی دیگر! به غیر از ایمیل، پیامهای فوری، SMS / MMS ، لاگ تماسها، عکسها و پست صوتی وجود دارند که عموما توسعه دهندگان را دچار مشکل میکند.
برخی از گزینههای فوق بر روی یک کامپیوتر رومیزی هم وجود دارند، ولی اهمیت این دادهها بر روی اندروید و اجزای آن اهمیت فوق العادهای دارد. اطلاعات روی دستگاه موبایل شما به احتمال زیاد از ارزش بیشتری برخوردار خواهد بود، چرا که آنها را در یک صفحه ۴ – ۵ اینچی به همراه خود حمل میکنید و با خود هر کجا میبرید! این حالت، یک پلتفرم همگرا را بوجود میآورد؛ به این دلیل که سیستم رومیزی شما و تلفن همراه یک مجموعه غنی و کامل از اطلاعات حساس هستند که هردوی آنها شامل اطلاعات شخصی میباشند و برای شما اهمیت زیادی خواهند داشت. تصور کنید زمانیکه برای جلوگیری از نفوذ یا به سرقت رفتن شماره تلفنهای خود، یک پشتیبان بر روی سیستم رو میزی خود تهیه میکنید و فایل پشتیبان شمارههای تماس را بر روی سیستم شخصی نگه داری میکنید! آیا این همان پلتفرم همگرا نیست؟ آیا این دو سیستم مکمل هم نیستند؟حتی اگر همگامسازی را با یک مکان دوردست (Google Drive) انجام دهید، با این حال شما فقط در مقابل از دست دادن دادهها محافظت کردهاید و نه از دست دادن حریم خصوصی!
همچنین در نظر بگیرید که فرمت دادههای ذخیرهشده در دستگاههای تلفن همراه، تعیین و مشخص شوند! این کار اطلاعات حساس شما را به مرز سرقت نزدیکتر میکند. هر تلفن همراه SMS / MMS ، تماسها، و پست صوتی خواهد داشت. مکانهای ذخیره شده از روی GPS و مواردی دیگر که قطعا اطلاع دارید، تمامی اینها جزء مواردی هستند که خطرات امنیتی را در سیستم عامل اندروید شامل میشود. حالا در نظر بگیرید که این اطلاعات تا چه حد مهم است؟ برای کاربرانی که هیچ گونه پشتیبانی از اطلاعاتی از خود ندارند، از دست دادن دادهها قابل تصور نیست!
خطرناکترین نوع حملات بر روی پلتفرم اندروید انجام میشوند، در سکوت کامل و چندین هزار مایل دروتر از شما و فرد مهاجم نیازی به دسترسی فیزیکی و لمس تلفن همراه شما نخواهد داشت! این نوع حملات در هر زمانی ممکن است رخ دهد و اغلب میتواند به دلیل امنیت ضعیف در جای دیگری بر روی دستگاه رخ دهد.
One Comment
حسن
سلام
سایتتون عالیه واقعا – دستتون درد نکنه