2011-05-10 14 views
10

Conozco C# bastante bien y me encanta Visual Studio como IDE. :) Sin embargo, ahora quiero comenzar a desarrollar para Android ...MonoDroid VS Java en el desarrollo de Android?

Me enteré de MonoDroid y quería preguntar si tiene algún inconveniente que haría que Java sea más preferible, o debería desinstalar Eclipse y sumergirme directamente en MonoDroid?

Si entiendo bien, MonoDroid implementa/compila aplicaciones nativas de android y no necesita ningún framework .net-like adicional o algo?

¿Hay alguna limitación significativa de lo que puedo hacer con MonoDroid? Por ejemplo, hacer que la aplicación se ejecute en segundo plano o usar algunas bibliotecas .net externas para la edición de imágenes, etc.

Respuesta

5

Hay mucho más que un conjunto de envolturas corriendo bajo davlick, a decir verdad, hay mucho más de una relación horizontal entre MonoDroid y Android;

enter image description here

Cuando lo hizo usando el mismo lenguaje que los desarrolladores de OS se convierten en un gran problema? Hay muchos programadores de C++ que se preguntan cómo usar BSD o SVR5 y muchos programadores de C que quieren saber qué diablos hacer en Windows ++ ...

+2

bien ... pero en términos simples, ¿entonces MonoDroid rulz o MonoDroid sux? :) – Roger

+0

Si conoces .net o linux mono, vale la pena buscar el desarrollo de Android. Poder usar un editor de código familure con una API familure es lo que quiero, ¡en lugar de preocuparme por los argumentos delegados implícitamente pasados ​​a alguna clase interna! =) es rulz !! – RandomNickName42

+2

Solo un FYI, .NET Runtime se ejecuta junto con el tiempo de ejecución de Java en Mono Android. Tendrás dos recolectores de basura en ejecución y dos marcos. Esto puede afectar la duración de la batería, la huella de memoria, etc. Para mí, el sacrificio fue aceptable, pero debes determinarlo por tu cuenta. – emalamisura

7

Gran parte de la documentación disponible está en Java: por lo que si encuentra dificultades con el comportamiento del teléfono al usar MonoDroid no encontrará mucha información de ayuda o de depuración, por lo que es recomendable que se quede con Eclipse.

3

Si va a escribir en C# de todos modos, tendrá que envolverlo en un código Java, entonces, ¿cuál es el punto? También puedes enfrentarte a problemas muy difíciles al tratar de entender las API que escribieron para la programación de Java ...

+1

Creo que el punto es que él es fuerte en C# que en Java. Creo que para la mayoría de los desarrolladores de C#, MonoDroid tiene mucho sentido. Ah, y el hecho de que debería poder compartir la misma base de código como una aplicación existente, si es que tiene una. Eso sería un gran punto de venta para mí. – Andy

9

Me he estado preocupando por lo mismo: productividad en C# en lugar de jugar con un lenguaje desconocido, vs desarrollar cómo los desarrolladores del sistema operativo lo intentaron.

su fácil lista de pros vs contras -

pros (de MonoDroid, para desarrolladores de C#)

  • entorno de desarrollo familiar, pueden desarrollar utilizando Visual Studio
  • C# en lugar de Java
  • Recursos de código reutilizables: puede usar una gran cantidad de código en su proyecto de iphone o proyecto de Windows Phone 7 usando monotouch y WP7 SDK.

contras -

  • depuración podría ser difícil, debido a la falta de documentación de la API de Google. Tendrá que depender únicamente de la documentación de monodroid.
  • podría haber un desfase cuando se trata de las últimas características de vanguardia - es seguro asumir que el equipo de monodroid requerirá algo de tiempo para envolver las últimas características de Android cada vez que hay una nueva versión del sistema operativo
  • disponibilidad de bibliotecas - no estoy seguro de cómo se pueden utilizar las bibliotecas de código abierto que se han desarrollado en torno a la plataforma Android, que podría reducir el tiempo de desarrollo
+2

De la experiencia del mundo real, me parece que puedo volver a utilizar aproximadamente el 50-60% de mi base de código, esto es con abstracción absoluta utilizando MVC y patrones de Repoistory. El otro 40-50% es código de UI puro, Android es particularmente terrible y muy detallado cuando se trata de hacer cosas simples como usar pestañas, inflar vistas, etc. El porcentaje sube un poco con iOS a más como 70/30, y en Windows Phone es aproximadamente 80/20. – emalamisura

3

he aquí algunos puntos que se puede reflexionar sobre: ​​

  1. aplicación de Android Las aplicaciones están escritas predominantemente con Java. El SDK de Android en sí está escrito originalmente en Java.

  2. Es posible que el trabajo en Mono no brinde todas las funciones disponibles en el SDK de Java.

  3. Si usted es un desarrollador de C#, no podrá encontrar, en Java, algunas de las características (geniales) disponibles en C# (como los delegados de propiedad, etc.).

  4. El código escrito en .NET se puede reutilizar para otros entornos; esto puede ahorrar mucho tiempo que se habría gastado aprendiendo un nuevo idioma/entorno (como el Objetivo C) y codificando en él.

  5. .NET amplía la pila de desarrollo de Android con sus bibliotecas y API existentes.

Creo que ambos son buenos por algún motivo. Será muy difícil decir cuál es preferible para el desarrollo de Android, al final depende de ti también decidir.

2

También tenga en cuenta que cualquier versión de lanzamiento con monodroid agrega 4mb adicionales al tamaño del archivo apk y aumenta el tiempo de inicio de la aplicación en unos segundos.

Para aplicaciones simples esto puede significar un 500-800% de aumento en el tamaño del archivo, que es bastante malo en mi libro.

Cuestiones relacionadas