سؤال

الآن بعد أن أصبح G1 مع نظام التشغيل Android من Google متوفرًا الآن (قريبًا)، هل سيدعم نظام Android الأساسي .Net؟

هل كانت مفيدة؟

المحلول

تحديث:منذ أن كتبت هذه الإجابة قبل عامين، قمنا بإنتاج Mono ليتم تشغيله على Android.وشمل العمل بضع خطوات:نقل Mono إلى Android، ودمجه مع Visual Studio، وإنشاء مكونات إضافية لـ MonoDevelop على نظامي التشغيل Mac وWindows، وتعريض واجهات برمجة تطبيقات Java Android للغات .NET.هذا متوفر الآن في http://monodroid.net

يعتمد Mono على Android على وقت تشغيل Mono 2.10، ويتم تعيينه افتراضيًا على ملف التعريف 4.0 مع برنامج التحويل البرمجي C# 4.0 ويستخدم محرك جمع البيانات المهملة SGen الجديد من Mono، بالإضافة إلى نظام جمع البيانات المهملة الموزع الجديد الذي ينفذ GC عبر Java وMono.


تعكس الروابط أدناه Mono على Android اعتبارًا من يناير 2009، وقد احتفظت بها للسياق التاريخي

يعمل Mono الآن على نظام Android بفضل عمل Koushik Dutta وMarc Crichton.

يمكنك مشاهدة فيديو تشغيله هنا: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html

ويمكنك الحصول على التعليمات لإنشاء Mono بنفسك هنا: http://www.koushikdutta.com/2009/01/building-mono-for-android.html

يمكنك الحصول على معيار لمقارنة مترجم Mono's JIT و Dalvik هنا: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html

وبالطبع، يمكنك الحصول على صورة تم تكوينها مسبقًا باستخدام Mono هنا (انتقل إلى أسفل المنشور للحصول على تفاصيل حول استخدام ذلك): http://www.koushikdutta.com/2009/01/building-mono-for-android.html

نصائح أخرى

نعم سيكون ذلك ممكنا ولن يكون بهذه الصعوبة.كل ما هو مطلوب في هذه المرحلة للبدء به هو نوع من المحول الذي سيحول MSIL إلى دالفيك رمز بايت.نظرًا لأن كلا التنسيقين مفتوحان المصدر وموثقان جيدًا، فلن تكون هناك أي مشكلة فيهما.

لذلك، سيكون من الممكن كتابة تطبيقات Android بلغة C# أو VB.NET، والسؤال هو ما مقدار المكتبات القياسية لإطار عمل .NET التي سيتم دعمها.ولكن هذه مسألة أخرى.

كتب أوسكار رييس:

أنا متأكد تمامًا مما إذا كانت Google تهتم بأي اهتمام بـ .NET ، فقد قاموا بتصميم شيء بينما كان Android في المراحل الأولى ، وليس الآن عندما يكونون في مراحل الإنتاج.لا أقصد أنه غير ممكن ، ما أقوله هو أنهم غير مهتمين.ربما في MMM HHHH 10 سنوات.

في الواقع ما صمموه بالفعل هو متوافق جدا مع جافا و.NET

لا يمكنهم فعل كل شيء مرة واحدة، ولكن إذا نظرت إلى Android SDK، فستجد هناك أداة تسمى dx.تقوم هذه الأداة بتحويل Java bytecode إلى Dalvik bytecode، بمعنى آخر، يمكنك تشغيل البرامج المكتوبة بلغة Java على Android دون أي جهد اليوم.الآن هناك حاجة إلى نفس الأداة لـ .NET.

وبالنظر إلى مدى تشابه .NET وJava، فهي مسألة وقت حقًا.

كتب ديميتروف:

يمكن إجراء ترجمة .net-> java-> dalvik حتى الآن (http://dev.mainsoft.com/) ، لكنني أعتقد أنك تقلل من عدم وجود مكتبات .NET.بالطبع يمكن لشخص ما أن يقوم بتوفير مونو ، لكنه بالتأكيد جهد غير تافهة.

لا حاجة لميناء مونو.يحتوي Android بالفعل على VM وبعض واجهات برمجة التطبيقات الأساسية.كل ما هو مطلوب هو محول CIL->Dalvik وبرنامج تغليف .NET صغير لواجهة برمجة تطبيقات Android (وربما بعض التنفيذ الأساسي لبعض فئات .NET القياسية).هذا كل شيء.

تحديث: يعمل .NET بالفعل على Android - ستحتاج إلى منتج يسمى Monodroid (http://monodroid.net) كما ذكر أعلاه.

وميغيل دي إيكازا التي أعلن عنها في بلوق على 17 من فبراير 2010 أنها بدأت العمل على أحادية لالروبوت الذي أطلق عليه اسم MonoDroid.

وهذه سوف تكون مشابهة لMonoTouch على اي فون ولكن لالروبوت بدلا من ذلك.

ووسيوفر الربط إلى واجهة المستخدم الروبوت، لذلك التطبيقات والشكل والمظهر الحية تطبيقات الروبوت الأم. وهذا يتطلب منك أن تكتب واجهة مستخدم معين الروبوت.

ولكن سوف تكون قادرة على إعادة لك مكتبات المستوى الأدنى القائمة دون الحاجة إلى إعادة ترجمة.

وهناك مونو لالروبوت، صافي الإطار استدار لالروبوت. وهناك MonoDroid، كومة تطوير لاستخدام C # و واجهات برمجة التطبيقات الأساسية .NET لتطوير تطبيقات الروبوت القائم. لقد تم الافراج عن MonoDroid معاينة 1 بضع منذ أيام.

وبما أن هذا هو واحد من الروابط الأولى في جوجل عندما بحث عن الروبوت والدعم صافي، فمن المناسب فقط لهذا المنصب هنا.

وهذا المشروع أحادية تعمل على SDK لتطوير تطبيقات الروبوت باستخدام لغات CIL مثل C #. الجانب السلبي هو أنها ستكون منتج تجاري. monodroid

وMonoDroid هو awailable لمعاينة. أعتقد أن من شأنها سد هذه الفجوة. ومع ذلك، يمكن أن MonoDroid يكون خيارا مكلفا للتنمية. من أدوات التطوير الأخرى تكلف ما بين 199 $ و 4000 $ (وMonoTouch .. اي فون أداة ديف ... سعرت بين 399 $ و $ 3999). إذا كان الناس على تطوير التطبيقات مع هذه الأدوات، فإنها تحتاج إلى نموذج عمل قوي جدا لرؤية بعض العائدات.

والتحقق من ذلك xmlvm أعتقد أن هذا ممكن. قد يكون يمكن أيضا التحقق من هذا فيديو

ومرفأ معدلة من مونو هو أيضا من الممكن تماما.

و. NET وقد استدار إطار المدمجة لنظام التشغيل سيمبيان ( http://www.redfivelabs.com/ ). إذا .NET كما منصة "مغلقة" يمكن استدار على هذا المنبر، لا أستطيع أن أرى أي سبب لماذا لا يمكن القيام به لالروبوت.

وNET و مونو هي بيئات كبيرة، مع العديد من الأدوات ووقاعدة مهارات ممتازة من الناس الذين يعرفون كيفية استخدامها.

وأعتقد مونو لديه الفرصة ليكون عبر منصة بيئة تطوير المتنقلة الاختيار، كما نرى أنها هي البديل الوحيد بالهدف-C على اي فون، وينبغي أن تكون محمولة على الروبوت، و. NET هو بالفعل على ويندوز موبايل .

وأنا آمل حقا أن نرى التنفيذ صلبة من مونو على الروبوت، مع مغلفة للAPI الروبوت كما هو الحال مع Monotouch، وسوف تكون على استعداد لدفع ثمنها لأنني لست في وضع يسمح لها القيام بذلك بنفسي.

وأنت أكثر احتمالا لرؤية تنفيذ الروبوت من سيلفرلايت. أقرت Microsoft مندوب أنه من الممكن، في مقابل اي فون حيث قال مندوب أنها معضلة.

ولكن نسخة من .NET Framework ممكن. فقط بحاجة الى يهتمون بها كثيرا:)

ولكن في الحقيقة، والانتقال من C # لجافا ليس كبيرا في التوصل الى اتفاق والنظر في الخلافات جذرية بين الأنظمة الأساسية اثنين (PC مقابل G1) يبدو من غير المحتمل أن كنت قادرا على الحصول عليه مع مصدر برنامج واحد ل أي التطبيق الذي تريد أن تعمل على حد سواء.

في رأيي، سيكون من الممكن تقنيًا تحويل CLI Bytecode إلى Dalvik، وكتابة فئات مجمعة لبعض الميزات الأساسية مثل المجموعات، والوصول إلى الملفات، وما إلى ذلك، حتى أنه سيكون عملاً شاقًا.

لكن تطبيق .NET لسطح المكتب الذي يتم تشغيله على نظام Android قد يبدو غريبًا، لأنه سيحتوي على واجهة مستخدم رسومية كلاسيكية تشبه Windows والتي لا يمكن استخدامها بشكل كبير على جهاز يعمل باللمس.من ناحية أخرى، إذا كنت تريد ترميز واجهة مستخدم رسومية تشبه Android في .NET، فستحتاج إلى مجموعة أخرى من الأغلفة (لاحظ أن التغليف هو العكس تمامًا من الأغلفة المذكورة أعلاه).

لست متأكدًا مما إذا كان تطبيق الهاتف المحمول ‎.NET سيبدو أصليًا على نظام التشغيل Android، لكنني أعتقد أنه لن يكون كذلك.

ربما تكون مهتمًا بنهج آخر:يمكنك كتابة طلبك بلغة جافا.يمكنك بعد ذلك تجميعه إلى .NET عبر Microsoft J# (أعلم أنه قد توقف ولكن لا يزال بإمكانك تنزيله واستخدامه) واستخدام نفس كود Java على نظام Android.مرة أخرى، هذا مخصص للفئات الأساسية المعروفة أيضًا باسم منطق الأعمال ومرة ​​أخرى سيتعين عليك كتابة اثنين من واجهات المستخدم الرسومية.ربما يمكنك وضع علامات على J2ME أيضًا، وهو ما لن تتمكن من القيام به إذا كنت تستخدم .NET.

و. NET لالروبوت يبدو وكأنه إمكانية حقيقية بالنسبة لي. هناك أنباء أن مايكروسوفت سوف الافراج عن سيلفرلايت المناسب لAndroid- لا نقلل من المزايا لمايكروسوفت لوضع التمهيد في شركة أبل. الهاتف الذكي الذي هو أسرع وأكثر سمة غنية، أسرع دورة حياة تطوير والأجهزة للإعجاب، وفلاش وسيلفرلايت كمعيار للتثبيت.

ومايكروسوفت لديها مصلحة في تحسين الروبوت، وفي الوقت نفسه، سيتم devloped طلبات سيلفرلايت على الروبوت ستعمل أيضا على Windows Phone 7 OS مع اللمس المتعدد، GPS، الخ، الخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top