web-dev-qa-db-fra.com

Puis-je faire Android Programmation en C ++, C?

Puis-je faire Android programmation en C++, C? Si la réponse est "oui" alors dites comment? Et quelle est la procédure à mettre en place?

Je ne connais pas Obj-C, Java, mais je connais bien C, C++, Flash AS3, SDK publié par Google.

Veuillez ne pas parler du SDK NVDIA, il n'est pas entièrement développé :)

54
Chintan Trivedi

S'IL VOUS PLAÎT NOTE: LA RÉPONSE CI-DESSOUS IS HORRIBUELLEMENT MIS À JOUR, ET NE POURRAIT PAS ÊTRE ENTIÈREMENT CORRECTE.)

Vous pouvez programmer en C/C++ en utilisant Android NDK . Vous devrez encapsuler votre base de code c ++ dans une bibliothèque statique et la charger via un JNI wrapper Java.

Le NDK standard ne prend pas en charge RTTI et de nombreuses fonctionnalités du c ++ standard ne sont pas non plus disponibles 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 le prend en charge sur http://www.crystax.net/Android/ndk-r3.php . Cette version modifiée fonctionne sur tous les téléphones Android fonctionnant sur un processeur ARM.

Selon le 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 simplement une langue et écrivez la majorité de votre candidature dans cette langue; Les appels JNI peuvent réduire considérablement vos performances. Java n'est pas si difficile que ça - si vous savez programmer en C/C++. L'avantage de Java est que l'application peut fonctionner sur n'importe quel appareil fonctionnant sous Android, où les applications NDK dépendent de l'architecture pour laquelle elles ont été compilées.

57
Charles

Vous devez utiliser Android NDK pour développer des parties critiques de performances de vos applications en code natif. Voir Android NDK .

Quoi qu'il en soit, je ne pense pas que ce soit la bonne façon de développer une application entière.

15
hara

Oui, vous pouvez programmer Android des applications en C++ (pour la plupart), en utilisant Native Development Kit (NDK) , bien que Java soit le langage principal/préféré pour la programmation Android et votre code C++ devront probablement s'interfacer avec les composants Java, et vous devrez probablement lire et comprendre la documentation des composants Java également. Par conséquent, je vous conseille d'utiliser Java sauf si vous avez une base de code C++ existante que vous devez porter et qui n'est pas pratique à réécrire en Java.

Java est très similaire au C++, je ne pense pas que vous aurez du mal à le récupérer ... passer de C++ à Java est incroyablement facile; passer de Java à C++ est un peu plus difficile, mais pas terrible. Java pour les programmeurs C++ fait un très bon travail pour expliquer les différences. L'écriture de votre code Android dans Java sera plus idiomatique et vous facilitera également le processus de développement (car l'outillage du SDK Java Android est nettement meilleur que le outillage NDK correspondant)

En termes de configuration, Google fournit Android Studio IDE pour le développement Java et C++ Android (avec Gradle comme système de construction), mais vous êtes libre pour utiliser le IDE ou le système de construction que vous voulez tant que, sous le capot, vous utilisez le Android SDK/NDK pour produire les sorties finales.

Vous devriez également regarder MoSync , MoSync vous offre C/C++ standard, des API bien documentées faciles à utiliser et un IDE complet basé sur Eclipse. C'est maintenant un open source IDE toujours assez cool mais plus maintenu.

3
JPM

Vous pouvez également jeter un œil à C++ Builder XE6, et XE7 prend en charge Android en code c ++ et avec la bibliothèque Firemonkey.

http://www.embarcadero.com/products/cbuilder

Un moyen assez simple de démarrer et du code natif. Mais les binaires ont une grande taille.

2
Fady