Чи підтримуватиме Google Android коли-небудь .NET? [зачинено]


253

Тепер, коли G1 з операційною системою Android Android буде доступна (незабаром), чи буде платформа Android завжди підтримувати. Net?


24
Тепер це було б щось!
Каланус

Чим важливіше, чи буде Microsoft коли-небудь порту .NET розміщувати на іншій платформі, ніж Windows?
Керрі

Відповіді:


325

Оновлення : Оскільки я написав цю відповідь два роки тому, ми виробили 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


1
Ну, я сказав, не MS і Google, але, напевно, Мігель, і ось ви (добре, я знаю, це не ви, але якимось чином близький) Чудові посилання Мігеля. Як ви думаєте, Google коли-небудь підтримав би це? Я маю на увазі, що вони беруть порт під кришкою? :) Якби я міг, я би спростував свою власну відповідь :)
OscarRyz

6
Ум, це "тільки", що працює в debian, який працює на тому ж апаратному забезпеченні. На мій погляд, не зовсім перенесений на "android", але це здається, що це не велика проблема, щоб повністю перенести це порт.
сандос

1
Мені цікаво, чи говорили з Google, щоб полегшити цю установку? Можливо, виставити це як безкоштовне завантаження з ринку? Дозволити випускати на ринок додатки .Net?
csauve

1
Шкода, що це не працює з Visual Studio Express ...
Rockcoder

1
Дивовижно. Радий отримати оновлену відповідь. +1 Мігель
Стівен Еверс

78

Так, це буде можливо, і це буде не так складно. З цього моменту для початку потрібно перетворити якийсь конвертер, який перетворить 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 ), як зазначено вище.


Так, ми ніколи не знаємо ... можливо, можливо ... Ну, зробіть це 4 роки замість 10 ...: P
OscarRyz

16
Я не згоден. Все, що ви говорите, технічно можливо, але я думаю, ви недооцінюєте роботу, необхідну на порядок. Завжди легко скласти доказову концепцію, як перекреслене привіт слово за кілька годин. Але налаштувати обгортки для всіх класів - МНОГО роботи.
Лена Шіммель

4
@Brian, опубліковане вами відео стосується iPhone, а не Android.
lubos hasko

14
Ну, з огляду на близькість Java Google, це не дуже дивно , що вони НЕ йдуть для .NET з цим. Так, використання Mono може бути здійсненним, але я майже впевнений, що Google уникне використання .NET із подібним завзяттям, як Microsoft уникне використання Linux.
Joey

2
"малі компанії не збираються робити на це своє майбутнє, якщо деякі більші не покладуть на це ваги". Novell вже його спонсорує. А Microsoft підтримує похідний проект Moonlight як надання кодеків, так і тестових наборів.
sblom

23

17 лютого 2010 року в своєму блозі Мігель де Іказа оголосив, що вони починають роботу над моно для Android, який буде називатися MonoDroid.

Це буде схоже на MonoTouch на iphone, але замість Android.

Це забезпечить прив’язку до інтерфейсу Android, тому додатки будуть виглядати та відчувати живі нативні програми для Android. Для цього знадобиться написати інтерфейс користувача для Android.

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


Тепер бета-версія Monodroid доступна для людей, які передчасно підписалися на бета-програму.
Даміан

так, вона наразі є приватною бета-версією, на яку я підписалася, але поки що пропустила запрошення :(
волоцюга

9

Існує Mono для Android, платформа .NET, перенесена для Android. А ще є MonoDroid, стек розробки для використання C # та основних .NET API для розробки додатків на базі Android. MonoDroid Preview 1 вийшов пару днів тому.


9

Оскільки це одне з перших посилань у Google під час пошуку Android та підтримки .net, опублікувати це можна лише тут.

Монопроект працює над SDK для розробки програм Android, використовуючи мови CIL, такі як C #. Нижня сторона полягає в тому, що це буде комерційний продукт. монодороїд


7

MonoDroid доступний для попереднього перегляду. Я думаю, що це усуне розрив. Однак MonoDroid може бути дорогим варіантом розвитку. Інші інструменти розробки коштують від 199 до 4000 доларів (інструмент MonoTouch .. iPhone Dev ... коштує від 399 до 3999 доларів). Якщо люди розробляють додатки за допомогою цих інструментів, їм потрібна дуже сильна бізнес-модель, щоб побачити певні прибутки.


6

Перевірте це xmlvm Я думаю, що це можливо. Може бути, також можна перевірити це відео


Мені подобаються відповіді. Це показує, що це можливо, але якщо ви подивитеся це відео, воно також показує, скільки проблем ще відкрито для вирішення та скільки роботи стоїть за всім цим.
Лена Шіммель

4

Модифікований порт Mono також цілком можливий.


@akdom, чи маєте ви досвід перенесення програмного забезпечення з ОС на робочий стіл / сервер до вбудованого? У мене є досвід мобільної розробки (Java та Brew) та IMHO, ви грубо недооцінюєте зусилля. Це може бути можливим, але не напевно не в наступні 3 роки.
ddimitrov

@ddmitrov: Питання полягало в тому, чи буде платформа Android з підтримкою EVER .NET, а не чи буде це протягом наступних трьох років. Я просто стверджував, що оскільки Mono є реалізацією .NET з відкритим кодом, було б простіше побудувати версію Mono для Android, ніж почати з нуля.
akdom

2
Зрештою, це не минуло трьох років. А люди в Ксамаріні планують зробити це знову менше ніж за півроку.
Джастін

4

.NET компактна рамка була перенесена на ОС Symbian ( http://www.redfivelabs.com/ ). Якщо .NET як «закриту» платформу можна перенести на цю платформу, я не бачу жодної причини, чому це не можна зробити для Android.


Ви використовували компактний каркас? Я щодня працюю на своїй роботі, і монопорт у вигляді MonoDroid буде купою краще.
бродяга

4

.NET і Mono - це чудове середовище, що має багато інструментів та відмінну базу навичок людей, які вміють ними користуватися.

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

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


3

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

Але можлива версія .Net Framework. Просто потрібен хтось про це так дбає :)

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


3

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

Але настільний додаток .NET, запущений на Android, відчував би себе чужоземним, оскільки він матиме класичний інтерфейс, схожий на Windows, який не дуже зручний на сенсорному пристрої. Якщо, з іншого боку, вам слід було кодувати андроїд-графічний інтерфейс GUI в .NET, вам знадобиться інший набір обгортки (зауважте, що обгортання - це навпаки, протилежне обговореним вище обгорткам).

Я не впевнений, чи не буде .NET мобільний додаток відчувати себе рідним на android, але я думаю, що це не буде.

Можливо, ви зацікавлені в іншому підході: ви можете писати заявку мовою Java. Потім ви можете компілювати його у .NET через Microsoft J # (я знаю, що його припинено, але ви все ще можете завантажити та використовувати) та використовувати той же код Java на android. Знову ж таки, це для основних класів ака-логіки бізнесу, і вам знову доведеться писати графічні інтерфейси. Можливо, ви можете також позначити J2ME, що ви не зможете зробити, якщо використовувати .NET.


ні, не було б ви припускаєте, що виграють форми переносу, що є дуже поганою ідеєю, MonoDroid матиме прив'язку до віджетів інтерфейсу Android для користувача, тому він буде виглядати точно як рідний додаток для Android, користувачеві навіть не потрібно цього знати працює на MonoDroid
бродяга

Також байт-код CLI для Dalvik - це погана ідея, моно-час виконання та VM вже працюють на ARM, тому його запуск на android не буде проблемою. І бачити, як моно - складений JIT, і Далвік інтерпретується. Працювати в режимі моно-виконання буде набагато швидше.
бродяга

2

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

Майкрософт зацікавлений у вдосконаленні Android, і в той же час додатки для Silverlight на Android також будуть розроблені для ОС Windows Phone 7 з мультитач, GPS і т.д.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.