Puis-je faire de la programmation Android en C ++, C?

Puis-je faire de la programmation Android en C ++, C? Si la réponse est “oui” alors s’il vous plaît dites comment? Et quelle est la procédure à suivre?

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

S’il vous plaît ne pas dire à propos de NVDIA SDK, il n’est pas entièrement développé 🙂

S’IL VOUS PLAÎT NOTE: LA RÉPONSE CI-DESSOUS EST HORRIVEMENT DÉFINI, ET POURRAIT NE PAS ÊTRE ENTIÈREMENT CORRECTE.

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

Le NDK standard ne prend pas en charge RTTI et de nombreuses fonctionnalités du standard c ++ ne sont pas non plus disponibles, telles que std :: ssortingng, etc. Pour résoudre ce problème, vous pouvez recomstackr le NDK. Dmitry Moskalchuk fournit une version modifiée du NDK qui prend cela en charge à l’ adresse http://www.crystax.net/android/ndk-r3.php . Cette version modifiée fonctionne sur tous les téléphones Android exécutés 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 rest.

Choisissez 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 – si vous savez programmer en C / C ++. L’avantage de Java est que l’application peut s’exécuter sur tout périphérique exécutant Android, où les applications NDK dépendent de l’architecture pour laquelle elles ont été compilées.

Vous devez utiliser Android NDK pour développer des parties critiques 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.

Oui, vous pouvez programmer des applications Android en C ++ (la plupart du temps) à l’aide du NDK (Native Development Kit) , bien que Java soit le langage principal / préféré pour la programmation d’Android et que votre code C ++ doive probablement s’interfacer avec les composants Java. et vous aurez probablement besoin de lire et de comprendre la documentation des composants Java. Par conséquent, je vous conseille d’utiliser Java, sauf si vous avez un code C ++ existant que vous devez porter et qui n’est pas pratique à réécrire en Java.

Java est très similaire à C ++, je ne pense pas que vous aurez du mal à le ramasser … 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 en Java sera plus idiomatique et facilitera également le processus de développement (les outils pour le SDK Java Android étant nettement meilleurs que les outils NDK correspondants).

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

Vous devriez également regarder MoSync , MoSync vous offre des API C / C ++ standard, faciles à utiliser et bien documentées, ainsi qu’un environnement de développement intégré basé sur Eclipse. C’est maintenant un IDE à source ouverte toujours très cool mais pas maintenu.

Vous pouvez également consulter C ++ Builder XE6 et XE7 prend en charge Android en code C ++, ainsi que la bibliothèque Firemonkey.

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

Moyen assez simple pour démarrer et code natif. Mais les binarys ont une grande taille.

Il y a plus d’une bibliothèque pour travailler en C ++ dans la programmation Android:

  1. C ++ – qt (produit Nokia, également disponible sous LGPL)
  2. C ++ – Wxwidget (disponible sous GPL)