در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

با سلام به همه دوستان Itpro. در قسمت های قبل در باره ی پلتفرم اندروید صحبت شد و یک دید کلی از این سیستم عامل به دست آوردیم. حال قصد داریم که در باره ی Xamarin صحبت کنیم. ما می خواهیم در ادامه به بررسی Xamarin بپردازیم و ببینیم که این برنامه چگونه نوشتن برنامه اندروید را با #C و NET. آسان می کند. همچنین به مزایا و معایب Xamarin.Android خواهیم پرداخت.

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

Xamarin نام شرکتی است که ابزارهای توسعه نرم افزار تجاری تولید می کند. این شرکت با استفاده از پروژه متن باز Mono بستری را فراهم می آورد که بتوان با استفاده از #C و NET.بتوان برنامه هایی برای اندروید و OS X و IOS ساخت. Xamarin برای ساخت برنامه های اندروید محصول Xamarin.Android را به بازار عرضه کرده است.

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

قبل از این که به معماری Xamarin.Android بپردازیم ابتدا به این سوال می پردازیم که چرا این نرم افزار را انتخاب کردیم؟ در ادامه لیستی از مزایا و معایب استفاده از این نرم افزار را آورده ایم:

مزایای استفاده از Xamarin.Android


  • استفاده از مهارت های #C و NET. برنامه نویسان و مهندسان نرم افزار وقت و انرژی بسیاری برای یادگیری ویژگی های زبان #C و نحوه استفاده از آن و همچنین فریمورک NET. صرف کرده اند. با این که جاوا با زبان های شی گرا شباهت های بسیاری دارد ولی اگر یک برنامه نویس #C بخواهد همان برنامه ای که می تواند در زبان #C بنویسد را در زبان جاوا بنویسد وقت و انرژی بسیار زیادی را می طلبد. حال اگر کسانی که به زبان #C برنامه تولید می کنند بخواهند برای موبایل ها برنامه تولید کنند باید آن برنامه را به زبان جاوا تولید کنند. ولی با استفاده از این نرم افزار به راحتی می توان با استفاده از همان مهارت های #C برنامه اندروید تولید نمود و دیگر لازم نیست که سختی یادگیری زبان جاوا را تحمل کرد.
  • قابلیت تولید برنامه در چندین پلتفرم با این که نرم افزار Xamarin.Android اجازه نمی دهد که یک برنامه بسازید که در همه پلتفرم های اندروید، IOSو WP8 اجرا شود اما این قابلیت را فراهم می آورد که از بخش بسیار بزرگی از کدتان را در هریک از پلتفرم های گفته شده دوباره استفاده کنید. در کل کدهای مربوط به UI و کدهایی که مربوط به قابلیت های دستگاه است را باید برای هر پلتفرم جدا بنویسید ولی کدهایی مانند منطق سرویس های مشتری، اعتبارسنجی کاربران، کش کردن داده ها و ذخیره سازی داده ها می تواند برای همه ی پلتفرم ها یکسان باشد که باعث صرفه جویی در زمان خواهد شد.

مشکلات استفاده از Xamarin.Andriod


  • دارا بودن لایسنس Xamarin.Android همانند Xamarin.IOS و Xamarin.OS x ابزارهای تجاری هستند و باید خریداری شوند. البته در کشور ما این مشکل حادی نیست.
  • انتظار برای آپدیت در اکثر مواقع وقتی که یک نسخه از اندروید به بازار عرضه می شود مدت زمانی طول می کشد که شرکت Xamarin نرم افزار خود را آپدیت کند تا این نرم افزار با آخرین نسخه اندروید سازگار باشد.
  • کارایی (performance) و مدیریت حافظه گاهی اوقات گفته می شود که استفاده از زبان #C برای توسعه برنامه های اندروید سرعت را کاهش می دهد ولی هنوز اندازه گیری و ارزیابی درستی از این قضیه به عمل نیامده است.

Mono چیست؟


مونو یک پیاده سازی چند پلتفرمی متن باز از کامپایلر #C است. CLRی که در مونو است برای پلتفرم های بسیاری مثل اندروید، اکثر نسخه های لینوکس، BSD، OS x، Windows، Solaris و حتی بعضی از کنسول های بازی مثل Wii, xbox360 طراحی شده است. همچنین مونو یک کامپایلر استاتیک دارد که برنامه ها را برای محیط هایی مثل IOS و PS3 کامپایل می کند.

مونو و Dalvik با یکدیگر


همانطور که قبلا گفتیم برنامه های اندروید بر روی ماشین مجازی Dalvik اجرا می شوند و برنامه های مونو بر روی Mono CLR اجرا می شوند. پس برنامه Xamarin.Android چگونه اجرا می شود؟ اگر بخواهیم یک پاسخ ساده به این سوال بدهیم این است که این برنامه هم از Mono CLR و هم از ماشین مجازی Dalvik استفاده می کند. دیاگرام زیر نحوه ارتباط این دو را در حال اجرا نشان می دهد.

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

حال چگونه Mono CLR با ماشین مجازی Dalvik در برنامه Xamarin.Android کار می کند؟ این عمل توسط مفهومی به نام اشیاء متناظر (peer objects) و فریمورکی به نام واسط محلی جاوا (Java Native Interface) JNI انجام می شود.

واسط محلی جاوا (JNI)


JNI فریمورکی است که باعث می شود که یک کد غیر جاوا (مثل کد #C یا ++C) در ماشین مجازی جاوا، توسط کدهای جاوا صدا زده شوند و یا کدهای جاوا را صدا بزنند. بنابراین JNI یک عضو لازم در معماری Xamarin.android می باشد.

اشیای متناظر(Peer objects)


یک سری اشیای مدیریت شده در Mono CLR قرار دارند و یک سری اشیای مدیریت شده نیز در ماشین مجازی Dalvik قرار دارند و با هم کار می کنند تا توابع Xamarin.Android را اجرا کنند. به این دو سری اشیا که با هم کار می کنند را اشیا متناظر می گویند. Xamarin.Android یک مجموعه اسمبلی هایی دارد که به نام کتابخانه های bind کردن اندروید (Android Binding Libraries) شناخته می شوند. کلاس های موجود در این کتابخانه با کلاس های جاوا که در فریمورک برنامه اندروید وجود دارند مرتبط هستند به طوری که متد های موجود در این کلاس ها به عنوان یک wrapper برای فراخوانی متدهای موجود در کلاس های جاوا به کار می روند. زمانی که شما از کلاس های C# استفاده می کنید که این کلاس ها از کلاس های کتابخانه bind کردن اندروید ارث برده اند و برنامه ای با این کلاس می سازید. در زمان build کردن برنامه کلاس های پروکسی جاوا ساخته می شوند. کلاس های پروکسی جاوا همان کلاس هایی هستند که کلاس های C# و متدهای override شده آن را به کلاس ها و متد های جاوا wrap می کنند. دیاگرام زیر نحوه ارتباط اشیا متناظر را نشان می دهد.

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

بسته بندی برنامه های Xamarin.Android


برنامه Xamarin.Android فایل های apk را تولید می کند که علاوه بر دارا بودن فایل هایی که قبلا گفته شد فایل های اضافه زیر را نیز دارا می باشد:

  • کدهای C# که در قالب اسمبلی ها در پوشه assembly ذخیره شده اند.
  • بسته ی Runtime مونو که به صورت کتابخانه های محلی نگه داشته می شوند.

طراحی bindingهای اندروید


قسمت اصلی Xamarin.Android این است که که چگونه APIهای اندروید را به #C مقید(Bind) کنند. در نرم افزار Xamarin.Android سعی شده است که طوری عمل شود که برنامه نویسی که در حال برنامه نویسی برای اندروید است و با زبان #C کار می کند راحت باشد و بتواند به راحتی برنامه خود را پیاده سازی نماید. نتیجه این تلاش برای ساده سازی برنامه نویسی اندروید ویژگی های زیر است:

  • وقتی برنامه نویس در حال استفاده از API های اندروید است در محیط توسعه(IDE) خود می تواند همانگونه که برای کتابخانه های .NET خاصیت Code completation وجود دارد برای APIها نیز این خاصیت را داشته باشد.
  • مثال ها و مستندات بسیاری از اندروید به زبان جاوا وجود دارند که به راحتی می تواند به کد #C تبدیل شده و مورد استفاده قرار گیرند.

طراحی فنی برای اندروید با #C


چون همانگونه که گفتیم برنامه های اندروید به نوعی با ماشین مجازی اندروید اجرا می شوند و زبان پیش فرض این برنامه ها جاوا است باید بتوانیم یک همگام سازی بین طراحی بین جاوا و #C داشته باشیم برای مثال باید بتوانیم از مشخصات JavaBean به عنوان مشخصات #C استفاده کنیم که در ادامه به این مباحث پرداخته می شوند.

مشخصات #C


همان گونه که می دانید مشخصات فیلد ها در جاوا به صورت دو تابع که یکی ابتدای آن set و دیگری ابتدای آن get می باشد مانند setText() و getText() که به این متد ها setter و getter می گویند.در حالی که پیاده سازی مشخصات فیلد ها در C# به کلی تفاوت دارد. و این دو باید به یکدیگر تبدیل شوند. در ادامه به نحوه تبدیل آنها اشاره شده است:

  • مشخصاتی که هم قابلیت خواندن و هم قابلیت نوشتن دارند از مشخصاتی ساخته شده اند که هم setter و هم getter داشته اند.
  • مشخصاتی که فقط خواندنی هستند از مشخصات جاوایی که فقط getter داشته اند ساخته شده است.
  • مشخصاتی که فقط نوشتنی هستند از مشخصات جاوایی که فقط setter داشته اند ساخته شده است.
  • برای آرایه ها مشخصاتی ساخته نشده است.

دلیگیت ها Delegate


APIهای اندروید از الگوی جاوایی برای تعریف و صدا زدن listener های هر رویداد می کنند. این درحالی است که برنامه نویسان C# به استفاده از delgate ها و eventها آشناتر هستند و با این امکانات کار می کنند. بنابراین قوانین زیر برای bind کردن از API های اندروید به C# وضع شده است:

  • وقتی که یک listerner اندرویدی یک مقدار void برمی گرداند، یک event بر مبنای EventHandler برای آن ساخته می شود.
  • وقتی که نوع بازگشتی یک listener اندرویدی voidنباشد برای آن یک Delegate با همان مقدار برگشت دهنده ساخته می شوند.

Eventها و مشخصات (properties) فقط تحت شرایط زیر ساخته می شوند:

  • متدهای اجرای رویداد های (event Handling method) اندروید یک پیشوند دارند مثل setOnClickListener
  • اجرا کننده ی رویداد اندروید مقدار بازگشتی void دارد.
  • اجرا کننده رویداد اندروید فقط یک پارامتر ورودی دارد.

محیط های توسعه


برنامه نویسان برای نوشتن برنامه های موبایل دو انتخاب برای IDE دارند که انتخاب ها Xamarin Studio و Visual Studio هستند.

Xamarin Studio


این نرم افزار یک نسخه سفارشی شده از MonoDevelop IDE می باشد که می تواند برای برنامه نویسی برای پلتفرم های Android, IOS و OS X مورد استفاده قرار گیرد. Xamain Studio هم برای سیستم عامل ویندوز و هم برای OS X وجود دارد و دارای ویژگی های زیر است:

  • خاصیت Code Completation
  • هایلایت کردن سینکس ها به صورت هوشمند
  • خاصیت Code Navigatio
  • توضیحات (tooltip) برای کدها
  • قابلیت خطایابی برنامه های موبایل وقتی که برنامه روی شبیه ساز و یا خود دستگاه اجرا می شود.
  • قابلیت ارتباط با source control ها مانند Git

تصویر زیر محیط Xamarin Studio را در حالی که محیط طراحی رابط کاربری اندروید برای آن باز است را نمایش می دهد.

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

Xamrin برای Visual Sudio


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

معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C

تا این قسمت مطالب بیشتر در مورد مباحث تئوری صحبت شد و به معرفی سیستم عامل و ابزار های برنامه نویسی پرداخته شد. در مطالب آینده به مباحث عملی و برنامه نویسی سیستم عامل اندروید پرداخته خواهد شد.Itpro باشید

نویسنده: مهدی عادلی فر

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#آموزش_اندروید #آموزش_گام_به_گام_اندروید #برنامه_نویسی_اندروید_با_#c #نحوه_ارتباط_دستورات_#c_با_اندروید #آموزش_xamarin #آموزش_mono
عنوان
1 معرفی سیستم عامل اندروید رایگان
2 معرفی سیستم عامل اندروید (بخش دوم) رایگان
3 معرفی سیستم عامل اندروید (بخش سوم) رایگان
4 معرفی Xamarin.Android برای نوشتن برنامه های اندروید به زبان #C رایگان
5 شروع کار برنامه نویسی اندروید با استفاده از Xamarin رایگان
6 ساخت مکانیزم ذخیره سازی اطلاعات در اندروید به زبان #C رایگان
7 طراحی رابط کاربری اندروید با استفاده از Xamarin رایگان
8 ساخت منو صفحه اصلی در اندروید رایگان
9 نمایش اطلاعات یک Entity در برنامه اندروید(Xamarin) رایگان
10 نوشتن Save و Delete برای برنامه اندروید در Xamarin رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....