Відповіді:
Оновлення : Оскільки я написав цю відповідь два роки тому, ми виробили Mono для роботи на Android. Робота включала кілька кроків: перенесення Mono на Android, інтеграція його з Visual Studio, створення плагінів для MonoDevelop на Mac та Windows та викриття API Android Android Java .NET. Зараз це доступно на веб- сайті http://monodroid.net
Моно на Android базується на режимі виконання Mono 2.10 і використовує компілятор C # 4.0 за замовчуванням на профіль 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-relyitous-shaky.html
І ви можете отримати інструкції зі створення Mono самостійно тут: http://www.koushikdutta.com/2009/01/building-mono-for-android.html
Ви можете отримати орієнтир, порівнюючи Mono 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 був на перших етапах, а не зараз, коли вони знаходяться на стадіях виробництва. Я не маю на увазі, що це неможливо, те, що я кажу, - це їм не цікаво. Можливо, в ммм-год-год 10 год.
Насправді те, що вони вже розробили, дуже сумісне з Java та .NET
Вони не можуть зробити все відразу, але якщо ви заглянете в Android SDK, є інструмент, який називається dx . Цей інструмент перетворює байт-код Java в байт-код Dalvik, отже іншими словами, сьогодні ви можете без особливих зусиль запускати програми, написані на Java на Android. Тепер той же інструмент потрібен і для .NET.
З огляду на те, наскільки схожі .NET і Java, насправді питання часу.
ddimitrov пише:
Переклад .Net-> Java-> Dalvik можна зробити навіть зараз ( http://dev.mainsoft.com/ ), але, я думаю, ви недооцінюєте відсутність бібліотек .Net. Звичайно, хтось може перенести Mono, але це, безумовно, нетривіальне зусилля.
Не потрібно порту Mono. У Android вже є VM та деякі базові API. Все, що потрібно, це перетворювач CIL-> Dalvik і крихітна .NET обгортка для Android API (і, можливо, основна реалізація деяких стандартних класів .NET). Це воно.
Оновлення: .NET вже працює на Android - вам знадобиться продукт під назвою Monodroid ( http://monodroid.net ), як зазначено вище.
17 лютого 2010 року в своєму блозі Мігель де Іказа оголосив, що вони починають роботу над моно для Android, який буде називатися MonoDroid.
Це буде схоже на MonoTouch на iphone, але замість Android.
Це забезпечить прив’язку до інтерфейсу Android, тому додатки будуть виглядати та відчувати живі нативні програми для Android. Для цього знадобиться написати інтерфейс користувача для Android.
Однак ви зможете повторно використовувати наявні бібліотеки нижчого рівня без необхідності перекомпілювати.
Оскільки це одне з перших посилань у Google під час пошуку Android та підтримки .net, опублікувати це можна лише тут.
Монопроект працює над SDK для розробки програм Android, використовуючи мови CIL, такі як C #. Нижня сторона полягає в тому, що це буде комерційний продукт. монодороїд
MonoDroid доступний для попереднього перегляду. Я думаю, що це усуне розрив. Однак MonoDroid може бути дорогим варіантом розвитку. Інші інструменти розробки коштують від 199 до 4000 доларів (інструмент MonoTouch .. iPhone Dev ... коштує від 399 до 3999 доларів). Якщо люди розробляють додатки за допомогою цих інструментів, їм потрібна дуже сильна бізнес-модель, щоб побачити певні прибутки.
Модифікований порт Mono також цілком можливий.
.NET компактна рамка була перенесена на ОС Symbian ( http://www.redfivelabs.com/ ). Якщо .NET як «закриту» платформу можна перенести на цю платформу, я не бачу жодної причини, чому це не можна зробити для Android.
.NET і Mono - це чудове середовище, що має багато інструментів та відмінну базу навичок людей, які вміють ними користуватися.
Я думаю, що Mono має можливість бути середовищем для розробки мобільних кросплатформних виборів, бачачи, що вони є єдиною альтернативою Objective-C на iPhone і повинні бути портативними для Android, а .NET вже є на Windows Mobile.
Я дуже сподіваюся побачити ґрунтовну реалізацію Mono на Android, із обгортками для Android API, як у Monotouch, і буду готовий заплатити за це, оскільки я не в змозі це зробити сам.
Ви з більшою ймовірністю побачите Android-програму Silverlight. Microsoft підтвердив, що це можливо, порівняно з iPhone, де представник заявив, що це проблематично.
Але можлива версія .Net Framework. Просто потрібен хтось про це так дбає :)
Але насправді перехід від C # до Java не так вже й великий, і враховуючи кардинальні відмінності між двома платформами (ПК проти G1), мабуть, вам вдасться дістатися за допомогою однієї бази коду для будь-якого додатка, ти хотів бігати на обох.
На мою думку, технічно було б можливо перетворити байт-код CLI в Dalvik і написати класи для обгортки для деяких основних функцій, таких як Колекції, Доступ до файлів тощо, навіть це було б важкою роботою.
Але настільний додаток .NET, запущений на Android, відчував би себе чужоземним, оскільки він матиме класичний інтерфейс, схожий на Windows, який не дуже зручний на сенсорному пристрої. Якщо, з іншого боку, вам слід було кодувати андроїд-графічний інтерфейс GUI в .NET, вам знадобиться інший набір обгортки (зауважте, що обгортання - це навпаки, протилежне обговореним вище обгорткам).
Я не впевнений, чи не буде .NET мобільний додаток відчувати себе рідним на android, але я думаю, що це не буде.
Можливо, ви зацікавлені в іншому підході: ви можете писати заявку мовою Java. Потім ви можете компілювати його у .NET через Microsoft J # (я знаю, що його припинено, але ви все ще можете завантажити та використовувати) та використовувати той же код Java на android. Знову ж таки, це для основних класів ака-логіки бізнесу, і вам знову доведеться писати графічні інтерфейси. Можливо, ви можете також позначити J2ME, що ви не зможете зробити, якщо використовувати .NET.
.NET для Android здається мені реальною можливістю. Є новини про те, що Microsoft випустить належний Silverlight для Android. Ніколи не варто недооцінювати переваги Microsoft для введення завантаження в Apple. Смартфон, який є більш швидким, більш насиченим функціями, швидшим життєвим циклом розвитку, вражаючим обладнанням, Flash & Silverlight як стандартний інсталяційний.
Майкрософт зацікавлений у вдосконаленні Android, і в той же час додатки для Silverlight на Android також будуть розроблені для ОС Windows Phone 7 з мультитач, GPS і т.д.