92 votes

Pourquoi une application Android ne pourrait-elle pas être écrite en C/C++ parce que vous "préférez simplement programmer en C/C++" ?

Mise à jour de (par souci de clarté et pour réduire les ambiguïtés) :

Je vais commencer à bricoler des applications Android. J'avais prévu de les écrire en C++ en utilisant le NDK (puisque j'ai plus d'expérience en C++ et que je le préfère à Java) mais je suis tombé sur ce qui suit sur le site de l Page Android NDK :

vous ne devez utiliser le NDK que s'il est essentiel à votre application. application- jamais parce que vous préférez simplement programmer en C/C++.

J'avais l'impression que vous deviez utiliser la langue que vous préférez, pour autant qu'elle soit adaptée au poste. Quelqu'un pourrait-il expliquer pourquoi il est si fortement déconseillé d'utiliser C/C++ pour le développement Android ?


Original :

Je vais commencer à bricoler des applications mobiles, en particulier Android qui est le système d'exploitation de mon téléphone actuel, et je me demandais si écrire l'application en C++ (ou au moins le noyau, puis l'envelopper en Java) était une option acceptable.

Je suis étudiant en informatique et j'ai suivi trois cours de C++ (intro, intermédiaire, OOP, et je suivrai un cours de STL au printemps) et un seul cours de Java (intermédiaire). De ce fait, je suis plus à l'aise avec le C++ et je le préfère à Java. Je suis tombé sur le texte suivant sur le site Page Android NDK :

L'utilisation de code natif sur Android n'entraîne généralement pas d'amélioration notable des performances. amélioration sensible des performances, mais elle augmente toujours la complexité de votre application. En général, vous ne devriez utiliser le NDK que s'il est essentiel pour votre application. application- jamais parce que vous préférez simplement programmer en C/C++.

  • J'avais l'impression que vous deviez utiliser la langue qui convient à l'emploi ainsi qu'une langue que vous connaissez bien.
  • Je peux vouloir porter l'application sur une autre plateforme mobile, telle que comme iOS, qui supporte C++ mais pas java.
  • Alors que Java est un langage de haut niveau et devrait donc permettre un développement plus rapide, j'ai l'impression que le développement serait plus lent car je devrais réapprendre presque tout (puisque je n'ai suivi qu'un cours sur le langage) le langage)

Tout conseil serait très apprécié.

ps : beaucoup de réponses sur ce sujet datent d'il y a plusieurs années et il y a très peu de réponses qui mentionnent que le NDK permet le développement d'applications natives complètes sur Android 2.3 et plus récent.

1 votes

"Acceptable" est un mot étrange - c'est certainement possible via le NDK ...

1 votes

Vous feriez probablement mieux de prendre le taureau par les cornes et d'apprendre Java. La boîte à outils Android est vraiment destinée à être utilisée à partir de Java, et le temps que vous économiseriez en connaissant déjà le C++ serait dépensé à essayer de comprendre comment faire fonctionner tous les trucs Android à partir du C++. Considérez cela comme une opportunité d'apprentissage :)

0 votes

Personnellement, je mordrais la balle comme Jeremy l'a dit et j'apprendrais simplement ce que vous devez faire avec Java. En fait, ça ne devrait pas être que Il est important que vous l'appreniez relativement vite.

3voto

stng Points 108

Je ne vois aucune raison de ne pas utiliser C++ pour le développement normal d'Android, si vous avez une grande expérience de travail en C++ et avec des systèmes d'exploitation complexes comme Windows ou autres, alors vous pouvez appréhender Android rapidement et il n'est pas aussi compliqué que les autres systèmes d'exploitation. Apprendre Java ou travailler sans l'apprendre serait plus frustrant et complexe !

3voto

Dan Points 1

Je dirais qu'il faut utiliser Java pour l'application principale. Mais si vous avez du code c++ à porter ou une bibliothèque dont vous avez besoin qui est efficacement implémentée en c++, alors utilisez ndk pour ces bits.

4 votes

Pourquoi devrait-il utiliser Java alors ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X