-
NDK et optimisation
Bonjour,
Je voudrais avoir quelques précisions sur l'utilisation de NDK.
Bien sur Android c'est du java à la base mais d'après ce que j'ai compris c'est que l'on peut programmer en C++ grace à NDK.
Mais est ce vraiment optimisé? Je veux dire par la est-ce que c'est transparent pour nous mais le code est-il transformé en java par la suite?
Si c'est comme ca on ne gagne rien en optimisation à utiliser le NDK?
Si quelqu'un pouvait m'aider sur cette question?
D'avance merci.
-
Le code écrit en C/C++ reste ainsi , il n'est pas convertit et heureusement. Il est simplement exécuté par le système.
C'est grâce à JNI qu'on peut appeler ce code C/C++ depuis java et par exemple récupérer le retour d'une fonction.
Pour être le plus efficace possible on essai en général de limiter au maximum les aller retour entre java et C/C++
-
le NDK permet de créer des bibliothèques de fonctions natives (directement pour le processeur ARM), celles-ci sont appelée via le code Java, car il n'est pas possible de créer une application Android 100% native, elle démarre toujours sous Java (en fait Dalvik, mais qu'importe). Sous Windows c'est la notion de DLL (.so sous Linux ou Android)
Delphi propose aussi de développer en natif (ARM) mais à partir du langage Pascal, le compilateur se charge de la partie Java qui est totalement invisible dans le produit.
-
Merci pour les réponses.
L'utilisation des périphériques se fait elle toujours par le biais de fonctions java?