Qu'est-ce que le Android NDK (kit de développement natif)? Comment l'utiliser? Pourquoi l'utiliser? Pourquoi l'utiliser?
Le NDK (Native Development Kit) est un outil qui vous permet de programmer en C/C++ pour les appareils Android. Il est destiné à être intégré au SDK (décrit comme un "outil complémentaire") et utilisé uniquement pour les parties critiques d'un projet en termes de performances. Voir ici pour plus d'informations.
NDK peut améliorer les performances des applications. Cela est généralement vrai pour de nombreuses applications liées au processeur. De nombreuses applications multimédia et jeux vidéo utilisent du code natif pour les tâches gourmandes en ressources processeur. Les améliorations de performances peuvent provenir de trois sources. Tout d'abord, le code natif est compilé en un code binaire et s'exécute directement sur le système d'exploitation, tandis que le code Java est traduit en Java octet-code et interprété par Dalvik Virtual Machine (VM) . À partir de Android 2.2 ou supérieur, un compilateur Just-In-Time (JIT) est ajouté à Dalvik VM pour analyser et optimiser le code octet Java pendant l'exécution du programme (par exemple, JIT peut compiler une partie du code octet en code binaire avant son exécution). Mais dans de nombreux cas, le code natif est toujours plus rapide que le code Java.
Le code Java est exécuté par Dalvik VM sur Android. Dalvik VM est spécialement conçu pour les systèmes aux ressources matérielles limitées (espace mémoire, vitesse du processeur, etc.).
La deuxième source d’amélioration des performances chez NDK est que le code natif permet aux développeurs d’utiliser certaines fonctionnalités de processeur qui ne sont pas accessibles depuis le SDK Android, telles que NEON, un Single Instruction Multiple Technologie de données (SIMD) permettant de traiter plusieurs éléments de données en parallèle. Un exemple de tâche de codage particulier est la conversion de couleur pour une image vidéo ou une photo. Supposons que nous convertissions une photo de 1920x1280 pixels de l'espace colorimétrique RVB en un espace colorimétrique YCbCr. L’approche naïve consiste à appliquer une formule de conversion à chaque pixel (soit plus de deux millions de pixels). Avec NEON, nous pouvons traiter plusieurs pixels à la fois pour réduire le temps de traitement.
Le troisième aspect est que nous pouvons optimiser le code critique au niveau de l’Assembly, ce qui est une pratique courante dans le développement de logiciels de bureau.
Inconvénient
NDK ne peut pas accéder directement à de nombreuses API disponibles dans le SDK Android, et le développement dans NDK introduira toujours une complexité supplémentaire dans votre application.
Le Android NDK est un outil associé utilisé uniquement avec le Android SDK, qui permet aux développeurs d’applications de créer des parties critiques de leurs applications en termes de performances en utilisant un langage natif ( C/C++) code.
Cela offre des avantages sous forme de réutilisation du code existant et d’accélération de la vitesse.
Veuillez passer par les liens ci-dessous.
Le NDK Android est un outil complémentaire au SDK Android qui vous permet de: Construisez des parties critiques de vos applications en code natif. Il fournit des en-têtes et bibliothèques qui vous permettent de créer des activités, de gérer les entrées utilisateur, d'utiliser des capteurs matériels, d'accéder aux ressources de l'application, etc., lors de la programmation en C ou C++ . Si vous écrivez du code natif, vos applications sont toujours regroupées dans un fichier .apk et elles s'exécutent toujours à l'intérieur d'une machine virtuelle sur le périphérique. Le modèle d'application fondamental Android ne change pas.
Les liens suivants répondent également à votre question:
Quand développer en code natif
Le Android NDK est un jeu d’outils qui vous permet d’incorporer des composants qui utilisent du code natif dans vos applications Android.
Les applications Android s'exécutent sur la machine virtuelle Dalvik. Le NDK vous permet d'implémenter des parties de vos applications à l'aide de langages à code natif tels que C et C++. Cela peut présenter des avantages pour certaines classes d'applications, sous la forme d'une réutilisation du code existant et, dans certains cas, d'une vitesse accrue.
Source: http://developer.Android.com/sdk/ndk/overview.html
Le Android NDK est un outil complémentaire au SDK Android qui vous permet de créer des parties critiques de vos applications en code natif. Il fournit des en-têtes et des bibliothèques qui vous permettent de créer des activités, de gérer les entrées utilisateur, d’utiliser des capteurs matériels, d’accéder aux ressources d’application, etc. lors de la programmation en C ou C++. une machine virtuelle sur le périphérique. Le modèle d'application fondamental Android ne change pas.
NDK est un ensemble d’outils qui vous permet d’implémenter des parties de votre application à l’aide de langages de code natif tels que C et C++ .... Vérifiez que cela https://developer.Android.com/tools/sdk/ ndk/index.html
Android NDK (kit de développement natif)
Android Native Development Kit (NDK) permet aux développeurs d'écrire du code en C/C++ compilé en code natif
Pourquoi devrait-on l'utiliser?
Le code source est compilé directement dans le code machine de la CPU (et non dans un langage intermédiaire, comme avec Java), les développeurs peuvent ainsi obtenir les meilleures performances.
Comment peut-on l'utiliser?
Voici les meilleurs tutoriels
https://developer.Android.com/ndk/index.html
https://www.androidauthority.com/Android-ndk-everything-need-know-677642/
https://www.ntu.edu.sg/home/ehchua/programming/Android/Android_NDK.html
NDK est juste un ensemble d’outils qui vous permet d’écrire des codes C/C++ pour votre application. Par exemple, supposons que vous vouliez ajouter une fonction/performance critique à votre application et que vous voulez l’écrire en C/C++, puis Eclipse ou toute autre IDE ne vous permettra pas d'écrire votre C/C++ et dans ce cas, vous devez utiliser NDK et l'intégrer à votre application.