Les tenants et aboutissants de Gradle

En tant que premier IDE (environnement de développement intégré) entièrement dédié à Android, Android Studio, un logiciel soutenu par Google, est une perspective intéressante pour les développeurs Android. Mais cela implique également de maîtriser certaines nouvelles technologies, notamment le système de construction Gradle..

Cet article vous familiarise avec le nouveau système de construction d'Android, des bases de ce que Gradle est et de ce qu'il fait, en passant en revue quelques-uns des fichiers Gradle les plus importants, et en expliquant comment exécuter et surveiller des tâches Gradle..

Vous allez également examiner de plus près les différentes fenêtres d'outils Gradle dans Android Studio et apprendre à ajouter des dépendances à un projet, le tout sans qu'aucune expérience Gradle préalable soit nécessaire..

La première étape pour comprendre le nouveau système de construction d'Android consiste à comprendre exactement ce que Gradle est et pourquoi son inclusion dans Android Studio est une si bonne nouvelle pour les développeurs Android..

1. Qu'est-ce que Gradle?

Gradle est un toolkit de construction automatisé pouvant s'intégrer dans de nombreux environnements différents, via des plugins. Dans Android Studio, l’intégration de Gradle est réalisée via le plug-in Android Gradle bien nommé..

Si vous n’avez jamais utilisé Gradle, cela peut sembler être une barrière frustrante lorsque vous envisagez de passer à Android Studio. Cependant, Gradle a beaucoup à offrir aux développeurs Android, il vaut donc la peine d'investir un peu de temps pour apprendre les tenants et les aboutissants de Gradle. Voici quelques-unes des choses que vous pouvez faire avec Gradle.

Réduire la configuration requise pour les nouveaux projets

Gradle dispose d'un ensemble de paramètres de configuration par défaut qui sont automatiquement appliqués à chaque projet créé dans Android Studio. Si vous développez un projet qui ne respecte pas ces règles de configuration par défaut, Gradle est facile à personnaliser..

Déclarer les dépendances du projet

Les dépendances peuvent être des modules, des fichiers JAR ou des bibliothèques. Elles peuvent être situées sur le système de fichiers local ou sur un serveur distant..

Testez votre projet

Gradle génère automatiquement un répertoire de test et un APK de test à partir des sources de test de votre projet et peut exécuter vos tests pendant le processus de construction..

Générer des APK signés

Si vous ajoutez toutes les informations nécessaires, telles que keyPassword et keyAlias, à votre fichier de construction Gradle, vous pouvez utiliser Gradle pour générer des fichiers APK signés..

Générer plusieurs APK à partir d'un seul module

Gradle peut générer plusieurs fichiers APK avec différents packages et construire des configurations à partir d'un seul module. Cette fonctionnalité est particulièrement utile pour les développeurs Android, pour plusieurs raisons:

1. Soutenir un large éventail de périphériques

Une grande partie du développement pour la plate-forme Android prend en charge le plus grand nombre possible de périphériques et de versions du système d'exploitation Android. Le Google Play Store a même une prise en charge multi APK, ce qui vous permet de créer plusieurs versions de votre application. Chaque version cible une configuration d'appareil différente, en les proposant sous la forme d'une liste unique Play Store..

C'est là qu'intervient Gradle. Vous pouvez utiliser le nouveau système de construction d'Android pour générer plusieurs variantes d'APK à partir du même module. Donnez simplement à ces variantes le même nom de package et vous pourrez les télécharger sur la même fiche Google Play..

2. Offrir différentes versions d'une application

Parfois, tu vas vouloir pour répertorier plusieurs versions de votre application dans le Play Store, par exemple, si vous proposez une version gratuite et une version "Pro" de votre application. Là encore, vous pouvez utiliser Gradle pour générer plusieurs fichiers APK du même module et attribuer un nom de package différent à chaque fichier APK. Vous pouvez ensuite télécharger chaque APK sur le Play Store séparément.

2. Explorer les fichiers Gradle

Chaque fois que vous créez un projet dans Android Studio, le système de génération génère automatiquement tous les fichiers de construction Gradle nécessaires..

Étant donné que vous rencontrerez le même ensemble de fichiers Gradle chaque fois que vous créez un projet Android Studio, nous allons créer un exemple de projet de base, puis examiner de plus près ces fichiers générés automatiquement..

La première étape consiste à créer votre exemple de projet:

  1. Lancer Android Studio.
  2. Cliquez sur Démarrer un nouveau projet Android Studio.
  3. Donnez un nom à votre projet, entrez un domaine et choisissez l'emplacement de stockage de votre exemple de projet. Cliquez sur Suivant.
  4. S'assurer que Téléphone et tablette est sélectionné et acceptez les paramètres par défaut du SDK minimal. Cliquez sur Suivant.
  5. Sélectionner Activité vide et cliquez Suivant.
  6. Respectez les paramètres par défaut et cliquez sur terminer.

Gradle Build Files

Les fichiers de construction Gradle utilisent un langage spécifique au domaine ou DSL pour définir une logique de construction personnalisée et pour interagir avec les éléments du plug-in Android spécifiques à Android pour Gradle..

Les projets Android Studio se composent d'un ou plusieurs modules, qui sont des composants que vous pouvez créer, tester et déboguer indépendamment. Chaque module ayant son propre fichier de construction, chaque projet Android Studio contient donc deux types de fichiers de construction Gradle:

  • Fichier de construction de niveau supérieur: C'est ici que vous trouverez les options de configuration communes à tous les modules composant votre projet..
  • Fichier de construction de niveau module: Chaque module a son propre fichier de construction Gradle qui contient les paramètres de construction spécifiques au module. Vous passerez le plus clair de votre temps à éditer des fichiers de construction au niveau du module plutôt que le fichier de construction de niveau supérieur de votre projet..

Pour jeter un coup d’œil à ces fichiers build.gradle, ouvrez le logiciel Android Studio. Projet panneau (en sélectionnant le Projet onglet) et développez le Gradle Scripts dossier. Dans notre exemple de projet, les deux premiers éléments de la liste sont les fichiers de construction de niveau supérieur et de niveau module de votre projet..


Notre exemple de projet ne contient qu'un seul fichier de construction au niveau du module, mais la capture d'écran ci-dessous vous donne une idée de la Gradle Scripts dossier peut rechercher un projet avec plusieurs modules.


Fichier de construction de Gradle de niveau supérieur

Chaque projet Android Studio contient un seul fichier de construction Gradle de niveau supérieur. Ce fichier build.gradle est le premier élément qui apparaît dans le Gradle Scripts dossier et est clairement marqué Projet.

La plupart du temps, vous n'avez pas besoin de modifier ce fichier, mais il est toujours utile de comprendre son contenu et le rôle qu'il joue dans votre projet. Vous trouverez ci-dessous une version annotée d'un fichier de construction de niveau supérieur typique..

buildscript // Les fichiers de construction Gradle au niveau du projet utilisent buildscript pour définir les dépendances.// référentiels jcenter () // Ce fichier repose sur le référentiel jJCenter.// dépendances classpath 'com.android.tools.build:gradle: 1.0.0 '// Le projet dépend de la version 1.0.0 du plug-in Android pour Gradle.// allprojects // Définit les dépendances requises par votre application.// référentiels jcenter () // L'application dépend sur le référentiel jCenter.// 

Fichiers de construction Gradle au niveau du module

En plus du fichier de construction Gradle au niveau du projet, chaque module possède son propre fichier de construction Gradle. Vous trouverez ci-dessous une version annotée d'un fichier de construction Gradle de base, au niveau module..

apply plugin: 'com.android.application' // Comme ce projet est une application Android, le fichier build.gradle utilise le plugin Android.// android // La section suivante configure tous les paramètres spécifiques à votre projet Android, et indique Déterminez la version d'Android sur laquelle votre projet doit être construit. Si vous avez déjà développé des applications Android, vous devez connaître les éléments suivants.// compileSdkVersion 21 // L'API ciblée par votre projet.// buildToolsVersion "21.1.1" //// La version des outils de construction que vous souhaitez utiliser. use.// defaultConfig applicationId "com.example.jessica.myapplication" // Définit l'ID de votre application. Notez que les versions précédentes du plug-in Android utilisaient 'packageName' au lieu de 'applicationID.' // minSdkVersion 16 // L'API minimale requise par votre projet.// targetSdkVersion 21 // La version d'Android pour laquelle vous développez votre application. // versionCode 1 versionName "1.0" buildTypes release // "BuildTypes" contrôle la manière dont votre application est construite et empaquetée. Si vous souhaitez créer vos propres variantes de construction, vous devez les ajouter à cette section.// minifyEnabled true // Gradle exécute ProGuard pendant le processus de construction.// proguardFiles getDefaultProguardFile ('proguard-android.txt'), ' proguard-rules.pro '// Applique les paramètres ProGuard par défaut à partir du SDK Android.// dépendances // Déclare les dépendances du module actuel.// compile fileTree (dir:' libs ', include: [' * .jar ']) // Bien que vous puissiez ajouter des fichiers JAR en les compilant individuellement, cela peut prendre beaucoup de temps si vous avez beaucoup de fichiers JAR. Dans cet exemple, nous demandons à Gradle d'ajouter tous les fichiers JAR du dossier app / libs.// compile 'com.android.support:appcompat-v7:21.0.3' // Pour créer davantage de dépendances, ajoutez-les à la fermeture des dépendances .// 

Autres fiches de classement

En plus des fichiers build.gradle, votre Gradle Scripts dossier contient d'autres fichiers Gradle. La plupart du temps, vous ne devrez pas modifier manuellement ces fichiers car ils seront automatiquement mis à jour lorsque vous apporterez des modifications pertinentes à votre projet. Cependant, il est judicieux de comprendre le rôle de ces fichiers dans votre projet..

gradle-wrapper.properties (version de Gradle)

Ce fichier permet à d’autres personnes de créer votre code, même si Gradle n’est pas installé sur leur ordinateur. Ce fichier vérifie si la version correcte de Gradle est installée et télécharge la version nécessaire si nécessaire. Dans notre exemple d'application, gradle-wrapper.properties contient les éléments suivants:

distributionBase = GRADLE_USER_HOME // Détermine si la distribution du wrapper non compressée doit être stockée dans le projet ou dans le répertoire de base de l'utilisateur Gradle.// distributionPath = wrapper / dists // Le chemin où les distributions Gradle requises par le wrapper sont décompressées.// zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper / dists distributionUrl = https \: //services.gradle.org/distributions/gradle-2.2.1-all.zip // URL à partir de laquelle la version correcte de Gradle doit être téléchargée.

paramètres.gradle

Ce fichier fait référence à tous les modules composant votre projet. Comme notre exemple de projet comporte un seul module, ce fichier est très simple, comme vous pouvez le voir ci-dessous..

include ': app'

gradle.properties (Propriétés du projet)

Ce fichier contient des informations de configuration pour l'ensemble de votre projet. Il est vide par défaut, mais vous pouvez appliquer un large éventail de propriétés à votre projet en les ajoutant à ce fichier..

local.properties (emplacement du SDK)

Ce fichier indique au plug-in Android Gradle où il peut trouver votre installation du SDK Android. Par exemple:

sdk.dir = / Utilisateurs / jessica / Bibliothèque / Android / sdk

Notez que local.properties contient des informations spécifiques à la local installation du SDK Android. Cela signifie que vous ne devriez pas garder ce fichier sous contrôle de source.

3. Interface utilisateur Android Studio

Maintenant que vous connaissez tous les fichiers Gradle générés automatiquement, il est temps d'interagir avec le système de construction Gradle. La bonne nouvelle est que vous pouvez interagir avec Gradle directement à partir de l'interface utilisateur d'Android Studio..

Les onglets qui ouvrent diverses fenêtres d’outils sont situés autour des bords verticaux et horizontaux d’Andorid Studio. Dans les sections suivantes, je vais vous présenter certaines des fenêtres d'outils spécifiques à Gradle d'Android Studio et vous montrer comment interagir avec le système de construction de Gradle via ces fenêtres..

Fenêtre Gradle Tasks

Vous pouvez utiliser la fenêtre des tâches de Gradle pour parcourir et exécuter les différentes tâches nécessaires à la compilation de votre projet dans une application exécutable..

Pour ouvrir la fenêtre des tâches Gradle, cliquez sur le bouton Gradle onglet sur le côté droit de votre installation Android Studio. Si vous avez personnalisé votre interface utilisateur Android Studio et que vous ne trouvez plus le Gradle onglet, alors vous pouvez sélectionner Affichage> Fenêtres d’outils> Graduer au lieu.

Dans l'onglet Tâches Gradle, double-cliquez sur votre projet, puis sur votre module. Vous verrez une liste de toutes les tâches Gradle liées à ce module..


Lorsque vous double-cliquez sur une tâche dans la fenêtre des tâches de Gradle, l’exécution commence et la sortie apparaît dans une autre fenêtre spécifique à Gradle. Gradle Console.

Gradle Console

La console Gradle affiche le résultat des tâches Gradle au fur et à mesure de leur exécution, ainsi que les éventuels messages d'erreur ou avertissements..

Pour ouvrir la console Gradle, sélectionnez le Gradle Console onglet vers le bas à droite de votre IDE. Si vous avez personnalisé l'interface utilisateur d'Android Studio et ne trouvez plus cet onglet, vous pouvez toujours sélectionner Affichage> Fenêtres d'outils> Console Gradle au lieu.

Prenons la Gradle Console pour un tour. Dans la fenêtre des tâches Gradle, recherchez le assembler tâche, qui crée une version finale de votre application prête à être distribuée et double-cliquez dessus. Comme le assembler tâche s'exécute, la sortie de la tâche apparaît dans la console Gradle.

Gradle Console vous informera ensuite de la réussite de la construction de votre projet ou affichera un message "build failed" avec des informations sur les raisons de l'échec de la construction..


Terminal

Vous pouvez également exécuter des tâches Gradle à partir du logiciel intégré d'Android Studio. Terminal. Si vous savez exactement quelle tâche Gradle vous souhaitez exécuter, le terminal est généralement beaucoup plus rapide et plus pratique que de parcourir les listes de tâches de la console Gradle..

Pour ouvrir le terminal, cliquez sur le bouton Terminal vers le bas à gauche d'Android Studio, ou sélectionnez Affichage> Fenêtres d'outils> Console Gradle. Le terminal s'ouvrira alors avec le répertoire actuel déjà sélectionné. Vous pouvez ensuite exécuter des tâches Gradle en les saisissant dans le terminal et en appuyant sur la touche Revenir ou la Entrer touche sur ton clavier.

4. Ajouter des dépendances

Dans cette section, nous verrons comment utiliser Gradle pour gérer les dépendances de module, les dépendances binaires locales et les dépendances binaires distantes de votre projet..

En ce qui concerne l’ajout de dépendances à votre projet, Gradle vous propose plusieurs options..

Option 1: Déposer des fichiers dans le répertoire libs / du projet

Le fichier build.gradle approprié sera mis à jour automatiquement.

Option 2: Modifier le fichier build.gradle manuellement

Ouvrez votre fichier build.gradle et ajoutez une nouvelle règle de construction à la fermeture des dépendances. Par exemple, si vous souhaitez ajouter des services Google Play, la section des dépendances de votre projet ressemblera à ceci:

dependencies compile fileTree (dir: 'libs', include: ['* .jar']]) compiler 'com.google.android.gms: play-services: 6.5. +'

Option 3: Utiliser l'interface utilisateur d'Android Studio

dans le Projet panneau, Ctrl + Clic le module auquel vous souhaitez ajouter la dépendance et sélectionnez Ouvrir les paramètres du module.


Sélectionnez le Les dépendances onglet, suivi du + bouton dans le coin inférieur gauche. Vous pouvez choisir parmi la liste d’options suivante:

  • Dépendance de la bibliothèque
  • Dépendance de fichier
  • Dépendance du module

Vous pouvez ensuite entrer plus d'informations sur la dépendance que vous souhaitez ajouter à votre projet. Par exemple, si vous choisissez Dépendance de la bibliothèque, Android Studio affiche une liste de bibliothèques parmi lesquelles vous pouvez choisir..

Une fois que vous avez ajouté votre dépendance, vérifiez votre fichier build.gradle au niveau du module. Il devrait avoir automatiquement mis à jour pour inclure la nouvelle dépendance.

Conclusion

Cet article vous a présenté tous les fichiers de construction Gradle générés automatiquement que vous trouverez dans votre projet Android Studio typique, en particulier les fichiers de construction Gradle de niveau supérieur et au niveau du module. Vous avez également appris à interagir directement avec le système de génération Gradle à partir de l'interface utilisateur d'Android Studio..

Si vous souhaitez en savoir plus sur Gradle, vous trouverez de nombreuses informations supplémentaires sur le site Web du développeur Android et sur le site Web de Gradle..