1455 votes

Qu'est-ce que Gradle dans Android Studio ?

Gradle est un peu déroutant pour moi, et aussi pour tout nouveau développeur Android. Quelqu'un peut-il expliquer ce qu'est Gradle dans Android Studio et à quoi il sert ? Pourquoi est-il inclus dans Android Studio ?

4 votes

14 votes

Pour répondre pourquoi vous souhaitez utiliser un outil de construction tel que Gradle, consultez le site ce poste de Jeff Atwood.

938 votes

Quand quelqu'un pose ici une question qui, oui, a beaucoup de liens dans Google à ce sujet, ce qu'il demande vraiment, c'est que quelqu'un réponde à la question en utilisant les termes suivants langage clair et simple et de le mettre dans contexte Il s'agit de savoir pourquoi nous en avons besoin, qui l'utilisera le plus, si nous devons le connaître pour créer des applications Android dans Android Studio, etc. Parce que le plus souvent, les liens que vous trouvez à ce sujet sur Google sont en "langage technique" et pour un débutant, c'est déroutant.

1670voto

Gagandeep Singh Points 393

Réponse courte

Gradle est un système de construction.

Réponse longue

Avant Android Studio, vous utilisiez Eclipse pour vos besoins de développement, et, il y a de fortes chances que vous ne sachiez pas comment construire votre Android APK sans Eclipse.

Vous pouvez le faire en ligne de commande, mais vous devez apprendre ce que chaque outil ( dx y AAPT ) fait dans le SDK. Eclipse nous a épargné ces détails fondamentaux de bas niveau, mais importants, en nous donnant son propre système de construction.

Maintenant, vous êtes-vous déjà demandé pourquoi le res se trouve dans le même répertoire que votre src dossier ?

C'est là que le système de construction entre en jeu. Le système de construction prend automatiquement tous les fichiers sources ( .java o .xml ), puis applique l'outil approprié (par exemple, prend .java et les convertit en fichiers de classe .dex ), et les regroupe tous en un seul fichier compressé - notre cher APK.

Ce système de construction utilise certaines conventions : un exemple de l'une d'entre elles est de spécifier le répertoire contenant les fichiers sources (dans Eclipse, c'est \src ) ou des fichiers de ressources (dans Eclipse, il s'agit de \res dossier).

Maintenant, afin d'automatiser toutes ces tâches, il doit y avoir un script ; vous pouvez écrire votre propre système de construction en utilisant le script shell sous Linux ou la syntaxe des fichiers batch sous Windows. Vous avez compris ?

Gradle est un autre système de construction qui reprend les meilleures fonctionnalités des autres systèmes de construction et les combine en un seul. Il est amélioré en fonction de leurs défauts. C'est un Système de construction basé sur la JVM . Cela signifie que vous pouvez écrire votre propre script en Java, dont Android Studio fait usage.

Une chose intéressante à propos de Gradle est qu'il s'agit d'un système basé sur des plugins . Cela signifie que si vous avez votre propre langage de programmation et que vous voulez automatiser la tâche de construction d'un paquet (sortie comme une JAR pour Java) à partir des sources, puis vous pouvez écrire un plugin complet en Java ou en Groovy (ou Kotlin voir aquí ), et le distribuer au reste du monde.

Pourquoi Google l'a-t-il utilisé ?

Google a vu l'un des systèmes de construction les plus avancés du marché et a réalisé qu'il était possible d'écrire des scripts de son propre chef avec peu ou pas de courbe d'apprentissage, et sans apprendre Groovy ou tout autre nouveau langage. Ils ont donc écrit le plugin Android pour Gradle.

Vous avez dû voir build.gradle dans votre projet. C'est là que vous pouvez écrire des scripts pour automatiser vos tâches. Le code que vous avez vu dans ces fichiers est du code Groovy. Si vous écrivez System.out.println("Hello Gradle!"); alors il s'imprimera sur votre console.

Que peut-on faire dans une construction script ?

Un exemple simple est que vous devez copier certains fichiers d'un répertoire à un autre avant le processus de construction proprement dit. Une construction Gradle script peut faire cela.

0 votes

Gradle est la chose la plus cool si nous l'utilisons, par exemple, j'avais construit un système utilisant gradle qui, en fonction de la tâche exécutée, choisit la version dev ou prod du code et commet automatiquement l'apk dans svn, puis envoie l'apk et le message aux adresses e-mail configurées dans gradle lui-même. Ainsi, mes tâches manuelles sont terminées.

16 votes

Je dois dire que Gradle me posait des problèmes lorsque je transférais un projet AndroidStudio d'un endroit à un autre. Des versions non concordantes, des modules manquants, etc... ça me donnait du fil à retordre. J'ai fini par recréer le squelette du projet et couper/coller les parties de code qui étaient de l'ancien projet vers le nouveau. Et ceci sous Windows pour les sources et la destination. Je vais maintenant le déplacer sous un laboratoire basé sur Linux.

34 votes

Ce que je ne comprends pas, c'est pourquoi gradle essaie de se connecter à Internet pour chaque projet que je crée ou même chaque fois que je veux compiler.

177voto

daniel_c05 Points 3469

C'est le nouvel outil de construction que Google veut utiliser pour Android. Il est utilisé en raison de son caractère plus extensible et plus utile que Fourmi . Il est destiné à améliorer l'expérience des développeurs.

Vous pouvez voir un exposé de Xavier Ducrohet de l'équipe des développeurs d'Android à l'adresse suivante Google I/O ici.

Il y a aussi un autre exposé sur Android Studio par Xavier et Tor Norbye, aussi pendant Google I/O ici .

5 votes

Je pensais qu'IntelliJ savait déjà comment construire des projets Android sans avoir besoin d'un autre système de construction.

2 votes

Est-ce que gradle est juste le processus de fond qui compile le code que j'ai écrit ? Par ailleurs, après avoir examiné de nombreuses autres réponses, je constate qu'elles mentionnent des dépendances. Quelles sont-elles ? Merci beaucoup Daniel !

4 votes

@user5562706 Il ne compile pas le code, mais il est responsable de l'appel de l'exécutable qui compile votre code. Après avoir compilé votre code, il peut ensuite exécuter une autre tâche pour l'empaqueter, une autre pour le copier dans un répertoire de votre choix, puis peut-être une autre pour le télécharger sur un serveur quelque part... C'est ce genre de tâches que Gradle, ou n'importe quel système de construction, fera.

34voto

karan Points 51

Gradle est un type de outil de création qui construit le code source du programme. Il s'agit donc d'une partie importante d'Android Studio, qui doit être installée avant de commencer à développer votre application.

Nous n'avons pas besoin de l'installer séparément, car Android Studio le fait pour nous, lorsque nous réalisons notre premier projet.

4 votes

Que voulez-vous dire par construire le code source du programme ? N'est-ce pas le travail d'un développeur ?

0 votes

Cette réponse est complètement fausse dans sa formulation. Gradle est l'outil d'empaquetage fourni avec Android Studio, il s'occupe donc de la construction de l'apk. Le code source est toujours construit par le compilateur et rien d'autre.

0 votes

Pourtant, d'après une autre question, il semble que Gradle ne fonctionnera pas correctement sans une connexion internet fiable, cela signifie-t-il que je dois jeter Android Studio jusqu'à ce que cela soit corrigé ?

13voto

user500123 Points 188

Gradle est à la Groovy Langage JVM quoi Fourmi est à Java. En gros, c'est l'outil de construction de Groovy. Contrairement à Ant, il est basé sur le langage Groovy complet. Vous pouvez, par exemple, écrire du code Groovy script dans le script de Gradle pour faire quelque chose plutôt que de s'appuyer sur un fichier langage spécifique au domaine .

Je ne sais pas. IntelliJ IDEA L'intégration spécifique de Groovy, mais imaginez que vous puissiez "étendre" Groovy de telle sorte que vous puissiez écrire des primitives de langage "build" spécifiques et qu'elles fassent simplement partie du langage Groovy. (La métaprogrammation de Groovy est un sujet à part entière). IntelliJ et Google pourraient utiliser Gradle pour créer un langage de construction de très haut niveau, mais il s'agit d'un langage basé sur un standard ouvert et extensible.

2 votes

Ce n'est pas "Groovy build tool" - c'est un outil de construction polyvalent dont le DSL est construit au-dessus de groovy.

2voto

codercat Points 5586

Google a choisi Gradle comme base du système de construction du SDK Android parce qu'il offre une grande souplesse et permet de définir des normes communes pour les constructions Android. Avec Gradle, les développeurs Android peuvent utiliser un DSL simple et déclaratif pour configurer les constructions Gradle prenant en charge une grande variété d'appareils Android et d'App stores. Grâce à un DSL simple et déclaratif, les développeurs Gradle ont accès à un build unique et faisant autorité qui alimente à la fois l'IDE Android Studio et les builds en ligne de commande. Gradleware soutient la transition d'Ant à Gradle en proposant les services suivants Services de migration Gradle pour les développeurs Android

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X