Будет ли когда-нибудь Google Android поддерживать .NET?

Теперь, когда доступен G1 с ОС Android от Google (скоро), будет ли платформа Android когда-либо поддерживать .Net?

Вот бы что!

Calanus 08.08.2009 20:25

Что еще важнее, будет ли когда-нибудь Microsoft переносить .NET на платформу, отличную от Windows?

D-Dᴙum 16.06.2012 20:49
253
2
125 836
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

Да, это будет возможно и не так уж и сложно. Все, что нужно на этом этапе для начала, - это какой-то конвертер, который превратит MSIL в Байт-код Dalvik. Поскольку оба формата имеют открытый исходный код и хорошо документированы, проблем с этим не возникнет.

Итак, написание приложений Android на C# или VB.NET станет возможным, вопрос в том, какая часть стандартных библиотек .NET framework будет поддерживаться. Но это уже другая проблема.

Oscar Reyes wrote:

I'm pretty sure if google hand ANY interest in .net, they would've design something while Android was in the first stages, not now when they are in production stages. I don't mean it is not possible, what I'm saying is they're not interested. Maybe in mmm hhhh 10 yrs.

На самом деле они уже разработали очень совместим с Java и .NET.

Они не могут делать все сразу, но если вы посмотрите в Android SDK, там есть инструмент под названием dx. Этот инструмент преобразует байт-код Java в байт-код Dalvik, иными словами, вы можете запускать программы, написанные на Java, на Android уже сегодня без особых усилий. Теперь тот же инструмент необходим для .NET.

Учитывая, насколько похожи .NET и Java, это действительно вопрос времени.

ddimitrov wrote:

The .Net->Java->Dalvik translation can be done even now (http://dev.mainsoft.com/), but I think you underestimate the lack of .Net libraries. Of course somebody can port Mono, but it's definitely a non-trivial effort.

Переносить Mono не нужно. В Android уже есть виртуальная машина и некоторый базовый API. Все, что нужно, - это конвертер CIL-> Dalvik и крошечная оболочка .NET для Android API (и, возможно, некоторая базовая реализация некоторых стандартных классов .NET). Вот и все.

Обновлять: .NET уже работает на Android - вам понадобится продукт под названием Monodroid (http://monodroid.net), как указано выше.

Да, мы никогда не узнаем ... возможно, возможно ... Хорошо, сделаем это 4 года вместо 10 ...: P

OscarRyz 24.10.2008 08:52

Я не согласен. Все, что вы говорите, технически возможно, но я думаю, что вы недооцениваете необходимую работу на порядок. Всегда легко составить доказательство концепции, например, кросс-скомпилированное приветственное слово, за несколько часов. Но настроить обертки для всех классов - это ОЧЕНЬ много работы.

Lena Schimmel 07.01.2009 03:36

Посмотрите видео, на которое Сириш Кумар связал: youtube.com/?v=s8nMpi5-P-I Он показывает, сколько работы предстоит сделать.

Lena Schimmel 07.01.2009 03:40

@Brian, видео, которое вы опубликовали, посвящено iPhone, а не Android.

lubos hasko 06.02.2009 08:59

Что ж, учитывая близость Google к Java, неудивительно, что они не сделал переходят на .NET с этим. Да, использование Mono может быть возможным, но я почти уверен, что Google будет избегать использования .NET с таким же рвением, как Microsoft избегает использования Linux.

Joey 24.11.2009 10:02

«малые компании не будут ставить на это свое будущее, если только более крупные не поддержат это». Novell уже спонсирует его. А Microsoft поддерживает производный проект Moonlight, предоставляя кодеки и наборы тестов.

sblom 27.12.2009 03:59

«Все, что нужно [...], - это некий конвертер, который превратит MSIL в байт-код Dalvik», - смеялся я. :)

bzlm 04.12.2010 18:35

Я думал, что уже есть конвертер для IL в байт-код java. Если это так, и dx может преобразовать байт-код Java в байт-код Dalvik, то, согласно вашему заявлению о необходимости просто конвертера, это уже должно быть технически осуществимо. Приложения .NET просто нужно было скомпилировать в байт-код Java, а затем передать Android в качестве приложения Java для преобразования с помощью dx. Конечно, все не может быть так просто.

jpierson 12.02.2011 04:34

Также вполне возможен модифицированный порт Мононуклеоз.

@akdom, у вас есть опыт переноса программного обеспечения с настольной / серверной ОС на встраиваемое? У меня есть некоторый опыт разработки мобильных приложений (Java и Brew), и ИМХО, вы сильно недооцениваете усилия. Возможно, это возможно, но определенно не в ближайшие 3 года.

ddimitrov 18.10.2008 11:04

@ddmitrov: Вопрос заключался в том, будет ли платформа Android КОГДА-ЛИБО поддерживать .NET, а не будет ли она в ближайшие три года. Я просто утверждал, что, поскольку Mono является реализацией .NET с открытым исходным кодом, было бы проще создать версию Mono для Android, чем начинать с нуля.

akdom 18.10.2008 22:14

В итоге на это потребовалось не три года. И люди из Xamarin планируют сделать это снова менее чем через шесть месяцев.

Justin 21.05.2011 16:08

Проверьте это xmlvm Я думаю, что это возможно. Может также можно проверить это видео

Мне нравятся эти ответы. Это показывает, что это возможно, но если вы посмотрите это видео, оно также покажет, сколько проблем еще предстоит решить и сколько работы стоит за всем этим.

Lena Schimmel 07.01.2009 03:39

Компактная платформа .NET была перенесена на ОС Symbian (http://www.redfivelabs.com/). Если .NET как «закрытую» платформу можно перенести на эту платформу, я не вижу причин, по которым это нельзя сделать для Android.

Вы использовали компактный фреймворк? Я каждый день занимаюсь на работе и монопорт в виде MonoDroid будет на много лучше.

trampster 05.03.2010 02:19

Вы с большей вероятностью увидите реализацию Silverlight для Android. Представитель Microsoft подтвердил, что это возможно, в отличие от iPhone, где, по словам представителя, это было проблематично.

Но возможна версия .Net framework. Просто нужно, чтобы кто-то так сильно об этом заботился :)

Но на самом деле переход с C# на Java - не такая уж большая проблема, и, учитывая резкие различия между двумя платформами (ПК и G1), кажется маловероятным, что вы сможете обойтись одной базой кода для любого приложения, которое вы хотели работать на обоих.

На мой взгляд, было бы технически возможно преобразовать байт-код CLI в Dalvik и написать классы-оболочки для некоторых основных функций, таких как коллекции, доступ к файлам и т. д., Даже если это будет тяжелой работой.

Но настольное приложение .NET, работающее на Android, будет казаться чуждым, поскольку оно будет иметь классический Windows-подобный графический интерфейс, который не очень удобен на сенсорном устройстве. Если, с другой стороны, вы должны были кодировать Android-подобный GUI в .NET, вам понадобился бы другой набор оболочек (обратите внимание, что обертка - это как раз наоборот, в отличие от оболочек, упомянутых выше).

Я не уверен, будет ли мобильное приложение .NET чувствовать себя родным на Android, но думаю, что нет.

Возможно, вас интересует другой подход: вы можете написать свое приложение на языке Java. Затем вы можете скомпилировать его в .NET через Microsoft J # (я знаю, что он больше не поддерживается, но вы все равно можете его загрузить и использовать) и использовать тот же код Java на Android. Опять же, это для основных классов, также называемых бизнес-логикой, и снова вам придется писать буксировочный графический интерфейс. Возможно, вы также можете использовать J2ME, чего вы не сможете сделать, если будете использовать .NET.

нет, вы не предполагаете, что формы выигрыша будут перенесены, что является действительно плохой идеей, MonoDroid будет иметь привязки к виджетам пользовательского интерфейса Android, поэтому он будет выглядеть точно так же, как собственное приложение для Android, пользователю даже не нужно об этом знать работает на MonoDroid

trampster 05.03.2010 02:13

Также байт-код CLI для Dalvik - плохая идея, монофоническая среда выполнения и виртуальная машина уже работают на ARM, поэтому заставить ее работать на Android не будет проблемой. И поскольку моно компилируется JIT, а Dalvik интерпретируется. Работа в монофонической среде выполнения будет намного быстрее.

trampster 05.03.2010 02:17
Ответ принят как подходящий

Обновлять: Поскольку я написал этот ответ два года назад, мы создали 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, а также нашу новую распределенную систему сбора мусора, которая выполняет сборку мусора в Java и Mono.


Ссылки ниже отражают Mono на Android по состоянию на январь 2009 г., я сохранил их для исторического контекста.

Mono теперь работает на Android благодаря работе Кушика Датта и Марка Крайтона.

Вы можете посмотреть видео об этом здесь: 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

Ну, я сказал, не MS и не Google, но, вероятно, Мигель, и вот вы здесь (я знаю, что это был не вы, но как-то близко) Отличные ссылки, Мигель. Как вы думаете, Google когда-нибудь поддержит это? Я имею в виду, они берут порт под капот? :) Если бы я мог, я бы проголосовал против своего собственного ответа :)

OscarRyz 22.01.2009 11:46

Хм, это «только» запуск в debian, работающем на том же оборудовании. На мой взгляд, не совсем перенесен на "андроид", но похоже, что это не большая проблема, чтобы полностью перенести его.

sandos 12.02.2010 10:10

Мне интересно, были ли разговоры с Google, чтобы упростить установку? Может, выложить как бесплатную загрузку с Маркета? Разрешить выпуск приложений .Net на рынок?

csauve 02.06.2010 20:58

Как насчет статьи вроде mono-project.com/Android?

abatishchev 30.08.2010 11:35

Жаль, что это не работает с Visual Studio Express ...

Rockcoder 03.06.2011 16:39

Потрясающий. Рад видеть обновленный ответ. +1 Мигель

Steven Evers 09.08.2011 01:53

Спасибо за это обновление, я слежу за этим ответом с 2010 года.

Govind Malviya 12.10.2011 14:02

Но MonoDevelop - это SDK, основанный на лицензии, и его нельзя использовать с VS Express. Есть ли какой-нибудь бесплатный SDK на основе .NET ??

Karan 15.04.2012 11:24

.NET и Mono - отличные среды со множеством инструментов и отличной базой навыков людей, которые знают, как их использовать.

Я думаю, что у Mono есть возможность стать предпочтительной мобильной кроссплатформенной средой разработки, поскольку они являются единственной альтернативой Objective-C на iPhone и должны быть переносимы на Android, а .NET уже есть в Windows Mobile.

Я действительно надеюсь увидеть надежную реализацию Mono на Android с оболочками для Android API, как в случае с Monotouch, и был бы готов заплатить за это, поскольку я не в состоянии сделать это сам.

Мигель де Икаса объявил на своем блог 17 февраля 2010 года, что они начинают работу над моно для Android, которое будет называться MonoDroid.

Это будет похоже на MonoTouch на iphone, но для Android.

Он обеспечит привязку к пользовательскому интерфейсу Android, поэтому приложения будут выглядеть и чувствовать себя живыми нативными приложениями Android. Это потребует от вас написания пользовательского интерфейса для Android.

Однако вы сможете повторно использовать существующие библиотеки нижнего уровня без необходимости перекомпилировать.

Бета-версия Monodroid теперь доступна для людей, которые подписались на бета-программу раньше.

Damian 26.08.2010 11:33

да, в настоящее время он находится в частной бета-версии, на которую я подписался, но пока пропустил приглашение :(

trampster 26.08.2010 14:22

Поскольку это одна из первых ссылок в Google при поиске поддержки Android и .net, ее можно разместить здесь.

Монопроект работает над SDK для разработки приложений Android с использованием языков CIL, таких как C#. С другой стороны, это будет коммерческий продукт. монодроид

.NET для Android кажется мне реальной возможностью. Есть новости о том, что Microsoft выпустит правильный Silverlight для Android. Никогда не недооценивайте преимущества Microsoft при загрузке в Apple. Смартфон, который быстрее, с большим набором функций, более быстрым жизненным циклом разработки, впечатляющим оборудованием, Flash и Silverlight в стандартной комплектации.

Microsoft кровно заинтересована в улучшении Android, и в то же время приложения будут разработаны для Silverlight на Android, они также будут работать на ОС Windows Phone 7 с поддержкой мультитач, GPS и т. д. И т. Д.

Существует Mono для Android, платформа .NET, портированная для Android. И есть MonoDroid, стек разработки для использования C# и основных API .NET для разработки приложений на базе Android. MonoDroid Preview 1 был выпущен пару дней назад.

MonoDroid доступен для предварительного просмотра. Я думаю, что это ликвидирует разрыв. Однако MonoDroid может оказаться дорогостоящим вариантом для разработки. Их другие инструменты разработки стоят от 199 до 4000 долларов (MonoTouch ... iPhone dev tool ... стоит от 399 до 3999 долларов). Если люди разрабатывают приложения с помощью этих инструментов, им нужна очень сильная бизнес-модель, чтобы получить некоторую отдачу.

Другие вопросы по теме