Les projets Android contiennent de nombreux fichiers et structures de répertoires liés à la compilation pour organiser la source et les ressources de votre application. Avant de plonger au cœur les détails de la configuration, nous examinerons la structure globale et les bases de ce qui appartient à chaque partie.
Ce tableau liste les fichiers typiques d'un projet Android. La description de chaque fichier ou le répertoire incluent des notes sur le type de contenu qui s’y trouve. Excellent les pratiques évoluent au fil du temps, et ces descriptions peuvent ne pas correspondre à un projet dont vous avez hérité ou téléchargé depuis Internet.
Lorsque vous écrivez vos fichiers de compilation, utilisez une approche déclarative : la logique et la tâche de compilation les définitions ne doivent apparaître que dans les plug-ins. En limitant la logique de compilation aux plug-ins, les fichiers de compilation deviennent des déclarations de données, qui sont plus faciles à comprendre et l'édition. Les futures versions peuvent inclure une autre spécification telle que Gradle déclarative, qui empêche la logique de compilation dans .
Dossier/Fichier |
Utiliser |
---|---|
Fichiers .gradle/ |
Répertoire de cache du projet Gradle Géré par Gradle. Il contient la distribution Gradle téléchargée, le cache du projet et les fichiers de configuration. Ne modifiez pas les fichiers de ce répertoire. |
.idea/ |
Métadonnées de projet Android Studio Ne modifiez pas les fichiers de ce répertoire. |
build.gradle(.kts) |
Ne doit contenir que des déclarations de plug-in pour configurer un chemin de classe de plug-in commun pour tous les sous-projets. L'autre code doit résider dans les paramètres ou dans les fichiers de compilation imbriqués au niveau du projet. |
gradle.properties |
Configuration d'exécution Gradle contient les propriétés Gradle, ce qui permet de contrôler les aspects de l'environnement de compilation Gradle tels que la taille des tas de mémoire, la mise en cache et l'exécution parallèle. Certaines propriétés Android temporaires sont définies ici afin de limiter les modifications apportées au DSL AGP lors de leur ajout, puis de leur suppression. |
gradlew (linux, Mac) gradlew.bat (Windows) |
Fichier du wrapper Gradle Amorcez votre build en téléchargeant une distribution Gradle, puis en lui transférant des commandes. Cela vous permet d'exécuter des compilations sans avoir à préinstaller Gradle. |
local.properties |
Configuration de la machine locale Contient des propriétés liées à la machine locale, telles que l'emplacement du SDK Android. Excluez ce fichier du contrôle du code source. |
settings.gradle(.kts) |
Initialisation de la compilation Gradle Contient des informations de compilation globales pour l'initialisation de Gradle et la configuration du projet, telles que
|
Gradle/ |
|
🏠 libs.versions.toml |
Définit les variables des dépendances et des plug-ins utilisés dans votre compilation. Vous spécifiez les versions que vous souhaitez utiliser ici, ce qui assure la cohérence entre tous les sous-projets de votre projet. |
🏠 Enveloppe/ |
|
🏠 gradle‐wrapper.jar |
Exécutable d'amorçage Gradle Il télécharge la distribution Gradle spécifiée (si elle n'existe pas) et l'exécute, en transmettant tous les arguments. |
🏠 gradle‐wrapper.properties |
Configuration pour le wrapper Gradle Spécifie l'emplacement de téléchargement de la distribution Gradle (y compris la version à utiliser). |
application/ |
Les sous-projets (appelés "modules" dans Android Studio) peuvent créer des applications ou des bibliothèques, et peuvent dépendre d'autres sous-projets ou de dépendances externes.
|
🏠 build.gradle(.kts) |
Fichier de compilation au niveau du sous-projet Indique comment créer ce sous-projet. Chaque sous-projet nécessite un fichier de compilation distinct et doit contenir
Vous ne devez pas inclure de logique de compilation (telle que les définitions ou conditions de fonction Kotlin) ni les déclarations de tâches dans vos fichiers de compilation. La logique et les tâches de compilation ne doivent être contenues que dans des plug-ins. |
🏠 src/ |
Fichiers sources du sous-projet Regroupe les fichiers sources (code et ressources de l'application) dans des ensembles de sources. L'ensemble de sources |
🏠 principale/ |
Ensemble de sources principal Code source et ressources communs à toutes les variantes de compilation. Cette source sert de base à toutes les compilations, et d'autres ensembles de sources plus spécifiques s'ajoutent à cette source ou la remplacent. |
🏠 java/ 🏠 kotlin/ |
Code source Kotlin et Java Le répertoire |
🏠 res/ |
Fichiers de ressources Android Contient les ressources de l'application, telles que les fichiers XML et les images. Toutes les applications utilisent des ressources de base, telles que les icônes de lanceur, mais la plupart de ces ressources, telles que les mises en page et les menus, ne sont utilisées que dans les applications basées sur les vues. Les applications Compose utilisent les ressources String définies dans ce répertoire. |
🏠 AndroidManifest.xml |
Métadonnées des applications Android Lu par le gestionnaire de packages Android pour indiquer au système
|
🏠 androidTest/ |
Ensemble de sources de test de l'appareil Contient la source des tests qui seront exécutés sur un appareil ou un émulateur Android. Ces tests ont accès à un véritable environnement Android, mais ils s'exécutent plus lentement que les tests hôtes. |
🏠 Test/ |
Ensemble de sources de test sur l'hôte Contient la source des tests qui s'exécutent localement dans une JVM, par opposition aux tests qui s'exécutent sur un appareil. Ces tests sont beaucoup plus rapides à exécuter que les tests sur les appareils. Toutefois, tous les appels système (y compris les cycles de vie qui exécutent votre application) doivent être simulés, faux, bouchons ou autrement simulés. Tous les fichiers sources de l'ensemble de sources |
🏠 proguard-rules.pro |
Définit les règles permettant de contrôler la minification, l'optimisation et l'obscurcissement des applications. R8 supprime le code et les ressources inutiles, optimise les performances d'exécution et réduit davantage votre code en renommant les identifiants. |