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.
La respuesta es ambas.
fuente