LINUX.ORG.RU

XobotOS — порт Android на C#

 , , , , xobotos


0

3

XobotOS — проект компании Xamarin, целью которого является портирование Android с Java/Dalvik на C# для исследования преимуществ C# в отношении производительности, ресурсоёмкости и энергопотребления, а также для обеспечения перспективной платформой для создания мобильных приложений как для Android, так и для Apple iOS и Windows Phone.

Работа была начата в 2011 году с Android 2.x, на данный момент большая часть (более миллиона строк кода) XobotOS переписана на C# с Android 4.0. В настоящее время прямой доступ к графическому движку Skia, используемым Android, осуществляется через библиотеки Java, которые впоследствии тоже должны быть замещены Mono.

По заявлению разработчиков, в результате портирования XobotOS показывает гораздо более высокую производительность и более низкое энергопотребление по сравнению с Android.

Xamarin не собирается поддерживать эту ОС в будущем для промышленного использования — «Наша цель создать платформу для разработки мобильных приложений и в будущем сама XobotOS не будет являться нашей основной целью».

XobotOS на GitHub

>>> Подробности

★★★★★

Проверено: DoctorSinus ()
Последнее исправление: Silent (всего исправлений: 2)

Ответ на: комментарий от encyrtid

Пардонте, про WinForms буду знать.

Ну а WPF не будет. Рекомендуют ограничиться silverlight (подмножество WPF в некотором смысле), который может запускать вне браузера.

DiX
()
Ответ на: комментарий от DiX

Сервелат - отстой. Сама MS о нем негативно отзывалась, в Win8 интерфейсы планируется переводить на html5 + js.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

Да.

Тоесть софт написанный на кроссплатформенном .NET работает только под Windows?

И еще вопрос. Каков процент реального софта написан с WPF?

demmsnt
()
Ответ на: комментарий от demmsnt

Тоесть софт написанный на кроссплатформенном .NET работает только под Windows?

Никто никогда не заявлял по полной кроссплатформенности .net, .net легко переносим но абсолютной переносимости нет и не будет. Ты постоянно напираешь на переносимость как единственно значимый критерий, но далеко не все так считают, есть много других критериев, как я писал выше, например скорость разработки. В самом mono есть некоторые фичи, которых нет в .net. Если изначальной целью будет написание кроссплатформенной программы - все будет работать отлично. Но большинство .net программистов кроме винды не знают ничего и пишут по привычке, дергая напрямую WinAPI, например. Это больше вопрос культуры программирования, а не конкретной технологии (пример из с++ - неграмотные виндовые программисты для паузы используют getch() из conio.h).

И еще вопрос. Каков процент реального софта написан с WPF?

Точно сказать не могу - но не слишком много. WPF - это в основном свистоперделки, полезного там мало. Тем более, как я уже упоминал - MS в плане гуя делает ставку на html5 + js для новых продуктов.

encyrtid ★★★★★
()
Ответ на: комментарий от demmsnt

планомерное упрямство

Можно сто раз перефразировать вопрос с глубокой целью подвести ответ под свой тезис.

Но для таких специально: перед тем как писать любое кроссплатформенное приложение необходимо удостовериться в наличии не только пускалики приложения но и всех используемых компонентов под целевой платформой. И будет вам счастье.

Каков процент реального софта написан с WPF?

Не много. Но достаточно для того чтобы коммунити разработчиков хватило для продолжения жизни WPF, который, кстати, Win8 будет поддерживать.

DiX
()
Ответ на: комментарий от encyrtid

Но большинство .net программистов кроме винды не знают ничего и пишут по привычке, дергая напрямую WinAPI, например.

Почему это не происходит с Java программистами?

Я сейчас объясню вообще к чему я клоню.

demmsnt
()
Ответ на: планомерное упрямство от DiX

Но для таких специально: перед тем как писать любое кроссплатформенное приложение необходимо удостовериться в наличии не только пускалики приложения но и всех используемых компонентов под целевой платформой. И будет вам счастье.

Или просто писать на Java не думая....

demmsnt
()

Итак мой тезис. В 90-х годах NT работал на x86, MIPS, ALPHA... Но это все сгинуло. Почему?

Потому, что сам NT никому не нужен. Нужен Софт. А под эти архитектуры был редкий редкий софт...

Настали 2000-е. Выстрелили ARM. Возможно выстрелят еще китайцы.

Далее мои размышления (возможно не соответствующие действительности). MS взялся за голову и понял, что им нужно запускать 1 и тот, же бинарь на любом проце (в рамках разумного конечно). Пользователь взял WinZip и запускает его на x86. Потом копирует его на ARM планшет и там он тоже запускается? Почему? Потому, что CLR абстрагирует его от типа процессора, а .NET от железа.

Такие мысли подтверждаются анонсами Win 8 на ARM. Мы уже имеем много, много софта написанного на .NET и Win 8 автоматом получает его на ARM планшетах.

ВНЕЗАПНО тут народ говорит, что даже Paint.NET оказывается написан на C++ (с которым БЕЗ ПЕРЕКОМПИЛЯЦИИ это не работает).

Это что получается в MS идиоты? Нам прийдется как минимум перекомпилировать весь софт? Даже тот исходников которого у нас нет?

demmsnt
()
Ответ на: планомерное упрямство от DiX

Не много. Но достаточно для того чтобы коммунити разработчиков хватило для продолжения жизни WPF, который, кстати, Win8 будет поддерживать.

Ок пусть это 5% Какие еще технологии не поддерживаются? 5+5+5+5.....

demmsnt
()
Ответ на: комментарий от demmsnt

Думать все же надо иногда.

.NET дает возможность использовать родные/привычные морды (WinForms|WPF на винде, Gtk). Mono доступен для разработки под iOS благодаря компиляции в нативный код, опять же с родной мордой.

И сам топик указывал первоначально на прирост производительности по сравнению с Android/Dalvik, который не JavaVM и библиотеки тоже другие.

DiX
()
Ответ на: комментарий от demmsnt

MS уже сейчас заявляет что приложения завязанные на x86 НЕ будут работать под Win8 RT (ARM). никто софт не будет перекомпилировать. Даже MS Office будет портированный для ARM с GUI Metro-style.

DiX
()
Ответ на: комментарий от demmsnt

Или просто писать на Java не думая

... и тогда получаются клиенты SAP/R3, HP ServiceDesk и Oracle Installer, которые ВНЕЗАПНО нифига не кроссплатформенные. Думать надо всегда - даже на Java.

no-dashi ★★★★★
()
Ответ на: комментарий от DiX

MS уже сейчас заявляет что приложения завязанные на x86 НЕ будут работать под Win8 RT (ARM).

Тоесть создали VM и сделали его привязанным к платформе. Гениально.

demmsnt
()
Ответ на: комментарий от demmsnt

А где же логика?

А нет ее. У demmsnt.

Офис не работает под VM (.NET CLR), как и куча уже написанного софта. А то что написано под .NET, будет работать на Win8ARM.

С другой стороны под винду не на .NET будет написано еще куча того что будет требовать перекомпиляции. Потому что не бывает универсальных топоров. Java тому пример.

DiX
()
Ответ на: комментарий от no-dashi

Думать надо всегда - даже на Java.

Ну согласен. Но с софтом на Java 90% софта пашет без перекомпиляции (в разумных пределах. Ясно, что на мобильнике эклипс не пашет)

demmsnt
()
Ответ на: А где же логика? от DiX

Офис не работает под VM (.NET CLR), как и куча уже написанного софта.

Почему? Что такого в Office что его не написали под .NET Офис 2007 переписан практически с нуля. Почему не на .NET? Ведь тут все говорят, что он такой хороший....

Яб понял еслиб это было ПО управления скажем метро. Но MS Office.... Заодно он не требовал бы перекомпиляции под ARM.....

demmsnt
()
Ответ на: комментарий от demmsnt

Или просто писать на Java не думая....

Вот ты сейчас очень точно охарактеризовал жабомакак.

encyrtid ★★★★★
()
Ответ на: комментарий от demmsnt

Ведь тут все говорят, что [МС Офис] такой хороший....

На ЛОРе? Все так говорят? Или я не на ЛОРе? [Посмотрел на адресную строку]. Фу... все в норме.

Офис 2007 переписан практически с нуля. Почему не на .NET?

Не писал. Не знаю. Вряд ли с нуля.

DiX
()
Ответ на: комментарий от demmsnt

Итак мой тезис. В 90-х годах NT работал на x86, MIPS, ALPHA... Но это все сгинуло. Почему?

Потому, что сам NT никому не нужен. Нужен Софт. А под эти архитектуры был редкий редкий софт...

Настали 2000-е. Выстрелили ARM. Возможно выстрелят еще китайцы.

Далее мои размышления (возможно не соответствующие действительности). MS взялся за голову и понял, что им нужно запускать 1 и тот, же бинарь на любом проце (в рамках разумного конечно). Пользователь взял WinZip и запускает его на x86. Потом копирует его на ARM планшет и там он тоже запускается? Почему? Потому, что CLR абстрагирует его от типа процессора, а .NET от железа.

Такие мысли подтверждаются анонсами Win 8 на ARM. Мы уже имеем много, много софта написанного на .NET и Win 8 автоматом получает его на ARM планшетах.

ВНЕЗАПНО тут народ говорит, что даже Paint.NET оказывается написан на C++ (с которым БЕЗ ПЕРЕКОМПИЛЯЦИИ это не работает).

Это что получается в MS идиоты? Нам прийдется как минимум перекомпилировать весь софт? Даже тот исходников которого у нас нет?

Сгинуло это потому что был бум десктопов на котором Intel вытеснил все другие архитектуры и только поэтому. А к чему ты ведешь я не пойму, тот факт что есть куча непереносимого говнософта никто не оспаривает.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

А к чему ты ведешь я не пойму, тот факт что есть куча непереносимого говнософта никто не оспаривает.

Создание VM это могло поправить. Но....

demmsnt
()
Ответ на: комментарий от demmsnt

Создание VM это могло поправить. Но...

Ошибки в генетическом коде? Вряд ли. И еще раз тебе напомню - кроссплатформенность не является решающим фактором.

encyrtid ★★★★★
()
Ответ на: комментарий от demmsnt

Что такого в Office что его не написали под .NET Офис 2007 переписан практически с нуля. Почему не на .NET?

да тормозить потому что будет

RedPossum ★★★★★
()
Ответ на: комментарий от marvin_yorke

порт ненужно с ненужно на ненужно, удачи

...гордо сказал бейсикокодер и пошёл дальше

anonymous
()
Ответ на: C# не нужен от shybovycha

Да на Си его портировать бы!

увы, Капитана Очевидность тут многие в упор не замечают. Очень , очень странно

anonymous
()
Ответ на: комментарий от demmsnt

dem@dembox:~/temp/monotest/CSDNS/bin/Debug$ ./CSDNS.exe
System.EntryPointNotFoundException: MessageBeep at (wrapper managed-to-native) CSDNS.Form1:MessageBeep (int)

Ты всё-таки хоть иногда, когда хочешь обосрать программу/платформу, заглядывай в код того, что запускаешь:

[DllImport(«user32.dll»)]
public static extern bool MessageBeep(int Sound);

anonymous
()
Ответ на: комментарий от anonymous

Ты всё-таки хоть иногда, когда хочешь обосрать программу/платформу

Я ничего не обсираю. Я взял программу уровня HelloWorld и она не работает.

Тезисы собравшихся тут были, что .NET кросплатформенная и не надо прилагать никаких усилий чтоб софт написанный на .NET пахал на MONO.

Я вижу факты. Я вижу, что 90% написанного на .NET софта не пашет под MONO. Как минимум требуется портирование.

Мой тезис: Mono всеми воспринимается как .NET для Linux и все так и считают буду писать под .NET и как подарок получу iOS, Linux И т.п. Но в итоге разницы между .NET или тем, же C++ Qt нет. Прийдется как минимум делать 2 разные сборки.

В Java я могу хотяб простейшие программы писать не думая о платформе JOSM тому пример. Это ХОРОШО!

Почему я сравниваю Java с .NET - Прочтите как называется тред. C# как замена Java и .NET как замена Dalvik. И? Какая нафиг замена? MONO там компилирует в нативный код процессора. А у меня Планшет на одном CPU, а телефон на другом. Я и там и там запускаю OSMAnd. С Моно так выйдет? Нет? Я должен пересобрать OSMAnd? Знаете, что сейчас про вас сказал человечек в моей голове?

demmsnt
()
Ответ на: комментарий от Quasar

Не на мыло, а на зонд.

Зонд на зонде написан и зондом погоняет

derlafff ★★★★★
()
Ответ на: комментарий от demmsnt

Это для переключения задач. Там чтоб убить надо на задаче долго держать?

хм. ну может это только у самсунгов. У меня всегда внизу под списком задач была кнопка task manager

anonymoos ★★★★★
()

ZondOS — порт Android на C#

Починил.

anonymous
()
Ответ на: комментарий от demmsnt

Я ничего не обсираю. Я взял программу уровня HelloWorld и она не работает.

Тебе уже объяснили почему.

Тезисы собравшихся тут были, что .NET кросплатформенная и не надо прилагать никаких усилий чтоб софт написанный на .NET пахал на MONO.

Тезисы были о том что на .net легко написать кроссплатформенную программу. Про легкость портирования любой существующей программы никто не говорил. Улавливаешь разницу? Давай мне любую небольших размеров задачу - я напишу ее на .net с WinForms и она без изменений заведется на mono.

Я вижу факты. Я вижу, что 90% написанного на .NET софта не пашет под MONO. Как минимум требуется портирование.

Потому что ни одна из них не ставила перед собой задачу быть кроссплатформенной. Сам язык не принуждает писать непереносимый код.

Мой тезис: Mono всеми воспринимается как .NET для Linux и все так и считают буду писать под .NET и как подарок получу iOS, Linux И т.п. Но в итоге разницы между .NET или тем, же C++ Qt нет. Прийдется как минимум делать 2 разные сборки.

Это с какого перепуга?

В Java я могу хотяб простейшие программы писать не думая о платформе JOSM тому пример. Это ХОРОШО!

Выучи C#, сможешь делать то же самое на нем.

Почему я сравниваю Java с .NET - Прочтите как называется тред. C# как замена Java и .NET как замена Dalvik. И? Какая нафиг замена? MONO там компилирует в нативный код процессора. А у меня Планшет на одном CPU, а телефон на другом. Я и там и там запускаю OSMAnd. С Моно так выйдет? Нет? Я должен пересобрать OSMAnd? Знаете, что сейчас про вас сказал человечек в моей голове?

Тут ты уже полную чушь сморозил. Сборка .net содержит байт-код совместимый с ecma-335, компиляция в нативный код происходит при первом обращении к коду. К примеру у тебя планшет на arm и смартфон на mips. На одном у тебя стоит mono для arm, на другом для mips. Одна и та же сборка будет работать одинаково и там и там. Работать не будет только в том случае, если нет версии mono для данной архитектуры. Конечно, если дернуть через ffi сишный модуль с ассемблерным кодом - тогда, естественно, работать не будет. В этом плане .net ничем не отличается от jvm.

encyrtid ★★★★★
()
Ответ на: комментарий от demmsnt

Уважаемый, вы не первый раз уже мешаете в одну кашу языки, VM, платформу, нативный код.

Android/Dalivik Умеет запускать J2SE приложения без каких либо перекомпиляций и сторонних эмуляторов?

А.. так вы про то что для Dalvik и J2SE используется один язык? Здорово - а приложения на С# тоже запускаются под MS .NET и Mono. Причина в стандарте CLI, который реализует среды .NET, Mono и даже такой зверь какDotGNU Portable.NET

Отсюда вывод: С# вполне себе замена языку Java.

MONO там компилирует в нативный код процессора.

Это для того чтобы Apple пропустила в appstore. Но приложение разрабатывается как для запуска под реализацию CLI, а не под конкретный проц.

Углубляясь дальше понимаем, что для .NET можно использовать не только C#, но и другие языки, из википедии: Managed C++, Visual Basic .NET, Visual J#

DiX
()
Ответ на: комментарий от encyrtid

Работать не будет только в том случае, если нет версии mono для данной архитектуры.

И еще если этот код вызывает нативный код которого нет.... Сам так сказал.

В этом плане .net ничем не отличается от jvm.

Точно так, же как человек выпивающий 1 бокал вина на свой ДР от алкоголика который пьет каждый день....

demmsnt
()
Ответ на: комментарий от demmsnt

Сломал семантический парсер

Я ничего не понял.

Троллить это весело. Но когда тебе поочередно два лица объяснят суть, то это как шутка, повторенная дважды.

DiX
()
Ответ на: Сломал семантический парсер от DiX

Потому, что вы как попка дурак повторяете фигню. Вам три тысяча пятьсот двадцать первый раз говорят, что главной особенностью Java и J2ME является то, что одна и таже игрушка пашет и на Samsung и на Nokia. У J2ME были затыки в размерах экрана и т.п. Гугл делая Андроид взял Java не зря. В итоге ангри бёдс пашут и на ARM и на x86.

Тут вылазят Мигели и пишут замену Андроиду на .NET

Еще более упоротые предлагают замену на C или C++

При этом доказывая, что .NET переносим... Правда есть один ньюанс.

Ребята - я земноводное. Я спокойно опускаю пятку в воду на три часа и не умираю.... И пофиг, что пятка это 5% от меня!

.NET это кросплатформенно! Да вы меня убедили Это кросплатформенно, а я земноводное!

demmsnt
()
Ответ на: комментарий от demmsnt

Потому, что вы как попка дурак повторяете фигню. Вам три тысяча пятьсот двадцать первый раз говорят, что главной особенностью Java и J2ME является то, что одна и таже игрушка пашет и на Samsung и на Nokia. У J2ME были затыки в размерах экрана и т.п. Гугл делая Андроид взял Java не зря. В итоге ангри бёдс пашут и на ARM и на x86.

А на iOS как дела с жабкой обстоят?

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

А на iOS как дела с жабкой обстоят?

Отлично. Apple её туда не пускает по понятным причинам. Есть конечно http://www.emitrom.com/gwt4timobile

Но технических причин не работать Java нет. Как минимум http://www.mobi.ru/Articles/5092/iDroid_ustanavlivaem_Android_na_iPhone_3G.htm

demmsnt
()
Ответ на: комментарий от encyrtid

Ты слишком фанатик. Пацаны учат Java + (Scala or Clojure) + Oracle и валят за рубеж. А ты рассказываешь как индусы кодят под сисярпом и радуются жизни. Это ваш доднет имеет две с половиной библиотеки для гуйев и огрызок для сервер сайда. А у Java есть хадуп, большой выбор серверов приложений, и т.д, когда у сисярпа только Хайлсберг.

anonymous
()
Ответ на: комментарий от demmsnt

Андроидовский Dalvik != J2ME Андроидовский Dalvik != J2SE

Причем тут JVM вообще? Мы же про Андроид?

Может я не в теме? Чем запустить J2ME,J2SE приложение под Android 3.0?

DiX
()
Ответ на: комментарий от demmsnt

HTML5 самый стандартный.

Собственно особых проблем с разметкой HTML4 для IE8/9 уже и сейчас нет. Времена IE 6/7 прошли

DiX
()
Ответ на: комментарий от anonymous

Ты слишком фанатик

Да ни разу. Просто не люблю безосновательный бред помноженный на полную некомпетентность, демонстрируемый моим оппонентом. Для личных целей я C# вообще не использую, есть много гораздо лучших языков, просто это лучшее что можно выбрать из мейнстрима.

encyrtid ★★★★★
()
Ответ на: комментарий от demmsnt

Я взял программу уровня HelloWorld и она не работает.

Ты взял программу, которая лезет к нативному Win32 API в обход .NET/Mono и удивляешься, что она не работает в Linux. «Гениально.»(c)

anonymous
()
Ответ на: комментарий от anonymous

Ничего что тема про мобильные устройства?

Ынтерпрайз покорен JavaEE и немного JavaSE. Это да. Но тут про другое, не правда ли?

Оффтоп: ASP.NET MVC не такой уж и огрызок, теперь бана... открытый.

DiX
()
Ответ на: комментарий от DiX

Причем тут JVM вообще? Мы же про Андроид?

Ох ох... Неужели так тяжело вам подумать? J2ME пашет на всех процах. Android Apps пашут везде где есть Далвик....

demmsnt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.