VEUILLEZ NOTER: LA RÉPONSE CI-DESSOUS EST HORRITEMENT SUPPRIMÉE ET PEUT NE PAS ÊTRE ENTIÈREMENT CORRECTE.
Vous pouvez programmer en C/C++ en utilisant le Android NDK. Vous devrez envelopper votre base de code C++ dans une bibliothèque statique et charger cela via un wrapper Java & JNI.
Le NDK standard ne prend pas en charge RTTI et une grande partie des fonctionnalités de C++ standard n'est pas disponible, telles que std :: string, etc. Pour résoudre ce problème, vous pouvez recompiler le NDK. Dmitry Moskalchuk fournit une version modifiée du NDK qui prend en charge ceci au http://www.crystax.net/android/ndk-r3.php. Cette version modifiée fonctionne sur tous les téléphones Android qui fonctionnent sur un processeur ARM. En fonction du type d'application, vous devez décider d'utiliser Java ou C/C++. J'utiliserais C/C++ pour tout ce qui nécessite une puissance de calcul et des jeux supérieurs à la moyenne - Java pour le reste.
Choisissez une langue et écrivez la majorité de votre application dans cette langue; Les appels JNI peuvent réduire vos performances de beaucoup. Java n'est pas si difficile - si vous savez programmer en C/C++. L'avantage de Java est que l'application peut s'exécuter sur n'importe quel appareil fonctionnant sous Android, alors que les applications NDK dépendent de l'architecture pour laquelle elle a été compilée.
"Java est très similaire à C++"? – alecov
@Alek quelle est votre objection? C'est vrai. Syntaxiquement, les deux langages sont très similaires, Java empruntant beaucoup au C++. –
@MichaelAaronSafyan Ce n'est vrai que tant que les langues sont comparées d'un point de vue très superficiel. La syntaxe est en effet similaire (comme c'est le cas pour beaucoup de langages populaires - C, C#, JS, PHP, ...), mais les paradigmes et les idiomes sont différents. Tandis que Java se concentre toujours sur les classes malgré les influences récentes des éléments fonctionnels, C++ a déjà fourni toute une gamme de mécanismes d'abstraction (fonctions globales, templates, typedef, foncteurs, surcharge d'opérateur, ...), ce qui conduit à un style de programmation différent. Par exemple. Les collections STL et Java sont structurées très différemment. – TheOperator