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

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

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

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

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

Ответ 1

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

enter image description here

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

Ответ 2

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

Легко перечислять профи против cons -

профи (для monodroid, для разработчиков С#)

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

cons -

  • отладка может быть затруднена из-за отсутствия документации api от Google. Обязательно будет зависеть только от документации по монододжированию.
  • может возникнуть отставание, когда дело доходит до последних новейших функций - безопасно предположить, что команде monodroid потребуется некоторое время, чтобы обернуть последние функции Android каждый раз, когда появляется новая версия ОС.
  • доступность библиотек - я не уверен, как вы можете использовать библиотеки с открытым исходным кодом, которые были бы развиты вокруг платформы Android, что может сократить время разработки.

Ответ 3

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

Ответ 4

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

Ответ 5

Вот несколько моментов, которые вы можете рассмотреть:

  • Приложения Android преимущественно написаны на Java. Сам Android SDK написан на языке Java.

  • Работа в Mono может не предоставлять все возможности, доступные в Java SDK.

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

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

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

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

Ответ 6

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

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