Bien démarrer avec le développement Android natif sur Windows

Ce guide vous permettra de commencer à utiliser Windows pour créer des applications Android natives. Si vous préférez une solution multiplateforme, reportez-vous à Vue d’ensemble du développement Android sur Windows pour obtenir un résumé de certaines options.

La manière la plus directe de créer une application Android native consiste à utiliser Android Studio avec Java ou Kotlin, bien qu’il soit également possible d’utiliser C ou C++ pour le développement Android si vous avez un objectif spécifique. Les outils du kit SDK Android Studio compilent votre code, vos données et vos fichiers de ressources dans un package Android archivé, un fichier .apk. Un fichier APK contient tout le contenu d’une application Android et est le fichier que les appareils fonctionnant sous Android utilisent pour installer l’application.

Installer Android Studio

Android Studio est l’environnement de développement intégré officiel pour le système d’exploitation Android de Google. Télécharger la dernière version d’Android Studio pour Windows.

  • Si vous avez téléchargé un fichier exécutable (recommandé), double-cliquez pour le lancer.
  • Si vous avez téléchargé un fichier .zip, décompressez-le, copiez le dossier android-studio dans votre dossier Program Files, puis ouvrez le dossier bin android-studio > et lancez studio64.exe (pour les ordinateurs 64 bits) ou studio.exe (pour les ordinateurs 32 bits).

Suivez l’assistant Installation dans Android Studio et installez tous les packages de kit SDK recommandés. À mesure que de nouveaux outils et d’autres API sont disponibles, Android Studio vous avertit par une fenêtre contextuelle ou vérifie les mises à jour en sélectionnant le Guide de>Vérification des mises à jour.

Créer un projet

Sélectionnez Fichier>Nouveau>Nouveau projet.

Dans la fenêtre Choisir votre projet, vous pourrez choisir parmi ces modèles :

  • Activité de base : crée une application simple avec une barre de l’application, un bouton d’action flottant et deux fichiers de disposition : un pour l’activité et un pour séparer le contenu du texte.

  • Activité vide : crée une activité vide et un fichier de disposition unique avec un exemple de contenu texte.

  • Activité de navigation inférieure : crée une barre de navigation inférieure standard pour une activité. Pour en savoir plus, reportez-vous à la section Composants de navigation inférieurs des lignes directrices du Material Design de Google.

  • Les modèles sont couramment utilisés pour ajouter des activités aux modules d’application nouveaux et existants. Par exemple, pour créer un écran de connexion pour les utilisateurs de votre application, ajoutez une activité avec le modèle Activité de connexion. Pour en savoir plus sur la sélection d’une activité et sur l’ajout de code à partir d’un modèle, reportez-vous au Guide du développeur Android de Google.

Remarque

Le système d’exploitation Android est basé sur l’idée de composants et utilise les termes d’activité et d’intention pour définir les interactions. Une activité est une tâche unique et ciblée qu’un utilisateur peut effectuer. Une activité fournit une fenêtre permettant de créer l’interface utilisateur à l’aide de classes basées sur la classe View. Il existe un cycle de vie pour les activités dans le système d’exploitation Android, défini par six rappels : onCreate(), onStart(), onResume(), onPause(), onStop(), et onDestroy(). Les composants d’activité interagissent entre eux à l’aide d’objets d’intention. L’intention définit l’activité à lancer ou décrit le type d’action à effectuer (et le système sélectionne l’activité qui vous convient, qui peut même provenir d’une autre application). En savoir plus sur les activités, le cycle de vie des activités et les intentions dans le Guide du développeur Android de Google.

Java ou Kotlin

Développé chez Sun Microsystems et devenu langage de programmation en 1991, Java est aujourd’hui la propriété d’Oracle. Il est devenu l’un des langages de programmation les plus populaires et puissants avec l’une des plus grandes communautés de soutien dans le monde. Orienté objet et classe, Java est conçu pour avoir le minimum de dépendances au niveau de l’implémentation. La syntaxe est similaire à celle du C et du C++, mais elle comporte moins de fonctionnalités de bas niveau que ces deux langages.

Kotlin a été annoncé pour la première fois en tant que nouveau langage open source par JetBrains en 2011 et est reconnu comme alternative à Java dans Android Studio depuis 2017. En mai 2019, Google a désigné Kotlin comme le langage préféré des développeurs d’applications Android. En dépit de sa récente apparition, ce langage bénéficie d’une forte communauté de soutien et a été reconnu comme l’un des langages de programmation connaissant la croissance la plus rapide. Kotlin est multiplateforme, statiquement typé et conçu pour interopérer pleinement avec Java.

Java est plus largement utilisé pour un plus grand nombre d’applications et offre certaines fonctionnalités que Kotlin n’offre pas. En effet, les exceptions vérifiées, les types primitifs qui ne sont pas des classes, les membres statiques, les champs non privés, les types de caractères génériques et les opérateurs ternaires sont des exemples de fonctionnalités que Kotlin n’offre pas. Kotlin est spécifiquement conçu pour Android et recommandé par ce dernier. Il offre également certaines fonctionnalités que Java ne possède pas, telles que les références null contrôlées par le système de types, l’absence de types bruts, les tableaux invariants, les types de fonctions appropriés (par opposition aux conversions SAM de Java), la variance de site d’utilisation sans caractères génériques, les casts intelligents, etc. Pour en savoir plus, reportez-vous à la comparaison avec Java dans la documentation Kotlin.

Niveau d’API minimal

Vous devrez déterminer le niveau d’API minimum pour votre application. Ce niveau détermine la version d’Android que votre application prendra en charge. Les niveaux d’API inférieurs sont plus anciens et prennent donc généralement en charge un plus grand nombre d’appareils, tandis que les niveaux d’API supérieurs sont plus récents et offrent donc davantage de fonctionnalités.

Android Studio Minimum API selection screen

Sélectionnez le lien Aidez-moi à choisir pour ouvrir un tableau comparatif présentant la répartition de la prise en charge des appareils et les principales fonctionnalités associées à la version de la plateforme.

Android Studio Minimum API comparison screen

Prise en charge des applications instantanées et artefacts Androidx

Vous remarquerez peut-être une case à cocher pour la prise en charge des applications instantanées et une autre pour l’utilisation des artefacts androidx dans les options de création de votre projet. La prise en charge des applications instantanées n’est pas sélectionnée et l’utilisation d’artefacts androidx est recommandée par défaut.

Les applications instantanées de Google Play permettent d’essayer une application ou un jeu sans l’installer au préalable. Ces applications instantanées peuvent être publiées sur Play Store, Google Search, les réseaux sociaux et sur toute autre plateforme où vous partagez un lien. En cochant la case Prise en charge des applications instantanées, vous demandez à Android Studio d’inclure le kit SDK de développement instantané de Google Play dans votre projet. Pour en savoir plus sur les applications instantanées Google Play, reportez-vous au Guide du développeur Android.

AndroidX artifacts est la nouvelle version de la bibliothèque de support Android et offre une compatibilité descendante entre les versions Android. AndroidX fournit un espace de noms cohérent commençant par la chaîne androidx pour tous les paquets disponibles.

Remarque

AndroidX est désormais la bibliothèque par défaut. Pour décocher cette case et utiliser l’ancienne bibliothèque de prise en charge, vous devez supprimer la dernière version du kit de développement logiciel (SDK) Android Q. Reportez-vous à Désélectionner les artefacts Androidx sur StackOverflow pour obtenir des instructions, mais notez tout d’abord que les anciens packages de prise en charge des bibliothèques ont été remplacés par les packages androidx.* correspondants. Pour un mappage complet de toutes les anciennes classes et des artefacts de build avec les nouveaux, reportez-vous à Migration vers AndroidX.

Fichiers projet

La fenêtre Android Studio dédiée aux Projet contient les fichiers suivants (assurez-vous que la vue Android est sélectionnée dans le menu déroulant) :

app > java > com.example.myfirstapp > MainActivity

L’activité principale et le point d’entrée de votre application. Lorsque vous construisez et exécutez votre application, le système lance une instance de cette activité et charge sa présentation.

app > res > layout > activity_main.xml

Le fichier XML définissant la présentation de l’interface utilisateur (IU) de l’activité. Il contient un élément TextView avec le texte « Hello World »

app > manifests > AndroidManifest.xml

Fichier manifeste décrivant les caractéristiques fondamentales de l’application et de ses composants.

Gradle Scripts > build.gradle

Il existe deux fichiers portant ce nom : « Projet : ma première application », pour l’ensemble du projet et « Module : application », pour chaque module d’application. Un nouveau projet n’aura initialement qu’un seul module. Utilisez le fichier build.file du module pour contrôler la façon dont le plug-in Gradle génère votre application. En savoir plus sur la configuration de votre build dans le Guide du développeur Android.

Utiliser C ou C++ pour le développement de jeux Android

Le système d’exploitation Android est conçu pour prendre en charge les applications écrites en Java ou en Kotlin, en bénéficiant d’outils intégrés dans l’architecture du système. De nombreuses fonctionnalités du système, telles que l’interface utilisateur Android et la gestion des intentions, ne sont exposées qu’à travers des interfaces Java. Dans certains cas, vous pouvez souhaiter utiliser du code C ou C++ par le biais du kit de développement natif (NDK) d’Android, malgré les difficultés qui y sont associées. Le développement de jeux en est un exemple, puisque les jeux utilisent généralement une logique de rendu personnalisée écrite en OpenGL ou Vulkan et bénéficient d’une multitude de bibliothèques C axées sur le développement de jeux. L’utilisation de C ou C++ peut également vous permettre de réduire les performances supplémentaires d’un appareil pour obtenir une faible latence ou exécuter des applications nécessitant beaucoup de calcul, telles que des simulations physiques. Toutefois, le NDK n’est pas approprié pour la plupart des programmeurs Android novices. Sauf si vous avez un objectif spécifique en utilisant le kit NDK, nous vous recommandons de conserver Java, Kotlin ou l’une des infrastructures multiplateformes.

Pour créer un projet avec prise en charge C/C++ :

  • Dans la section Choisir votre projet de l’Assistant Android Studio, sélectionnez le type de projet C++ natif*. Sélectionnez Suivant, renseignez les champs restants, puis sélectionnez Suivant à nouveau.

  • Dans la section Personnaliser la prise en charge C++ de l’Assistant, vous pouvez personnaliser votre projet avec le champ C++ Standard. Utilisez la liste déroulante pour sélectionner la normalisation de C++ que vous souhaitez utiliser. La sélection de la chaîne d’outils par défaut utilise le paramètre CMake par défaut. Sélectionnez Terminer.

  • Une fois qu’Android Studio a créé votre projet, vous pouvez trouver un dossier cpp dans le volet projet qui contient les fichiers source natifs, les en-têtes, les scripts de construction pour CMake ou ndk-build, et les bibliothèques préconstruites qui font partie de votre projet. Vous pouvez également trouver un exemple de fichier source C++, native-lib.cpp, dans le dossier src/main/cpp/ qui fournit une fonction stringFromJNI() simple qui renvoie la chaîne « Hello from C++ ». En outre, vous devez voir un script de build CMake, CMakeLists.txt, dans le répertoire racine de votre module requis pour la création de votre bibliothèque native.

Pour en savoir plus sur l’ajout de code C et C++ à votre projet, reportez-vous au Guide du développeur Android. Pour rechercher des exemples Android NDK avec intégration C++, reportez-vous au référentiel d’exemples Android NDK sur GitHub. Pour compiler et exécuter un jeu C++ sur Android, utilisez l’API des services Google Play Game.

Recommandations en matière de conception

Les utilisateurs d’appareils s’attendent à ce que les applications aient un certain aspect et se comportent d’une certaine manière. Qu’ils utilisent le balayage, le toucher ou les commandes vocales, les utilisateurs auront des attentes spécifiques quant à l’aspect de votre application et à son utilisation. Ces attentes doivent rester cohérentes afin de réduire la confusion et la frustration. Android propose un guide pour ces attentes relatives à la plateforme et à l’appareil, qui combine la base Google Material Design pour les modèles visuels et de navigation, ainsi que des directives de qualité pour la compatibilité, les performances et la sécurité.

Pour en savoir plus, reportez-vous à la documentation sur la conception d’Android.

Système Fluent Design pour Android

Microsoft propose également une assistance à la conception, dans le but de fournir une expérience transparente dans l’ensemble du portefeuille d’applications mobiles de Microsoft.

Le système Fluent Design pour Android conçoit et crée des applications personnalisées qui sont à la fois natives Android et propres à Fluent.

Ressources supplémentaires