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 en el código Java.
Lea enlace para obtener más detalles:
Escriba una actividad nativa, que le permita implementar el ciclo de vida
devoluciones de llamada en código nativo. El SDK de Android proporciona la NativeActivity
clase, que es una clase de conveniencia que notifica a su código nativo de
cualquier actividad devoluciones de llamada del ciclo de vida (onCreate (), onPause (), onResume (),
etc). Puede implementar las devoluciones de llamada en su código nativo para manejar
estos eventos cuando ocurren Aplicaciones que utilizan actividades nativas.
debe ejecutarse en Android 2.3 (API nivel 9) o posterior. No se puede acceder
características tales como servicios y proveedores de contenido de forma nativa, por lo que si
desea utilizarlos o cualquier otra API de marco, aún puede escribir JNI
código para hacerlo.
El problema es que si utilizas el NDK más reciente, no podrás implementar y muchas versiones de Android no recientes.
De todos modos, incluso con las versiones anteriores del 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: enlace
Además, si planea portar su aplicación a otro sistema operativo, ir con C ++ para el núcleo de su aplicación (tal vez con un lenguaje de scripting en la parte superior) es una buena idea. Es simplemente 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.