Esta pregunta se ha hecho varias veces en Stack Overflow, aquí hay una gran respuesta con enlaces a varias herramientas de desarrollo que puede usar:
http://stackoverflow.com/questio…
En cuanto a las limitaciones: las aplicaciones de Android generalmente están escritas en Java, al igual que la mayoría del sistema operativo Android. Escribir aplicaciones en cualquier otro idioma significará menos compatibilidad con la biblioteca y, por lo general, hará que escribir esa aplicación sea mucho más difícil. Su aplicación podría terminar lentamente, sin funciones y con errores. Pero en realidad cualquier aplicación podría terminar así.
- Cómo crear una interfaz de usuario para mi aplicación de Android similar a la de la aplicación Duxter
- ¿Head First Java (2a edición) sigue siendo lo suficientemente bueno como para aprender antes de comenzar el desarrollo de Android considerando que hace referencia a Java 5.0?
- ¿Qué habilidades en mi equipo se necesitan para crear aplicaciones y juegos para Android?
- ¿Quién gana más de 50 $ por día con las aplicaciones de Android aquí en Quora?
- ¿De qué sirve usar en un archivo de diseño de Android?
C # es bastante similar a Java, por lo que si desea escribir una aplicación con cualquier complejidad real, le recomiendo que solo aprenda Java. No debería ser difícil para ti ya que ya conoces C #.
Además, para el registro, C # no se compila en código nativo. Se compila en un lenguaje intermedio similar al código de bytes de Java. Esto se debe a que C # también es un lenguaje administrado.
C / C ++ compila en código ‘nativo’ (ensamblador y luego código de máquina), y de hecho son compatibles con Android a través del uso del NDK, el ‘Kit de desarrollo nativo’. Puedes descargarlo aquí:
https://developer.android.com/to…
Si desea leer más sobre las diferencias entre compilar en idiomas intermedios y compilar en código nativo, esta pregunta SO es útil:
http://stackoverflow.com/questio…