Premiers pas avec le NDK

Le kit de développement natif (NDK) est un ensemble d'outils qui vous permet d'utiliser le code C et C++ avec Android. Il fournit également des bibliothèques de plates-formes dont vous pouvez vous servir pour gérer les activités natives et pour accéder à des composants d'appareils physiques, tels que les capteurs et la saisie tactile. Le NDK ne convient généralement pas aux programmeurs Android débutants qui ont besoin d'utiliser uniquement du code Java et des API de framework pour développer leurs applications. Toutefois, il peut être utile dans les cas où vous devez effectuer les opérations suivantes :

  • Démultipliez les performances d'un appareil pour obtenir une faible latence ou exécuter des applications qui utilisent beaucoup de ressources de calcul, telles que des jeux ou des simulations physiques.
  • Réutilisez vos propres bibliothèques C ou C++ ou celles d'autres développeurs.

Avec Android Studio 2.2 ou version ultérieure, vous pouvez tirer parti du NDK pour compiler le code C et C++ dans une bibliothèque native, puis l'empaqueter dans votre fichier APK à l'aide de Gradle, le système de compilation intégré à l'IDE. Votre code Java peut ensuite appeler des fonctions de votre bibliothèque native via le framework Java Native Interface (JNI). Pour en savoir plus sur Gradle et le système de compilation Android, consultez Configurer votre build.

L'outil de compilation par défaut d'Android Studio permettant de compiler des bibliothèques natives est CMake. Android Studio est également compatible avec ndk-build en raison du grand nombre de projets existants qui utilisent le kit d'outils de compilation. Toutefois, si vous créez une bibliothèque native, vous devez utiliser CMake.

Ce guide vous fournit les informations nécessaires pour vous familiariser avec le NDK dans Android Studio. Si vous n'avez pas la dernière version d'Android Studio, téléchargez-la et installez-la maintenant.

À l'attention des utilisateurs de la version expérimentale de Gradle : envisagez de migrer vers la version 2.2.0 ou ultérieure du plug-in et d'utiliser CMake ou ndk-build pour créer vos bibliothèques natives dans les cas suivants : votre projet natif utilise déjà CMake ou ndk-build, vous préférez utiliser une version stable du système de compilation Gradle ou vous souhaitez exploiter des outils complémentaires tels que CCache. Dans le cas contraire, vous pouvez continuer à utiliser la version expérimentale de Gradle et du plug-in Android.

Télécharger le NDK et les outils

Pour compiler et déboguer le code natif de votre application, vous avez besoin des composants suivants :

  • Le kit de développement Android (NDK) natif : ensemble d'outils qui vous permet d'utiliser le code C et C++ avec Android.
  • CMake : outil de compilation externe qui fonctionne avec Gradle pour créer votre bibliothèque native. Vous n'avez pas besoin de ce composant si vous prévoyez uniquement d'utiliser ndk-build.
  • LLDB : débogueur utilisé par Android Studio pour déboguer le code natif.

Pour en savoir plus sur l'installation de ces composants, consultez Installer et configurer le NDK et CMake.

Créer ou importer un projet natif

Une fois que vous avez configuré Android Studio, il vous suffit de créer un projet compatible C/C++. Toutefois, si vous souhaitez ajouter ou importer du code natif dans un projet Android Studio existant, vous devez suivre quelques étapes élémentaires :

  1. Créez des fichiers sources natifs et ajoutez-les à votre projet Android Studio.
    • Vous pouvez ignorer cette étape si vous disposez déjà d'un code natif ou si vous souhaitez importer une bibliothèque native prédéfinie.
  2. Créez un script de compilation CMake pour indiquer à CMake comment créer vos sources natives dans une bibliothèque. Vous aurez également besoin de ce script de compilation si vous effectuez l'importation et l'association avec des bibliothèques de plate-forme ou des bibliothèques prédéfinies.
    • Vous pouvez ignorer cette étape si votre bibliothèque native existante dispose déjà d'un script de compilation CMakeLists.txt, ou si elle utilise ndk-build et inclut un script de compilation Android.mk.
  3. Associez Gradle à votre bibliothèque native en fournissant un chemin d'accès à votre fichier de script CMake ou ndk-build. Gradle utilisera le script de compilation pour importer le code source dans votre projet Android Studio et empaqueter votre bibliothèque native (fichier SO) dans le fichier APK.

    Remarque : Si votre projet existant utilise l'outil obsolète ndkCompile, vous devrez ouvrir le fichier build.properties et supprimer la ligne de code suivante avant de configurer Gradle afin de pouvoir utiliser CMake ou ndk-build :

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. Cliquez sur Exécuter Sélectionner Exécuter, puis exécuter l'application depuis le menu principal pour créer et exécuter votre application. Gradle ajoute votre processus CMake ou ndk-build en tant que dépendance pour compiler, créer et empaqueter votre bibliothèque native avec le fichier APK.

Une fois que votre application s'exécute sur un appareil physique ou dans l'émulateur, vous pouvez utiliser Android Studio pour déboguer votre application. Sinon, pour en savoir plus sur le NDK et ses composants, consultez la page Concepts.