Présentation des projets

Un projet dans Android Studio contient tout ce qui définit votre espace de travail pour une application, en allant du code source et des composants au code de test et aux configurations de compilation.

Lorsque vous lancez un nouveau projet, Android Studio crée la structure nécessaire pour tous vos fichiers et les rend visibles dans la fenêtre Project (Projet) d'Android Studio. Pour ouvrir cette fenêtre, sélectionnez View > Tool Windows > Project (Affichage > Fenêtres d'outils > Projet).

Cette page présente les principaux composants de votre projet.

Modules

Remarque : Un module est un ensemble de fichiers sources et de paramètres de compilation permettant de diviser le projet en unités fonctionnelles distinctes. Votre projet peut avoir un ou plusieurs modules, et un module peut utiliser un autre module comme dépendance. Vous pouvez compiler, tester et déboguer chaque module indépendamment.

Les modules supplémentaires sont utiles pour créer des bibliothèques de code dans votre propre projet ou lorsque vous souhaitez créer différents ensembles de code et de ressources pour différents types d'appareils, tels que les téléphones et les accessoires connectés, tout en conservant tous les fichiers dans le même projet et en partageant du code.

Pour ajouter un module à votre projet, cliquez sur File > New > New Module (Fichier > Nouveau > Nouveau module).

Android Studio propose plusieurs types de modules distincts :

Module d'application Android
Fournit un conteneur pour le code source, les fichiers de ressources et les paramètres de votre application, tels que le fichier de compilation au niveau du module et le fichier manifeste Android. Lorsque vous créez un projet, le module d'application par défaut est nommé "app".

Android Studio propose les types de modules d'application suivants :

  • Téléphone et tablette
  • Automobile
  • Wear OS
  • Télévision
  • Générateur de profil de référence
  • Benchmark

Chaque module fournit des fichiers essentiels et des modèles de code adaptés au type d'appareil ou d'application correspondant.

Pour plus d'informations sur l'ajout d'un module, consultez Ajouter un module pour un nouvel appareil.

Module de fonctionnalité
Représente une fonctionnalité modularisée de votre application pouvant bénéficier de Play Feature Delivery. Par exemple, grâce aux modules de fonctionnalités, vous pouvez proposer à vos utilisateurs certaines fonctionnalités de votre application à la demande ou sous forme d'expériences instantanées via Google Play Instant.

Android Studio propose les types de modules de fonctionnalités suivants :

  • Module de fonctionnalités dynamiques
  • Module de bibliothèque de fonctionnalités dynamiques instantanées

Pour en savoir plus, consultez la section Play Feature Delivery.

Module de bibliothèque
Fournit un conteneur pour votre code réutilisable, que vous pouvez utiliser comme dépendance dans d'autres modules d'application ou importer dans d'autres projets. Structurellement, un module de bibliothèque est identique à un module d'application, mais lorsqu'il est compilé, il crée un fichier d'archive de code au lieu d'un APK. Il ne peut donc pas être installé sur un appareil.

Dans la fenêtre Create New Module (Créer un module), Android Studio propose les types de modules de bibliothèque suivants :

  • Android Library (Bibliothèque Android) : ce type de bibliothèque peut contenir tous les types de fichiers compatibles avec un projet Android, à l'exception du code C++ natif, y compris le code source Java et Kotlin, les ressources et les fichiers manifestes. Le résultat de la compilation est un fichier d'archive Android (AAR) que vous pouvez ajouter en tant que dépendance pour vos modules d'application Android.
  • Android Native Library (Bibliothèque native Android) : contient tous les types de fichiers compatibles avec un projet Android, comme une bibliothèque Android. Toutefois, les bibliothèques natives Android peuvent également contenir du code source C++ natif. Le résultat de la compilation est un fichier d'archive Android (AAR) que vous pouvez ajouter en tant que dépendance pour vos modules d'application Android.
  • Java or Kotlin Library (Bibliothèque Java ou Kotlin) : ne contient que des fichiers sources Kotlin ou Java. Le résultat de la compilation est un fichier d'archive Java (JAR) que vous pouvez ajouter en tant que dépendance pour vos modules d'application Android ou d'autres projets Kotlin ou Java.

Les modules sont parfois appelés sous-projets, car Gradle utilise également le terme "projets" pour y faire référence.

Lorsque vous créez un module de bibliothèque et que vous souhaitez l'ajouter en tant que dépendance à votre module d'application Android, vous devez le déclarer comme suit :

Groovy

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

Fichiers de projet

Par défaut, Android Studio affiche les fichiers de votre projet dans la vue Android. Cette vue ne reflète pas la hiérarchie réelle des fichiers sur le disque. Au lieu de cela, elle est organisée par modules et par types de fichiers pour simplifier la navigation entre les fichiers sources clés de votre projet, et masque certains fichiers ou répertoires rarement utilisés.

Certaines différences structurelles entre la vue Android et la structure sur disque sont dues au fait que la vue Android :

  • affiche tous les fichiers de configuration associés à la compilation d'un projet dans un groupe Script Gradle de premier niveau ;
  • Affiche tous les fichiers manifestes de chaque module dans un groupe au niveau du module lorsque vous disposez de fichiers manifestes différents pour les différents types de produit et types de compilation.
  • affiche tous les autres fichiers de ressources dans un seul groupe, plutôt que dans des dossiers différents selon le qualificateur de ressource. Par exemple, toutes les versions de densité de votre icône de lanceur sont visibles côte à côte.

Dans chaque module d'application Android, les fichiers sont répartis dans les groupes suivants :

manifests
Contient le fichier AndroidManifest.xml.
java
Contient les fichiers de code source Kotlin et Java, répartis par noms de packages, y compris le code de test JUnit.
res
Contient toutes les ressources sans code, telles que les chaînes d'UI et les images bitmap, divisées en sous-répertoires correspondants. Pour en savoir plus sur les différents types de ressources disponibles, consultez la section Présentation des ressources d'application.

Vue du projet

Pour afficher la structure de fichiers réelle du projet, y compris tous les fichiers masqués dans la vue Android, sélectionnez Project (Projet) dans le menu déroulant en haut de la fenêtre Project.

Lorsque vous sélectionnez la vue Project, vous pouvez voir beaucoup plus de fichiers et de répertoires. Par exemple :

module-name/
build/
Contient les résultats de la compilation.
libs/
Contient des bibliothèques privées.
src/
Contient tous les fichiers de code et de ressource du module dans les sous-répertoires suivants :
androidTest/
Contient du code pour les tests d'instrumentation exécutés sur un appareil Android. Pour en savoir plus, consultez Tester dans Android Studio.
cpp/
Contient du code C ou C++ natif utilisant l'interface JNI (Java Native Interface). Pour en savoir plus, consultez la documentation du NDK Android.
main/
Contient les fichiers d'ensemble de sources "main" : le code et les ressources Android partagés par toutes les variantes de compilation (les fichiers d'autres variantes de compilation se trouvent dans des répertoires frères, tels que src/debug/ pour le type de version de débogage).
AndroidManifest.xml
Décrit la nature de l'application et chacun de ses composants. Pour en savoir plus, consultez la présentation du fichier manifeste d'application.
java/
Contient des sources de code Kotlin ou Java, ou les deux si votre application contient à la fois du code source Kotlin et Java.
kotlin/
Ne contient que des sources de code Kotlin.
res/
Contient les ressources d'application, telles que les fichiers drawables et les fichiers de chaînes d'UI. Pour en savoir plus, consultez la présentation des ressources d'application.
assets/
Contient les fichiers à compiler en tant que fichier APK tel quel. Il s'agit, par exemple, d'un emplacement qui convient aux textures et aux données de jeu. Vous pouvez parcourir ce répertoire de la même manière qu'un système de fichiers classique à l'aide d'URI, et lire les fichiers comme un flux d'octets à l'aide de AssetManager.
test/
Contient du code pour les tests locaux exécutés sur votre JVM hôte.
build.gradle ou build.gradle.kts (module)
Cela définit les configurations de compilation spécifiques au module. Le nom de fichier correct est build.gradle si vous utilisez Groovy comme langage de script de compilation, et build.gradle.kts si vous utilisez le script Kotlin.
build.gradle ou build.gradle.kts (projet)
Cela définit votre configuration de compilation qui s'applique à tous les modules. Le nom de fichier correct est build.gradle si vous utilisez Groovy comme langage de script de compilation, et build.gradle.kts si vous utilisez le script Kotlin. Ce fichier fait partie intégrante du projet. Vous devez donc le conserver dans le contrôle des révisions avec tout autre code source.

Pour en savoir plus sur les autres fichiers de compilation, consultez la section Configurer votre build.

Paramètres de la structure du projet

Pour modifier les différents paramètres de votre projet Android Studio, ouvrez la boîte de dialogue Project Structure (Structure du projet) en cliquant sur File > Project Structure (Fichier > Structure du projet). Elle contient les sections suivantes :

  • Project : définit la version de Gradle et du plug-in Android Gradle, ainsi que le nom de l'emplacement du dépôt.
  • SDK Location (Emplacement du SDK) : définit l'emplacement du JDK, du SDK Android et du NDK Android utilisés par votre projet.
  • Variables : permet de modifier les variables utilisées dans vos scripts de compilation.
  • Modules : vous permet de modifier les configurations de compilation spécifiques à un module, y compris le SDK cible et le SDK minimal, la signature d'application et les dépendances de la bibliothèque. La page des paramètres de chaque module est divisée en onglets :
    • Properties (Propriétés) : spécifie les versions du SDK et des outils de compilation à utiliser pour compiler le module.
    • Signing (Signature) : spécifie le certificat à utiliser pour signer votre application.
  • Dependencies (Dépendances) : indique les dépendances de bibliothèque, de fichier et de module pour ce module. Vous pouvez ajouter, modifier et supprimer des dépendances à partir de ce volet. Pour en savoir plus sur la définition des dépendances, consultez Configurer des variantes de compilation.

  • Build Variants (Variantes de compilation) : permet de configurer différents types de produits et types de compilation pour votre projet.

    • Flavors (Types de produit) : permet de créer plusieurs types de produit pour la compilation, où chaque type spécifie un ensemble de paramètres de configuration, tels que la version minimale et la version cible du SDK du module, le code de version et le nom de la version.

      Par exemple, vous pouvez définir un type de produit avec un SDK minimal de 21 et un SDK cible de 29, et un autre type avec un SDK minimal de 24 et un SDK cible de 33.

    • Build Types (Types de compilation) : permet de créer et de modifier des configurations de compilation, comme décrit dans la section Configurer des variantes de compilation. Par défaut, chaque module dispose de types de compilation debug et release, mais vous pouvez en définir d'autres si nécessaire.