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% - что плохо в моей книге.