Desarrollo de Android usando C y C ++ [cerrado]

47

Soy un desarrollador de C, C ++. Estoy interesado en el desarrollo móvil. Quiero saber cómo puedo desarrollar aplicaciones de Android usando C y C ++, he leído que proporcionan un kit para desarrolladores de C, C ++ pero no tiene todas las funciones a partir del kit de Java. ¿Debo optar por el kit de desarrollo C / C ++ o es mejor aprender Java ya que es posible que no proporcionen toda la funcionalidad en el futuro?

fuddin
fuente

Respuestas:

33

Versión corta: trabajar con C ++ en Android es posible y más fácil con cada versión de Android SDK / NDK, pero es más difícil que trabajar con Java.


Versión larga :

Para cada versión, Google agrega más funcionalidades al Kit de desarrollo nativo de Android y lo hace cada vez más independiente del código Java.

Lea http://developer.android.com/sdk/ndk/overview.html para más detalles:

Escriba una actividad nativa, que le permita implementar las devoluciones de llamada del ciclo de vida en código nativo. El SDK de Android proporciona la clase NativeActivity, que es una clase conveniente que notifica a su código nativo de cualquier devolución de llamada del ciclo de vida de la actividad (onCreate (), onPause (), onResume (), etc.). Puede implementar las devoluciones de llamada en su código nativo para manejar estos eventos cuando ocurran. Las aplicaciones que usan actividades nativas deben ejecutarse en Android 2.3 (API Nivel 9) o posterior. No puede acceder a características tales como Servicios y Proveedores de contenido de forma nativa, por lo que si desea usarlos o cualquier otra API de marco, aún puede escribir código JNI para hacerlo.

El problema es que si usa el NDK más reciente, no podrá implementar ni muchas versiones de Android no recientes.

De todos modos, incluso con versiones anteriores de NDK, puede tener un código Java mínimo (para interactuar con el sistema operativo) y el código completo de la aplicación en C ++ o cualquier cosa nativa.

También hay esfuerzos para ayudar a los desarrolladores nativos a trabajar completamente en C o C ++ a través de complementos IDE como este Vs-Android que es un complemento para Visual Studio 201x que le oculta todo el proceso de compilación y generación: http://code.google.com / p / vs-android /

Además, si planea portar su aplicación a otro sistema operativo, es una buena idea usar C ++ para el núcleo de su aplicación (tal vez con un lenguaje de script en la parte superior). Es más costoso en tiempo de desarrollo que otras alternativas, por razones específicas de C ++ y sus implementaciones de herramientas de desarrollo disponibles, por ejemplo, demasiados tiempos de compilación pueden matar su productividad efectiva.

Dicho esto, esa no es la forma más fácil de trabajar en aplicaciones móviles.

Klaim
fuente
8

Te aconsejaría que optes por C ++ si tienes un plan firme para entrar en Desarrollo de juegos. Pero si no, será mejor que vayas por Java. Aquí hay un buen manual para usted en el sitio web oficial de Android:

Desarrollo de juegos para Android: una guía rápida

NOTA: Lea el paso 2 (Paso dos: Elija un idioma) del tutorial.

Si no conoce Java en absoluto y le gusta desarrollar aplicaciones en Android a largo plazo, es esencial aprender Java. Hay excelentes tutoriales en el sitio web oficial. Hay un buen libro que puede obtener para aprender específicamente para el desarrollo de Android: Aquí está: Aprenda Java para el desarrollo de Android

Maxood
fuente
La persona que publicó la pregunta ya conoce C ++, entonces, ¿cuál es el punto de su consejo?
abhi
7

¿Debo optar por el kit de desarrollo C / C ++ o es mejor aprender Java ya que es posible que no proporcionen toda la funcionalidad en el futuro?

La respuesta es ambas.

  • Si está escribiendo aplicaciones donde el rendimiento es una preocupación principal, casi tienen que estar en algo que no sea Java. (C / C ++ es el más popular) Los juegos son el elemento más importante, pero hay otros.
  • Si está haciendo un desarrollo de Android, también debe tomarse el tiempo para aprender Java a un nivel razonable.
usuario606723
fuente
No entiendo a qué te refieres con hacer que el desarrollador de Android requiera Java, sin embargo, si quieres hacer un desarrollador de juegos de Android, usa c / c ++. ¿Por qué no usar c / c ++ todo el tiempo?
Lance Pollard