PDA

مشاهده نسخه کامل : سوالی درباره Xamarin Android



ramin1000
21-07-17, 11:32
سلام

چطور ممکنه ما در ویژوال استودیو 2017 که یک قسمت داره به نام Xamarin یک اپلیکیشن با زبان سی شارپ درست کنیم که توی گوشی های اندروید کار کنه در حالی که زبان اندروید جاواست

با عقل جور در نمیاد چون اینجوری نیازی نیست کسی جاوا یاد بگیره با یادگیری سی شارپ با یک تیر دو نشون می زنیم

این android sdk رو هم یک توضیحی بدید که چیه

SajjadKhati
21-07-17, 13:16
سلام

چطور ممکنه ما در ویژوال استودیو 2017 که یک قسمت داره به نام Xamarin یک اپلیکیشن با زبان سی شارپ درست کنیم که توی گوشی های اندروید کار کنه در حالی که زبان اندروید جاواست

با عقل جور در نمیاد چون اینجوری نیازی نیست کسی جاوا یاد بگیره با یادگیری سی شارپ با یک تیر دو نشون می زنیم

این android sdk رو هم یک توضیحی بدید که چیه

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

AtrafNET
21-07-17, 13:28
سلام
درسته زبان برنامه نویسی اصلی اندروید جاوا هستش و بایت کد (ByteCode) خروجی جاوا هم در اندروید توسط سرویس اجرا کننده (Android Runtime Machine) در فضایی مجازی سازی شده به طور پروسه های مجزا اجرا میشه.
تا اندروید ورژن 4.4 با اسم KitKat این سرویس اجرا کننده Dalvik (Only the registered members can see the link(%D9%86%D8%B1 %D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1)) نام داشت اما از اندروید 5.0 به بعد گوگل سرویس جدید ART (Only the registered members can see the link(%D9%86%D8%B1%D9%85%E2%80%8C%D8 %A7%D9%81%D8%B2%D8%A7%D8%B1)) رو جایگزین Dalvik قدیمی کرد.
این سرویس ها همونطور که گفتم فقط می تونه بایت کد خروجی جاوا رو اجرا کنه و مسلماً امکان اجرای مستقیم کد های سی شارپ یا زبان های برنامه نویسی دیگه نیست.

اما این وسط Xamarin که قبلاً یه شرکت جدا بود و جدیداً زیرمجموعه خود مایکروسافت درآمده سرویس پولی رو قبلاً ارائه میداد که می تونست با کامپایلر اختصاصی خودش پروژه سی شارپ شما رو تبدیل به فایل APK. و در واقع یه بایت کد جاوایی کنه که در سرویس اجرا کننده اندروید اجرا بشه.
یعنی Xamarin فقط پروژه ایه که باعث میشه کسایی که جاوا بلد نیستن و به جاش دات نت بلدن بتونن به صورت واسطه ای برنامه های اندرویدی بسازن بیشتر هدف سادگی بوده وگرنه از لحاظ کارایی برنامه هایی که با زامارین نوشتن میشن هم سرعت اجرای پایین تری و هم حجم خروجی بیشتری نسبت به برنامه نویسی مستقیم جاوا برای اندروید دارن.
البته زامارین امکان ایجاد برنامه برای iOS هم داره یعنی یه جورایی میشه شاید پروژه اندرویدی رو فقط با کمی تغییرات جزئی برای iOS هم ارائه داد و برای خودش می تونه یه پلتفرم چندسکویی هم حساب بیاد.

حتی پروژه ای کاملاً جدا هم وجود داره به نام Cordova (Only the registered members can see the link) که توسط شرکت معروف Apache ساخته شده که این دیگه آمده ساخت برنامه اندروید رو خیلی ساده ترش کرده و براحتی HTML و CSS و جاوا اسکریپت که همون زبان های طراحی قالب سایت هستن رو می تونه به اپلیکیشن اندروید تبدیل کنه و جالب اینکه ویژوال استودیو 2017 به صورت پیش فرض امکان نصب Apache Cordova هم داره :1. (31):

AtrafNET
21-07-17, 13:32
سلام
آندروید از زبان خود آندروید استفاده میکنه . جاوا یه زبان دیگه هست
همونطور که با جاوا میشه تحت بقیه ی پلتفرم ها نرم افزار نوشت ، با سی شارپ هم میشه


سجاد جان جسارتاً اندروید زبانی به نام اندروید نداره و همون جاوا زبان اصلیش هست فقط اجرا کننده (Runtime Machine) اختصاصی داره و مثل ویندوز فقط با نصب یه کتابخانه Java Runtime نمیشه به تنهایی برنامه هاش رو اجرا کرد و اجرای برنامه هاش یه پروسه پیشرفته تری داره و به صورت ایزوله شده و در ماشین مجازی VM اجرا میشه.
اوایل از پروژه متن باز Dalvik Virtual Machine استفاده میکرد اما بعد از اندروید 4.4 خودش ماشین مجازی اختصاصی سریع تری به نام ART معرفی کرد که بالاتر بهشون لینک ویکیپدیا فارسی هم دادم :1. (35):

SajjadKhati
21-07-17, 15:29
سجاد جان جسارتاً اندروید زبانی به نام اندروید نداره و همون جاوا زبان اصلیش هست فقط اجرا کننده (Runtime Machine) اختصاصی داره و مثل ویندوز فقط با نصب یه کتابخانه Java Runtime نمیشه به تنهایی برنامه هاش رو اجرا کرد و اجرای برنامه هاش یه پروسه پیشرفته تری داره و به صورت ایزوله شده و در ماشین مجازی VM اجرا میشه.
اوایل از پروژه متن باز Dalvik Virtual Machine استفاده میکرد اما بعد از اندروید 4.4 خودش ماشین مجازی اختصاصی سریع تری به نام ART معرفی کرد که بالاتر بهشون لینک ویکیپدیا فارسی هم دادم :1. (35):


ممنون
نمیدونستم
پس این نرم افزار آندروید استودیو چیه؟ مگه با زبان آندروید برنامه نویسی اش نیست؟ یعنی با جاوا برنامه مینویسن در اصل؟!
حالا منظورم این نیست که خود آندروید رو با آندروید استودیو نوشتن

AtrafNET
21-07-17, 19:31
ممنون
نمیدونستم
پس این نرم افزار آندروید استودیو چیه؟ مگه با زبان آندروید برنامه نویسی اش نیست؟ یعنی با جاوا برنامه مینویسن در اصل؟!
حالا منظورم این نیست که خود آندروید رو با آندروید استودیو نوشتن


اوایل برنامه های اندروید رو با IDE چندمنظوره و رایگان Eclipse به علاوه پلاگین ADT (مخفف Android Development Tools) کدنویسی میکردن اما بعدش گوگل IDE اختصاصی خودش رو به نام Android Studio ارائه داد که بله هم زبان اصلی کدنویسی اندروید در هر دو IDE جاوا هستش و هم حتی خود اندروید استودیو هم با جاوا نوشته شده که کلی امکانات عالی هم به طور اختصاصی برای برنامه نویسی و دیباگ اپ های اندروید پیش فرض ارائه میده و چون رایگان هم هست و پشتیبانی و Document های گوگل هم ازش زیاده دیگه کسی استفاده از Eclipse رو برای برنامه نویسی اندروید پیشنهاد نمیده.

حتی اگر موارد مورد نیاز برای برنامه نویسی اندروید در سایت های مختلف رو خونده باشید همیشه نیاز هست که قبل از نصب اندروید استودیو یا Eclipse از نصب بودن Java JDK (مخفف Java Development Kit) مطمئن باشید.

توضیحات بیشتر در ویکیپدیا:


Only the registered members can see the link

SajjadKhati
21-07-17, 21:28
اوایل برنامه های اندروید رو با IDE چندمنظوره و رایگان Eclipse به علاوه پلاگین ADT (مخفف Android Development Tools) کدنویسی میکردن اما بعدش گوگل IDE اختصاصی خودش رو به نام Android Studio ارائه داد که بله هم زبان اصلی کدنویسی اندروید در هر دو IDE جاوا هستش و هم حتی خود اندروید استودیو هم با جاوا نوشته شده که کلی امکانات عالی هم به طور اختصاصی برای برنامه نویسی و دیباگ اپ های اندروید پیش فرض ارائه میده و چون رایگان هم هست و پشتیبانی و Document های گوگل هم ازش زیاده دیگه کسی استفاده از Eclipse رو برای برنامه نویسی اندروید پیشنهاد نمیده.

حتی اگر موارد مورد نیاز برای برنامه نویسی اندروید در سایت های مختلف رو خونده باشید همیشه نیاز هست که قبل از نصب اندروید استودیو یا Eclipse از نصب بودن Java JDK (مخفف Java Development Kit) مطمئن باشید.

توضیحات بیشتر در ویکیپدیا:


Only the registered members can see the link


ممنون
صرفا بخاطر اینکه آندروید استودیو توی جاوا نوشته شد میگی زبان آندروید استودیو جاوا هست یا اینکه کلا آندروید استودیو ، همون سینتکس های جاوا رو داره؟
اگه سینتکس های جاوا رو نداره و کلا زبان جدیدی هست ، صرفا بخاطر نوشته شدن در جاوا نمیشه گفت که همون زبان هست . وگرنه خیلی از زبان ها ، توی زبان دیگه ای نوشته شدن ولی کامل طراحی جداگانه ای دارن مثلا زبان اسکریپتی لوا ، توی سی پلاس پلاس نوشته شد ولی یه زبان دیگه ای هست . خیلی از زبان ها این طورن

AtrafNET
21-07-17, 21:55
ممنون
صرفا بخاطر اینکه آندروید استودیو توی جاوا نوشته شد میگی زبان آندروید استودیو جاوا هست یا اینکه کلا آندروید استودیو ، همون سینتکس های جاوا رو داره؟
اگه سینتکس های جاوا رو نداره و کلا زبان جدیدی هست ، صرفا بخاطر نوشته شدن در جاوا نمیشه گفت که همون زبان هست . وگرنه خیلی از زبان ها ، توی زبان دیگه ای نوشته شدن ولی کامل طراحی جداگانه ای دارن مثلا زبان اسکریپتی لوا ، توی سی پلاس پلاس نوشته شد ولی یه زبان دیگه ای هست . خیلی از زبان ها این طورن


نه جناب چرا باید دروغ بگم؟ دقیق بر اساس Syntax های جاوا باید کدنویسی کنید فقط مسلماً اندروید Library های اختصاصی خودش هم داره که باید تو جاوا فراخوانی بشه.

SajjadKhati
22-07-17, 00:03
نه جناب چرا باید دروغ بگم؟ دقیق بر اساس Syntax های جاوا باید کدنویسی کنید فقط مسلماً اندروید Library های اختصاصی خودش هم داره که باید تو جاوا فراخوانی بشه.

دروغ چیه دوست عزیز؟!!

آها ممنون
پس زبانی به نام آندروید نداریم

ramin1000
22-07-17, 00:10
سلام
درسته زبان برنامه نویسی اصلی اندروید جاوا هستش و بایت کد (ByteCode) خروجی جاوا هم در اندروید توسط سرویس اجرا کننده (Android Runtime Machine) در فضایی مجازی سازی شده به طور پروسه های مجزا اجرا میشه.
تا اندروید ورژن 4.4 با اسم KitKat این سرویس اجرا کننده Dalvik (Only the registered members can see the link(%D9%86%D8%B1 %D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1)) نام داشت اما از اندروید 5.0 به بعد گوگل سرویس جدید ART (Only the registered members can see the link(%D9%86%D8%B1%D9%85%E2%80%8C%D8 %A7%D9%81%D8%B2%D8%A7%D8%B1)) رو جایگزین Dalvik قدیمی کرد.
این سرویس ها همونطور که گفتم فقط می تونه بایت کد خروجی جاوا رو اجرا کنه و مسلماً امکان اجرای مستقیم کد های سی شارپ یا زبان های برنامه نویسی دیگه نیست.

اما این وسط Xamarin که قبلاً یه شرکت جدا بود و جدیداً زیرمجموعه خود مایکروسافت درآمده سرویس پولی رو قبلاً ارائه میداد که می تونست با کامپایلر اختصاصی خودش پروژه سی شارپ شما رو تبدیل به فایل APK. و در واقع یه بایت کد جاوایی کنه که در سرویس اجرا کننده اندروید اجرا بشه.
یعنی Xamarin فقط پروژه ایه که باعث میشه کسایی که جاوا بلد نیستن و به جاش دات نت بلدن بتونن به صورت واسطه ای برنامه های اندرویدی بسازن بیشتر هدف سادگی بوده وگرنه از لحاظ کارایی برنامه هایی که با زامارین نوشتن میشن هم سرعت اجرای پایین تری و هم حجم خروجی بیشتری نسبت به برنامه نویسی مستقیم جاوا برای اندروید دارن.
البته زامارین امکان ایجاد برنامه برای iOS هم داره یعنی یه جورایی میشه شاید پروژه اندرویدی رو فقط با کمی تغییرات جزئی برای iOS هم ارائه داد و برای خودش می تونه یه پلتفرم چندسکویی هم حساب بیاد.

حتی پروژه ای کاملاً جدا هم وجود داره به نام Cordova (Only the registered members can see the link) که توسط شرکت معروف Apache ساخته شده که این دیگه آمده ساخت برنامه اندروید رو خیلی ساده ترش کرده و براحتی HTML و CSS و جاوا اسکریپت که همون زبان های طراحی قالب سایت هستن رو می تونه به اپلیکیشن اندروید تبدیل کنه و جالب اینکه ویژوال استودیو 2017 به صورت پیش فرض امکان نصب Apache Cordova هم داره :1. (31):


خوب الان اگه ما بخواهیم برای گوشی های اندروید یه اپلیکیشن بسازیم به نظر شما بهترین روش کدومه چه از نظر سرعت، عملکرد، راحتی و ...

یعنی با xamarin توی ویژوال استودیو با سی شارپ یا با android studio و زبان جاوا یا هر چیز دیگه ای

تفاوت خاصی هم دارن

AtrafNET
22-07-17, 09:13
خوب الان اگه ما بخواهیم برای گوشی های اندروید یه اپلیکیشن بسازیم به نظر شما بهترین روش کدومه چه از نظر سرعت، عملکرد، راحتی و ...

یعنی با xamarin توی ویژوال استودیو با سی شارپ یا با android studio و زبان جاوا یا هر چیز دیگه ای

تفاوت خاصی هم دارن


معلومه دیگه بهترین روش همون روشیه که خود گوگل گفته یعنی جاوا و Android Studio.

همونطور که بالاتر هم گفتم Xamarin و Cordova و... فقط برای سهولت کار ساخته شدن وگرنه کسی که جاوا بلد باشه و از اندروید استودیو هم سر در بیاره دیگه نیازی به این جور چیزا نداره.

SajjadKhati
22-07-17, 10:05
معلومه دیگه بهترین روش همون روشیه که خود گوگل گفته یعنی جاوا و Android Studio.

همونطور که بالاتر هم گفتم Xamarin و Cordova و... فقط برای سهولت کار ساخته شدن وگرنه کسی که جاوا بلد باشه و از اندروید استودیو هم سر در بیاره دیگه نیازی به این جور چیزا نداره.

من میتونم نظر بدم؟ (البته دوست دارم اسمت رو بدونم ؛ اگه خواستی بگو)
هر چند من زامارین کار نکردم ، ولی توی سایت زامارین نوشته هه که هر چیزی رو که توی جاوا یا objective c و swift بشه نوشت ، با سی شارپ در زامارین هم میشه نوشت
ضمن اینکه زامارین یکی دو سال پیش توسط مایکروسافت خریده شد و دیگه کلاس ها و توابع عظیمی که مایکروسافت برای دات نت ارائه میکنه ، هیچ IDE ای به این وسعت نمیکنه .
کلا میخوام بگم که علاوه بر قدرت فعلی زامارین که به ادعای خودش کم نیست ، آینده ی بسیار قویتری در پیش روش هست به نظرم چون مستقیم مایکروسافت توسعه اش میده

AtrafNET
22-07-17, 12:43
من میتونم نظر بدم؟ (البته دوست دارم اسمت رو بدونم ؛ اگه خواستی بگو)
هر چند من زامارین کار نکردم ، ولی توی سایت زامارین نوشته هه که هر چیزی رو که توی جاوا یا objective c و swift بشه نوشت ، با سی شارپ در زامارین هم میشه نوشت
ضمن اینکه زامارین یکی دو سال پیش توسط مایکروسافت خریده شد و دیگه کلاس ها و توابع عظیمی که مایکروسافت برای دات نت ارائه میکنه ، هیچ IDE ای به این وسعت نمیکنه .
کلا میخوام بگم که علاوه بر قدرت فعلی زامارین که به ادعای خودش کم نیست ، آینده ی بسیار قویتری در پیش روش هست به نظرم چون مستقیم مایکروسافت توسعه اش میده


بله شاید بزرگترین مزیت زامارین رو بشه چندسکویی بودنش دونست اما باور کنید از لحاظ بهینه بودن خروجی زبان مشخص همون پلتفرم مسلماً بهتر عمل میکنه.

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



Only the registered members can see the link


به نظرم ایشون حق دارن زامارین برای کسی که جاوا بلده یا حداقل وقت یادگیری جاوا رو برای برنامه نویسی مستقیم در اندروید استودیو داره واقعاً میون بری تنبلانه حساب میشه.
حتی اشاراتی به بخش چندسکویی زامارین هم کردن که ظاهراً مثل اینکه فقط یه سری توابع و کتابخانه های جزئی زامارین قابل چندسکویی شدن هستن و هر کاری رو نمیشه به صورت خروجی چندسکویی انجام داد.

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

آخه مسئله مقایسه ویژوال استودیو با اندروید استودیو نیست وگرنه در قدرت ویژوال استودیو شکی نیست مسئله اینه که گوگل اندروید استودیو کاملاً بهینه تر و دقیق تر و صرفاً برای برنامه نویسی اندروید ساخته شده اما زامارین فقط پلاگینی در ویژوال استودیو هستش که امکان برنامه نویسی موبایل هم میده برای همین اصلاً نمیشه این دو رو با هم مقایسه کرد.

پیشنهاد میکنم یه بار اندروید استودیو هم نصب و تست کنید منم تا قبل از نصبش تصوراتم یه IDE متوسط بود ولی وقتی اولین بار قدرت و پیچیدگی IDE گوگل رو دیدم واقعاً متعجب شدم باور کنید همون اول استفاده از اندروید استودیو یه زمانی رو باید تخصص بدید به یادگیری امکانات خودش :1. (27):

اسمم حسینه ولی بیشتر دوست دارم نامحسوس باشم تا اینکه همه بشناسنم :1. (35):

ramin1000
22-07-17, 13:09
بله شاید بزرگترین مزیت زامارین رو بشه چندسکویی بودنش دونست اما باور کنید از لحاظ بهینه بودن خروجی زبان مشخص همون پلتفرم مسلماً بهتر عمل میکنه.

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



Only the registered members can see the link


به نظرم ایشون حق دارن زامارین برای کسی که جاوا بلده یا حداقل وقت یادگیری جاوا رو برای برنامه نویسی مستقیم در اندروید استودیو داره واقعاً میون بری تنبلانه حساب میشه.
حتی اشاراتی به بخش چندسکویی زامارین هم کردن که ظاهراً مثل اینکه فقط یه سری توابع و کتابخانه های جزئی زامارین قابل چندسکویی شدن هستن و هر کاری رو نمیشه به صورت خروجی چندسکویی انجام داد.

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

آخه مسئله مقایسه ویژوال استودیو با اندروید استودیو نیست وگرنه در قدرت ویژوال استودیو شکی نیست مسئله اینه که گوگل اندروید استودیو کاملاً بهینه تر و دقیق تر و صرفاً برای برنامه نویسی اندروید ساخته شده اما زامارین فقط پلاگینی در ویژوال استودیو هستش که امکان برنامه نویسی موبایل هم میده برای همین اصلاً نمیشه این دو رو با هم مقایسه کرد.

پیشنهاد میکنم یه بار اندروید استودیو هم نصب و تست کنید منم تا قبل از نصبش تصوراتم یه IDE متوسط بود ولی وقتی اولین بار قدرت و پیچیدگی IDE گوگل رو دیدم واقعاً متعجب شدم باور کنید همون اول استفاده از اندروید استودیو یه زمانی رو باید تخصص بدید به یادگیری امکانات خودش :1. (27):

اسمم حسینه ولی بیشتر دوست دارم نامحسوس باشم تا اینکه همه بشناسنم :1. (35):

می خوام برای امتحان کردن android studio رو دانلود کنم 350 مگ حجم نرم افزار اصلیه و 13 گیگ بسته کامل sdk

این sdk چیه بدون اون نرم افزار اصلیش کار نمی کنه که حداقل یه ذره با محیطش کار کنم ببینم چطوریه

AtrafNET
22-07-17, 13:44
می خوام برای امتحان کردن android studio رو دانلود کنم 350 مگ حجم نرم افزار اصلیه و 13 گیگ بسته کامل sdk

این sdk چیه بدون اون نرم افزار اصلیش کار نمی کنه که حداقل یه ذره با محیطش کار کنم ببینم چطوریه


SDK اندروید برای تولید برنامه های اندروید در هر نرم افزار و IDE نیازه یعنی شما زامارین هم بخوان استفاده کنید باز باید Android SDK رو داشته باشید.
فقط گوگل بخش توسعه و برنامه نویسی اش رو برای ما تحریم کرده و برای تنظیمات و آپدیت و... SDK با نرم افزار SDK Manager که همراهش هست باید از فــیلترشکن استفاده کنید که آی پی غیر آی پی ایران داشته باشید اگه کلاً فــیلترشکن باشه می تونید هم اندروید استودیو هم SDK رو از همون بخش developer خود گوگل دانلود کنید.

اگه تهران هستید چهار راه ولیعصر می تونید اندروید استودیو + SDK و Java JDK هم که نیازه رو دیسکش رو بخرید خودم سی دی خریدمش و دانلود نکردم.