معرفی کامل Xamarin Android
ساخت برنامه های اندروید نیتیو
Xamarin.Android بخشی از خانواده Xamarin برای ساخت برنامه بومی آندروید با C # و Xamarin است. Xamarin.Android همان کنترل های UI همانند اندروید با جاوا را فراهم می کند.
در این مقاله شما در مورد معماری آندروید، معماری Xamarin.Android و ابزار برای توسعه برنامه های Xamarin.Android یاد خواهیدگرفت. قبل از شروع Xamarin.Android، بیایید به درک معماری و ابزارهای توسعه اندروید با جاوا بپردازیم.
بسمه تعالی
ساخت برنامه های اندروید نیتیو
Xamarin.Android بخشی از خانواده Xamarin برای ساخت برنامه بومی آندروید با C # و Xamarin است. Xamarin.Android همان کنترل های UI همانند اندروید با جاوا را فراهم می کند.
در این مقاله شما در مورد معماری آندروید، معماری Xamarin.Android و ابزار برای توسعه برنامه های Xamarin.Android یاد خواهیدگرفت. قبل از شروع Xamarin.Android، بیایید به درک معماری و ابزارهای توسعه اندروید با جاوا بپردازیم.
توسعه Android | Android Development
آندروید یک سیستم عامل منبع باز مبتنی بر هسته لینوکس است. Android در ابتدا توسط Android Inc توسعه داده شد و سپس توسط Google خریداری شد. آندروید یک چارچوب برنامه کاربردی را فراهم می کند که به شما اجازه می دهد تا برنامه های نوآورانه و بازی های موبایل را در یک محیط زبان جاوا ایجاد کنید.
توسعه برنامه های آندروید بومی می تواند با استفاده از Android Studio یا Eclipse با استفاده از جاوا به عنوان یک زبان برنامه نویسی انجام شود.
معماری پلتفرم اندروید | Android Platform Architecture
سیستم عامل آندروید یک پشته از اجزای نرم افزاری مبتنی بر لینوکس است که عمدتا به پنج بخش تقسیم می شود که در نمودار زیر نشان داده شده است.
هسته لینوکس | Linux Kernel
هسته لینوکس یک محیط کار اجرایی چند منظوره را فراهم می کند که به چندین فرآیند اجازه می دهد تا همزمان اجرا شوند.
Andriod Runtime یا همان ART برای مدیریت رشته و مدیریت حافظه پایین و غیره به هسته لینوکس به ویژگی های زیر بستگی دارد:
-
لایه انتزاعی سخت افزار | Hardware Abstraction Layer (HAL)
لایه انتزاعی سخت افزاری (HAL) به برنامه / چارچوب Android اجازه می دهد تا با درایور دستگاه های سخت افزاری خاص با کمک API سطح بالا ارتباط برقرار کند. Android HAL حاوی چندین کتابخانه برای نوع خاصی از سخت افزار، مانند ماژول دوربین یا بلوتوث است. بنابراین، هنگامیکه شما برای دسترسی به سخت افزار دستگاه با استفاده از API جاوا تماس می گیرید، سیستم اندروید ماژول کتابخانه را برای آن مولفه سخت افزاری بارگیری می کند.
-
زمان اجرا اندروید | Android Runtime
هر برنامه اندروید مبتنی بر Android نسخه 5.0 (API level 21) یا بالاتر، در فرایند خود و با مثال خاصی از Android Runtime (ART) اجرا می شود. ART برای اجرا چند vms (ماشین های مجازی) در دستگاه های با حافظه کم نوشته شده است.
برای اجرای برنامه در داخل ART، کد برنامه باید از فایل های کلاس استاندارد Java به فرمت اجرایی (.dex) Dalvik منتقل شود، که برای حداقل حافظه (مصرف حافظه کمتر از 50٪) از بایت کد استاندارد جاوا بهینه سازی شده است. ابزارهای زنجیره ساخت مانند جک، منابع جاوا را به بایت کد DEX کامپایل می کنند که می تواند بر روی پلت فرم آندروید اجرا شود.
ART دارای دو ویژگی اصلی در مقایسه با Dalvik است:
- Ahead-of-Time " تدوین پیش از زمان " (AOT)، که سرعت حافظه را کاهش می دهد
- دارای garbage collection بهینه سازی شده
GC یا Garbage Collector چیست؟
حتماً در برنامه های ما زمانی وجود دارد که باید اشیاء دیگری که توسط شی جاری خود ایجاد کرده ایم را ببندیم، برای مثال شی ای که ورود و خروج کاربران را در شبکه کنترل می نماید یا در موارد بسیار ساده تر زمانی که باید Connection موجود بین برنامه و DB را در انتهای برنامه ببندیم و چندین و چند مثال دیگر می توانیم از کلاس Garbage Collector موجود در Framework استفاده کنیم. به زبان ساده تر GC حافظه رم را آزاد می کند.
بعبارتی برنامه نویسی از Garbage Collection استفاده نمی کند بلکه از کارهای Garbage Collection منفعت زیادی می برد.
-
کتابخانه بومی C/C++ | Native C/C++ Libraries
کتابخانه های C/C++ طیف گسترده ای از توابع از جمله گرافیک دو بعدی و 3D گرافیکی، ارتباطات امن لایه (SSL)، مدیریت پایگاه داده SQLite، مدیریت رسانه مانند پخش صوتی و تصویری، زیر سیستم نمایش و مدیریت لایه گرافیکی و اجرای استاندارد C کتابخانه سیستم (libc) را تولید و تهیه می کند.
برنامه Android می تواند به این کتابخانه ها از طریق API های کتابخانه هسته ای آندروید مبتنی بر جاوا دسترسی پیدا کند. همچنین، شما می توانید با استفاده از کیت توسعه بومی اندروید (NDK) در کد جاوا با استفاده از رابط بومی جاوا (JNI)، به این کتابخانه های بومی C / C ++ دسترسی پیدا کنید.
-
فریمورک (چارچوب) Java API | Java API Framework
چارچوب جاوا API مجموعه ای از API های غنی و توسعه پذیر برای دسترسی به تمام مجموعه ویژگی های سیستم عامل آندروید با استفاده از زبان جاوا است. این API ها برای تعامل با کتابخانه های بومی C/C++ ، ساخت رابط کاربری غنی و مدیریت وظایف مختلف مانند مدیریت فعالیت، مدیریت اطلاع رسانی، مدیریت منابع و غیره مفید هستند.
-
نرم افزار و برنامه های سیستم و شخص ثالث | System Apps and Third Party Apps
سیستم عامل Android همراه با مجموعه ای از برنامه های سیستم برای ایمیل ها، تماس های تلفنی، پیام ها، تقویم ها، مرور اینترنت، مخاطبین و خیلی بیشتر بیرون آمد. به غیر از برنامه های سیستم، شما همچنین می توانید شخص ثالث را برای ایمیل، چت، پیام مانند outlook، فیس بوک، توییتر و غیره نصب کنید.
معماری Xamarin Android | Xamarin.Android Architecture
برنامه های Xamarin.Android در محیط Mono اجرا می شود. Mono Runtime در زبان C نوشته شده است و با ماشین مجازی آندروید Runtime (ART) همراه است. هر دو محیط زمان اجرا در بالای هسته لینوکس قرار می گیرند و API های مختلفی را برای دسترسی به سیستم آندروید پایه قرار می دهند.
در برنامه های Xamarin.Android شما می توانید از ویژگی های مختلف سطح پایین سیستم عامل آندروید یا با فراخوانی برنامه های .NET API یا استفاده از کلاس های موجود در فضاهای نامی اندروید که توسط Runtime Android نمایش داده می شود دسترسی پیدا کنید.
-
فراخوانهای قابل مدیریت | Managed Callable Wrappers (MCW)
امکانات سیستم عامل اندروید مانند Audio، Graphics، OpenGL و Telephony به طور مستقیم به برنامه های بومی قابل دسترسی نیستند. آنها فقط از طریق برنامه های کاربردی جاوا آندروید اجرا می شوند که در یکی از فضای نام های java.* یاandroid.* قرار دارند.
بنابراین، برای دسترسی به این API ها در Xamarin.Android، یک فراگیر قابل خواندن قابل مدیریت است که به عنوان یک JNI (رابط بومی زبان جاوا) برای کد آندروید را فراخوانی کرده و از روش های مجازی و اجرای رابط های Java پشتیبانی می کند.
توسعه Xamarin Android | Xamarin.Android Development
Xamarin.Android به شما اجازه می دهد که برنامه های بومی و نیتیو اندروید را با استفاده از سی شارپ ایجاد کنید. توسعه برنامه های آندروید بومی می تواند با استفاده از Android Studio یا Eclipse با استفاده از جاوا به عنوان یک زبان برنامه نویسی انجام شود.
معرفی کامل Xamarin Android