Ответы:
Обновление : так как я написал этот ответ два года назад, мы создали Mono для работы на Android. Работа включала несколько шагов: портирование Mono на Android, интеграция его с Visual Studio, создание плагинов для MonoDevelop на Mac и Windows и предоставление API 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
Вы можете получить тест, сравнивающий JIT Mono с интерпретатором Dalvik здесь: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
И, конечно же, вы можете получить предварительно сконфигурированный образ с Mono здесь (перейдите к нижней части поста для получения подробной информации по его использованию): http://www.koushikdutta.com/2009/01/building-mono-for- android.html
Да, это будет возможно, и это не будет так сложно. Все, что нужно для начала - это какой-то конвертер, который превратит MSIL в байт-код Dalvik . Поскольку оба формата имеют открытый исходный код и хорошо документированы, с ним проблем не возникнет.
Таким образом, написание приложений Android на C # или VB.NET будет возможным, вопрос в том, сколько стандартных библиотек .NET Framework будет поддерживаться. Но это другая проблема.
Оскар Рейес написал:
Я почти уверен, что если бы Google проявил ЛЮБОЙ интерес к .net, они бы разработали что-то, пока Android был на первых этапах, а не сейчас, когда они находятся в стадии разработки. Я не имею в виду, что это невозможно, я говорю, что они не заинтересованы. Может быть, в мммм 10 лет.
На самом деле то, что они уже разработали, очень совместимо с Java и .NET
Они не могут сделать все сразу, но если вы посмотрите на Android SDK, есть инструмент под названием dx . Этот инструмент преобразует байт-код Java в байт-код Dalvik, иными словами, вы можете без труда запускать программы, написанные на Java на Android. Теперь тот же инструмент необходим для .NET.
Учитывая, насколько похожи .NET и Java, это действительно вопрос времени.
ддимитров написал (а):
Перевод .Net-> Java-> Dalvik может быть выполнен даже сейчас ( http://dev.mainsoft.com/ ), но я думаю, что вы недооцениваете отсутствие библиотек .Net. Конечно, кто-то может портировать Mono, но это определенно нетривиальное усилие.
Не нужно портить моно. В Android уже есть виртуальная машина и немного базового 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 доступен для предварительного просмотра. Я думаю, что это ликвидирует разрыв. Тем не менее, MonoDroid может быть дорогостоящим вариантом для разработки. Их другие средства разработки стоят где-то от 199 до 4000 долларов (инструмент для разработки MonoTouch для iPhone ... стоит от 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, и был бы готов заплатить за это, так как я не в состоянии сделать это сам.
Скорее всего, вы увидите реализацию Silverlight для Android. Представитель Microsoft подтвердил, что это возможно, по сравнению с iPhone, где представитель сказал, что это проблематично.
Но возможна версия .Net Framework. Просто нужен кто-то, чтобы заботиться об этом так сильно :)
Но на самом деле, переход с C # на Java не так уж и сложен, и, учитывая резкие различия между двумя платформами (ПК и G1), кажется маловероятным, что вы сможете обойтись одной базой кода для любого приложения, которое ты хотел бежать на обоих.
По моему мнению, технически можно было бы преобразовать байт-код CLI в Dalvik и написать классы-обертки для некоторых основных функций, таких как коллекции, доступ к файлам и т. Д., Даже если это будет тяжелая работа.
Но настольное приложение .NET, работающее на Android, может показаться чуждым, поскольку оно будет иметь классический Windows-подобный графический интерфейс, который не очень удобен для сенсорных устройств. Если, с другой стороны, вам нужно было бы кодировать похожий на Android графический интерфейс в .NET, вам понадобится другой набор оберток (обратите внимание, что оборачивание - это наоборот, в отличие от оберток, упомянутых выше).
Я не уверен, что мобильное приложение .NET будет чувствовать себя нативным на Android, но я думаю, что это не так.
Возможно, вы заинтересованы в другом подходе: вы можете написать свое приложение на языке Java. Затем вы можете скомпилировать его в .NET через Microsoft J # (я знаю, что он больше не поддерживается, но вы все еще можете его скачать и использовать) и использовать тот же код Java на Android. Опять же, это для базовых классов, иначе говоря, бизнес-логики, и снова вам придется писать буксирный графический интерфейс. Возможно, вы также можете использовать J2ME, что вы не сможете сделать, если будете использовать .NET.
.NET для Android кажется реальной возможностью для меня. Есть новости о том, что Microsoft выпустит полноценный Silverlight для Android. Никогда не стоит недооценивать преимущества Microsoft для загрузки загрузки в Apple. Смартфон, работающий быстрее, с большим количеством функций, ускорением жизненного цикла разработки, впечатляющим оборудованием, Flash & Silverlight в стандартной комплектации.
Microsoft заинтересована в улучшении Android, и в то же время будут разработаны приложения для Silverlight на Android, а также будут работать на ОС Windows Phone 7 с поддержкой Multi-Touch, GPS и т. Д. И т. Д.