Version courte: travailler avec C ++ sur Android est possible et plus facile avec chaque version du SDK / NDK d'Android, mais c'est plus difficile que de travailler avec Java.
Version longue :
Pour chaque version, Google ajoute davantage de fonctionnalités à Android Native Development Kit et le rend de plus en plus indépendant du code Java.
Lisez http://developer.android.com/sdk/ndk/overview.html pour plus de détails:
Ecrivez une activité native qui vous permet d'implémenter les rappels de cycle de vie en code natif. Le SDK Android fournit la classe NativeActivity, qui est une classe pratique qui informe votre code natif de tous les rappels de cycle de vie d'activité (onCreate (), onPause (), onResume (), etc.). Vous pouvez implémenter les rappels dans votre code natif pour gérer ces événements lorsqu'ils se produisent. Les applications qui utilisent des activités natives doivent être exécutées sur Android 2.3 (API niveau 9) ou une version ultérieure. Vous ne pouvez pas accéder de manière native à des fonctionnalités telles que les fournisseurs de services et de contenus. Par conséquent, si vous souhaitez les utiliser ou toute autre API d'infrastructure, vous pouvez toujours écrire du code JNI.
Le problème est simplement que si vous utilisez le dernier NDK, vous ne pourrez pas déployer et beaucoup de versions Android non récentes.
Quoi qu’il en soit, même avec les versions précédentes de NDK, vous pouvez disposer d’un code Java minimal (pour interagir avec le système d’exploitation) et du code complet de l’application en C ++ ou de tout autre logiciel natif.
Des efforts sont également déployés pour aider les développeurs natifs à travailler pleinement en C ou C ++ via des plug-ins IDE comme Vs-Android, un plug-in pour Visual Studio 201x qui vous masque tout le processus de compilation et de génération: http://code.google.com / p / vs-android /
De même, si vous envisagez de transférer votre application vers un autre système d'exploitation, opter pour le cœur de votre application en C ++ (éventuellement avec un langage de script) est une bonne idée. Le temps de développement est simplement plus coûteux que d’autres alternatives - pour des raisons spécifiques au C ++ et à l’implémentation des outils de développement disponibles, par exemple, des temps de compilation trop longs peuvent nuire à votre productivité.
Cela dit, ce n’est pas le moyen le plus simple de travailler sur des applications mobiles.
La réponse est les deux.
la source