هنگام ساختن برنامه های Android ، بسیاری از توسعه دهندگان ممکن است با تکیه بر الگوی (Model View Controller (MVC شروع به کار کنند. معماری در اندروید از جایگاه ویژه ای برخوردار است. همانطور که می دانید انجام هر کار طبق قاعده و چارچوب های معین سبب می شود آن کار به بهترین شکل ممکن انجام شود. معماری در اندروید نیز سبب خواهد شد تا شما بتوانید طبق پروتکل های خاصی برنامه های اندروید را تولید نمایید. با ما همراه باشید و به خواندن خود ادامه دهید.

معماری اندروید چیست؟

معماری اندروید چیست؟

معماری اندروید چیست؟

معماری Android یک نرم افزار از اجزای سازنده برای پشتیبانی از نیازهای دستگاه های تلفن همراه است. پشته نرم افزار اندروید شامل هسته لینوکس ، مجموعه ای از کتابخانه های c / c++ است که از طریق خدمات چارچوب برنامه ، زمان اجرا و برنامه در معرض دید قرار می گیرند. در بین همه مؤلفه های هسته لینوکس عملکرد اصلی عملکرد سیستم عامل را به تلفن های هوشمند ارائه می دهد و ماشین مجازی (Dalvik (DVM  بستر اجرای برنامه اندرویدی را فراهم می کند.

الگوهای معماری در برنامه نویسی اندروید

الگوهای معماری در برنامه نویسی اندروید

الگوهای معماری در برنامه نویسی اندروید

در حال حاضر سه روش اصلی برای معماری در برنامه نویسی اندروید شما وجود دارد:

  • اندروید استاندارد (Model-View-Controller)

این رویکرد “پیش فرض” ، فعالیت ها / قطعات به عنوان کنترل کننده و مدل های مورد استفاده برای داده و ماندگاری است. با این رویکرد ، فعالیت ها وظیفه پردازش داده ها و به روزرسانی نماها را دارند. فعالیت ها مانند کنترلر در MVC عمل می کنند اما با برخی از مسئولیت های اضافی که باید بخشی از این دیدگاه باشد. مشکلی که در این معماری استاندارد وجود دارد این است که فعالیت ها و قطعات می توانند بسیار بزرگ شوند و آزمایش آن ها بسیار دشوار است.

معماری اندروید استاندارد (Model-View-Controller) 

اندروید استاندارد (Model-View-Controller)

  • Clean Architecture

هنگام استفاده از MVP ، فعالیت ها و قطعات به بخشی از نمای لایه تبدیل می شوند و بیشتر کارها را به ارائه اشیاء واگذار می کنند. هر فعالیت دارای یک ارائه دهنده تطبیق است که همه دسترسی به مدل را کنترل می کند. حاضران همچنین فعالیت ها را هنگام آماده بودن داده ها برای نمایش اطلاع می دهند.

معماری Clean Architecture 

معماری Clean Architecture

  • MVVM (Model-View-ViewModel) ViewModels

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

معماری MVVM (Model-View-ViewModel) ViewModels

معماری MVVM (Model-View-ViewModel) ViewModels

جهت یادگیری برنامه نویسی اندروید “ آموزش رایگان برنامه نویسی اندروید ” را دنبال کنید.

مؤلفه های اصلی معماری اندرویدی

  • برنامه های کاربردی
  • چارچوب برنامه
  • زمان اجرا Android
  • کتابخانه های بستر های نرم افزاری
  • هسته لینوکس
مؤلفه های اصلی معماری اندرویدی

مؤلفه های اصلی معماری اندرویدی

بازنمایی تصویری از معماری اندرویدی با چندین مؤلفه اصلی و اجزای فرعی آن ها

  • برنامه های کاربردی – برنامه های کاربردی لایه برتر معماری اندرویدی است. برنامه های از پیش نصب شده مانند خانه ، مخاطبین ، دوربین ، گالری و غیره و برنامه های شخص ثالث که از فروشگاه play مانند برنامه های چت ، بازی ها و …. بارگیری شده اند فقط بر روی این لایه نصب می شوند. در زمان اجرای Android با کمک کلاس ها و خدمات ارائه شده توسط چارچوب برنامه اجرا می شود.
  • چارچوب برنامه – برنامه چارچوب چندین کلاس مهم را برای ایجاد یک برنامه Android ارائه می دهد. این یک انتزاع عمومی برای دسترسی به سخت افزار را فراهم می کند و همچنین در مدیریت رابط کاربری با منابع برنامه کمک می کند. به طور کلی ، این سرویس ها را با کمک آن ها ارائه می دهد که می توانیم یک کلاس خاص ایجاد کنیم و آن کلاس را برای ایجاد برنامه ها مفید کنیم.  این شامل انواع مختلفی از مدیر فعالیت های خدمات ، مدیر اطلاع رسانی ، سیستم نمایش ، مدیر بسته و … است که با توجه به پیش نیاز برای توسعه برنامه ما مفید هستند.
  • زمان اجرا برنامه – محیط Android Runtime یکی از مهمترین قسمت های سیستم عامل اندروید است. این شامل مؤلفه هایی مانند کتابخانه های اصلی و ماشین مجازی (Dalvik (DVM  است. به طور عمده ، این زمینه را برای چارچوب برنامه فراهم می کند و برنامه های ما را با کمک کتابخانه های اصلی اختیار می کند.  مانند ماشین مجازی جاوا (JVM) ، ماشین مجازی (Dalvik (DVM  یک ماشین مجازی مبتنی بر ثبت نام است و بطور خاص برای اندروید طراحی و بهینه شده است تا اطمینان حاصل شود که یک دستگاه می تواند چندین نمونه را به طور کارآمد اجرا کند. بستگی به لایه هسته لینوکس برای موضوع و مدیریت حافظه سطح پایین دارد. كتابخانه های اصلی ما را قادر می سازند تا برنامه های اندرویدی را با استفاده از زبان های استاندارد JAVA یا Kotlin اجرا كنیم.
  • کتابخانه های بستر های نرم افزاری – کتابخانه های بستر های نرم افزاری شامل کتابخانه های اصلی C / C ++ و کتابخانه های مبتنی بر جاوا مانند رسانه ، گرافیک ، مدیر سرفیس ، OpenGL و … هستند تا از توسعه اندرویدی پشتیبانی کنند.  کتابخانه رسانه پشتیبانی و پخش و ضبط قالب های صوتی و تصویری را ارائه می دهد. مدیر سطح مسئول مدیریت دسترسی به زیر سیستم نمایشگر است. SGL و OpenGL هر دو رابط برنامه برنامه cross-language ، cross-platform (API) برای گرافیک های رایانه ای 2D و 3D استفاده می شوند. SQLite پشتیبانی از پایگاه داده را فراهم می کند و FreeType پشتیبانی فونت را ارائه می دهد. Web-Kit این موتور مرورگر وب منبع باز همه عملکردها را برای نمایش محتوای وب و ساده کردن بارگذاری صفحه فراهم می کند. (SSL (Secure Sockets Layer  یک فناوری امنیتی برای ایجاد یک لینک رمزگذاری شده بین یک سرور وب و یک مرورگر وب است.
  • هسته لینوکس – هسته لینوکس قلب معماری اندرویدی است. این درایورهای موجود مانند درایورهای نمایشگر ، درایورهای دوربین ، درایورهای بلوتوث ، درایورهای صوتی ، درایورهای حافظه و …. را که در طول زمان لازم است ، مدیریت می کند.

هسته لینوکس یک لایه انتزاع بین سخت افزار دستگاه و سایر مؤلفه های معماری اندرویدی ارائه می دهد. این مسئولیت مدیریت حافظه ، نیرو ، دستگاه ها و غیره را بر عهده دارد.

ویژگی های هسته لینوکس عبارتند از:

Security: هسته لینوکس امنیت بین برنامه و سیستم را کنترل می کند.

مدیریت حافظه: این کارآمد مدیریت حافظه را انجام می دهد و از این طریق آزادی توسعه برنامه های ما را فراهم می کند.

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

Network Stack: به طور موثری ارتباطات شبکه را اداره می کند.

درایور مدل: این تضمین می کند که برنامه به درستی کار کند بر روی دستگاه و سازندگان سخت افزار مسئول ایجاد درایورهای خود در ساخت لینوکس.