MonoDroid VS Java в разработке Android?

Я довольно хорошо знаю C# и просто люблю Visual Studio как IDE. :) Но теперь я хочу начать разработку для Android...

Я узнал о MonoDroid и хотел спросить, есть ли у него недостатки, которые сделали бы Java более предпочтительным, или Я удаляю Eclipse и погружаюсь прямо в MonoDroid?

Если я правильно понимаю, MonoDroid развертывает/компилирует собственные приложения для Android и не нуждается в какой-либо дополнительной .net-подобной структуре или чем-то еще?

Существуют ли какие-либо существенные ограничения на то, что я могу делать с MonoDroid? Например, запуск приложения в фоновом режиме или использование некоторых внешних .net-библиотек для редактирования изображений и т. д.?


person Roger    schedule 10.05.2011    source источник


Ответы (6)


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

введите здесь описание изображения

Когда использование того же языка, что и разработчики ОС, стало большой проблемой? Есть много программистов на C++, задающихся вопросом, как использовать BSD или SVR5, и много программистов на C, которые хотят знать, что, черт возьми, делать в Windows++...

person RandomNickName42    schedule 10.05.2011
comment
хорошо ... но с точки зрения непрофессионала, так MonoDroid rulz или MonoDroid sux? :) - person Roger; 11.05.2011
comment
Если вы знаете .net или linux mono, стоит обратить внимание на разработку для Android. Я хочу иметь возможность использовать редактор кода familure с API familure, а не беспокоиться о неявно переданных аргументах делегата в какой-то внутренний класс! =) это рулз!! - person RandomNickName42; 11.05.2011
comment
К вашему сведению, среда выполнения .NET работает вместе со средой выполнения Java на Mono Android. У вас будут запущены два сборщика мусора и два фреймворка. Это может повлиять на срок службы батареи, объем памяти и т. д. Для меня такая жертва была приемлемой, но вы должны определить это самостоятельно. - person emalamisura; 23.02.2012

Я беспокоился об одном и том же: производительность в C# вместо того, чтобы играть с незнакомым языком, и разработка того, что задумали разработчики ОС.

Легко перечислить плюсы и минусы -

плюсы (монодроида, для разработчиков C#)

  • знакомая среда разработки, можно разрабатывать с помощью Visual Studio
  • С# вместо Java
  • Повторно используемые ресурсы кода — вы можете использовать много кода в своем проекте iphone или проекте Windows phone 7, используя monotouch и WP7 SDK.

минусы -

  • отладка может быть затруднена из-за отсутствия документации API от Google. Придется полагаться исключительно на документацию монодроида.
  • может быть отставание, когда речь идет о новейших передовых функциях — можно с уверенностью предположить, что команде разработчиков монодроидов потребуется некоторое время, чтобы охватить последние функции Android каждый раз, когда выходит новый выпуск ОС.
  • доступность библиотек - я не уверен, как вы можете использовать библиотеки с открытым исходным кодом, которые развились бы вокруг платформы Android, что могло бы сократить время разработки
person Roopesh Shenoy    schedule 17.09.2011
comment
Из реального мира я обнаружил, что могу повторно использовать около 50-60% моей кодовой базы, это с абсолютной абстракцией с использованием шаблонов MVC и репозитория. Остальные 40-50% — это чистый код пользовательского интерфейса, Android особенно ужасен и очень многословен, когда дело доходит до простых вещей, таких как использование вкладок, расширение представлений и т. д. Процент немного увеличивается с iOS до примерно 70/30, а на Windows Phone примерно 80/20. - person emalamisura; 23.02.2012

Большая часть доступной документации написана на Java: поэтому, если вы столкнетесь с трудностями при работе с телефоном при использовании MonoDroid, вы не найдете столько помощи или информации по отладке, поэтому вы можете придерживаться Eclipse.

person Femi    schedule 10.05.2011

Если вы все равно будете писать на С#, вам придется обернуть его в код Java, так в чем смысл? Также вы можете столкнуться с очень сложными проблемами, пытаясь понять API, написанные для программирования на Java...

person Master C    schedule 10.05.2011
comment
Я думаю, дело в том, что он силен в C#, чем в Java. Я думаю, что для большинства разработчиков C# MonoDroid имеет большой смысл. Да, и тот факт, что он должен иметь возможность использовать ту же кодовую базу, что и существующее приложение, если оно у него есть. Это было бы большим преимуществом для меня. - person Andy; 10.05.2011

Вот некоторые моменты, которые вы можете обдумать:

  1. Приложения для Android в основном написаны на Java. Сам Android SDK изначально написан на Java.

  2. Работа в Mono может не обеспечивать все функции, доступные в Java SDK.

  3. Если вы являетесь разработчиком C#, вы не сможете найти в Java некоторые (крутые) функции, доступные в C# (например, делегаты свойств и т. д.).

  4. Код, написанный на .NET, можно повторно использовать для других сред — это может сэкономить много времени, которое было бы потрачено на изучение нового языка/среды (например, Objective C) и кодирование в нем.

  5. .NET расширяет стек разработки Android с помощью существующих библиотек и API.

Я думаю, что оба хороши по определенной причине. Будет очень сложно сказать, какой из них предпочтительнее для разработки под Android — в конце концов, это тоже решать вам.

person Uneeb Khalid Khanzada    schedule 25.05.2012

Также обратите внимание, что любая сборка выпуска с использованием монодроида добавляет дополнительные 4 МБ к размеру файла apk и увеличивает время запуска приложения на несколько секунд.

Для простых приложений это может означать увеличение размера файла на 500-800%, что, по моему мнению, довольно плохо.

person slott    schedule 20.06.2012