معماری اندروید - در برنامه نویسی اندروید

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

هسته لینوکس

در پایین لایه ها 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

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

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

مقالات پیشنهادی

اندروید

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


۱۰۵۵
۰
۲۹ آبان ۱۳۹۹

نود جی اس

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


۹۱۲
۰
۱۲ آذر ۱۳۹۹

هوش مصنوعی

هوش مصنوعی یا هوش ماشینی, به هوشمندی نشان داده شده توسط ماشین در شرایط مختلف گفته میشود که مقابل هوش طبیعی در انسان ها قرار دارد که ...


۸۶۰
۰
۱۱ آذر ۱۳۹۹

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۸۶۸
۰
۱۳ آذر ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52