web-dev-qa-db-fra.com

Android développement utilisant C et C ++

Je suis développeur C, C++. Je m'intéresse au développement mobile. Je veux savoir comment développer des applications Android utilisant C et C++, j'ai lire qu'ils fournissent un kit pour les développeurs C, C++ mais il n'a pas toutes les fonctions à partir de Java kit. Dois-je opter pour le kit de développement C/C++ ou il vaut mieux apprendre Java car ils pourraient ne pas fournir toutes les fonctionnalités à l'avenir ?

47
user4124

Version courte: travailler avec C++ sur Android est possible et plus facile avec chaque Android SDK/NDK version, mais c'est plus difficile que de travailler avec Java.


Version longue :

Pour chaque version, Google ajoute plus de fonctionnalités à Android Kit de développement natif 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:

Écrivez une activité native, qui vous permet d'implémenter les rappels du cycle de vie en code natif. Le SDK Android fournit la classe NativeActivity, qui est une classe de commodité qui informe votre code natif de tous les rappels du cycle de vie des activités (onCreate (), onPause (), onResume (), etc.). Vous pouvez implémentez 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 version ultérieure. Vous ne pouvez pas accéder à des fonctionnalités telles que les services et les fournisseurs de contenu en mode natif, donc si vous souhaitez les utiliser ou toute autre API de framework, vous pouvez toujours écrire du code JNI pour le faire.

Le problème est simplement que si vous utilisez le NDK le plus récent, vous ne pourrez pas déployer et beaucoup de versions non récentes Android Android.

Quoi qu'il en soit, même avec les versions précédentes de NDK, vous pouvez avoir un minimum Java (pour interagir avec le système d'exploitation) et le code d'application complet en C++ ou quoi que ce soit natif.

Il y a aussi des efforts pour aider les développeurs natifs à travailler pleinement en C ou C++ via IDE plugins comme ce Vs-Android qui est un plugin pour Visual Studio 201x vous cachant tout le processus de compilation et de génération: http://code.google.com/p/vs-Android/

De plus, si vous prévoyez de porter votre application vers un autre système d'exploitation, opter pour C++ pour le cœur de votre application (peut-être avec un langage de script en haut) est une bonne idée. Le temps de développement est juste plus cher que les autres alternatives - pour des raisons spécifiques à C++ et ses implémentations d'outils de développement disponibles, par exemple trop de temps de compilation peuvent tuer votre productivité effective.

Cela dit, ce n'est pas le moyen le plus simple de travailler sur des applications mobiles.

33
Klaim

Je vous conseillerais d'opter pour C++ si vous avez un plan ferme pour entrer dans le développement de jeux. Sinon, il vaut mieux opter pour Java. Voici une bonne introduction pour vous sur le site officiel Android:

Développement de jeux pour Android: une introduction rapide

REMARQUE: veuillez lire l'étape 2 (Étape 2: choisir une langue) du didacticiel.

Si vous ne connaissez pas Java du tout et que vous souhaitez développer des applications sur Android pour le long terme, il est essentiel d'apprendre Java. Il y a d'excellents tutoriels donnés sur le site officiel. Il y a un joli livre que vous pouvez saisir pour apprendre spécifiquement pour Android développement: le voici: Learn Java for Android

8
Maxood

Dois-je opter pour le kit de développement C/C++ ou il vaut mieux apprendre Java car ils pourraient ne pas fournir toutes les fonctionnalités à l'avenir?

La réponse est les deux.

  • Si vous écrivez des applications où les performances sont une préoccupation majeure, elles doivent presque être dans autre chose que Java. (C/C++ est le plus populaire) Les jeux sont le gros lot, mais il y en a d'autres.
  • Si vous effectuez un développement Android Android, vous devez également prendre le temps d'apprendre Java à un niveau raisonnable).
7
user606723