web-dev-qa-db-fra.com

Qu'est-ce que Gradle dans Android Studio?

Gradle est un peu déroutant pour moi et aussi pour le nouveau développeur Android. Quelqu'un peut-il expliquer ce qu'est Gradle dans Android Studio et quel est son but? Pourquoi Gradle est-il inclus dans Android Studio?

1232

Réponse courte

Gradle est un système de construction.

Longue réponse

Avant Android Studio, vous utilisiez Eclipse à des fins de développement et, probablement, vous ne saviez pas comment créer votre Android APK sans Eclipse.

Vous pouvez le faire sur la ligne de commande, mais vous devez savoir ce que chaque outil (dx, aapt) fait dans le SDK. Eclipse nous a tous sauvés de ces détails basiques mais importants et fondamentaux en nous fournissant leur propre système de construction.

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

C'est ici que le système de construction entre en jeu. Le système de construction prend automatiquement tous les fichiers source (.Java ou .xml), puis applique l'outil approprié (par exemple, prend les fichiers de classe Java et les convertit en fichiers dex), et les regroupe tous dans un fichier compressé, notre bien-aimé APK.

Ce système de génération utilise certaines conventions: un exemple consiste à spécifier le répertoire contenant les fichiers source (dans Eclipse, il s'agit du dossier \src) ou de fichiers de ressources (dans Eclipse, il s'agit du dossier \res).

Maintenant, pour automatiser toutes ces tâches, il faut un script; vous pouvez écrire votre propre système de construction en utilisant les scripts Shell sous Linux ou la syntaxe des fichiers de traitement par lots sous Windows. Je l'ai?

Gradle est un autre système de construction qui prend les meilleures fonctionnalités des autres systèmes de construction et les combine en un. Il est amélioré basé sur leurs défauts. C’est un système de construction basé sur JVM , c’est que vous pouvez écrire votre propre script en Java, ce que Android Studio rend utilisation de.

Un aspect intéressant de Gradle est qu’il s’agit d’un système basé sur un plugin . Cela signifie que si vous avez votre propre langage de programmation et que vous souhaitez automatiser la tâche de construction de paquet (sortie comme un fichier JAR pour Java) à partir de sources, vous pouvez écrire un plugin complet en Java ou Groovy (ou Kotlin). , voir ici ), et distribuez-le 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 compris qu’il était possible d’écrire ses propres scripts avec peu, voire aucune courbe d’apprentissage, et sans apprendre Groovy ou tout autre nouveau langage. Ils ont donc écrit le plugin Android pour Gradle.

Vous devez avoir vu le fichier 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!");, il sera imprimé sur votre console.

Que pouvez-vous faire dans un script de construction?

Un exemple simple est que vous devez copier certains fichiers d'un répertoire à un autre avant que le processus de construction réel ne se produise. Un script de construction Gradle peut le faire.

1449
Gagandeep Singh

C'est le nouvel outil de construction que Google veut utiliser pour Android. Il est utilisé car il est plus extensible et utile que fourmi. Il est destiné à améliorer l'expérience des développeurs.

Vous pouvez regarder une conférence de Xavier Ducrohet de l'équipe de développement Android sur Google I/O ici.

Il y a aussi une autre conversation sur Android Studio de Xavier et Tor Norbye, également pendant Google I/O ici .

154
daniel_c05

Gradle est un système de construction fonctionnant sur Android Studio .

Dans d'autres langues par exemple:

57
itiskj

Voici une explication détaillée de ce que Gradle est et de son utilisation dans Android Studio.

Exploration des fichiers Gradle

  1. 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.

Gradle Build Files

  1. Les fichiers de construction Gradle utilisent un Domain Specific Language or DSL pour définir une logique de construction personnalisée et pour interagir avec les éléments spécifiques à Android du plug-in Android de Gradle.

  2. Les projets Android Studio sont constitués de 1 ou plusieurs modules, 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 2 types de fichiers de construction Gradle.

  3. Fichier de construction de niveau supérieur: Vous trouverez ici les options de configuration communes à tous les modules constituant votre projet.

  4. Fichier de construction de niveau module: Chaque module a son propre fichier de construction Gradle qui contient des paramètres de construction spécifiques. Vous passerez la plupart 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 examiner ces fichiers build.gradle, ouvrez le panneau Projet de Android Studio (en sélectionnant l'onglet Projet) et développez le dossier Gradle Scripts. Les deux premiers éléments du dossier Gradle Scripts sont les fichiers de construction Gradle au niveau du projet et au niveau du module.

Fichier de construction du gradé 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 dossier Gradle Scripts 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.

Fichiers de création de graduels de niveau 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.

Autres fichiers Gradle

Outre les fichiers build.gradle, votre dossier Gradle Scripts contient d'autres fichiers Gradle. La plupart du temps, vous n'aurez 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.

settings.gradle

Ce fichier fait référence à tous les modules composant votre projet.

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.

Remarque: local.properties contient des informations spécifiques à l'installation locale du SDK Android. Cela signifie que vous ne devez pas conserver ce fichier sous contrôle de source.

Lecture suggérée - Tutoriel Tutsplus

J'ai eu une compréhension claire de Gradle à partir de ça.

40
Parmeshwar C

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

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

29
karan

Vous pouvez trouver tout ce que vous devez savoir sur Gradle ici: Guide de l'utilisateur du plugin Gradle

Objectifs du nouveau système de construction

Les objectifs du nouveau système de construction sont les suivants:

  • Facilitez la réutilisation du code et des ressources
  • Facilitez la création de plusieurs variantes d'une application, que ce soit pour la distribution multi-apk ou pour différentes versions d'une application
  • Facilitez la configuration, l’extension et la personnalisation du processus de construction
  • Bonne IDE intégration

Pourquoi Gradle?

Gradle est un système de construction avancé ainsi qu'une boîte à outils de construction avancée permettant de créer une logique de construction personnalisée via des plugins.

Voici certaines de ses caractéristiques qui nous ont fait choisir Gradle:

  • Domain Specific Language (DSL) pour décrire et manipuler la logique de construction
  • Les fichiers de construction sont basés sur Groovy et permettent de mélanger des éléments déclaratifs via le DSL et d'utiliser du code pour manipuler les éléments DSL afin de fournir une logique personnalisée.
  • Gestion intégrée des dépendances via Maven et/ou Ivy.
  • Très souple. Permet d’utiliser les meilleures pratiques mais ne force pas sa propre façon de faire les choses.
  • Les plugins peuvent exposer leur propre DSL et leur propre API pour les fichiers de construction à utiliser.
  • Bonne API d’outillage permettant l’intégration IDE
23
Mahdi Rashidi

DEFINITION :: Gradle peut être décrit comme un mécanisme de construction structuré dans lequel fournit aux développeurs les outils et la souplesse nécessaires pour gérer les ressources d'un projet afin de créer des versions smaller in size, targeting specific requirements pour certains périphériques de certaines configurations


CONFIGURATIONS DE BASE

  1. minimumSdk
  2. maximumSdk
  3. targettedSdk
  4. versionCode
  5. versionName

BIBLIOTHÈQUES :: Nous pouvons ajouter Android bibliothèques ou toute autre bibliothèque tierce en plus, conformément aux exigences easy, ce qui était une tâche fastidieuse auparavant. Si la bibliothèque ne convient pas au projet existant, le développeur reçoit un journal dans lequel la personne peut trouver la solution appropriée pour modifier le projet afin que la bibliothèque puisse être ajoutée. C'est juste une ligne de dépendance


GÉNÉRANT DES VARIÉTÉS DE BÂTIMENTS

Combinaison de types de construction avec des variantes de construction pour obtenir des variantes de variantes de construction

 ====================                         ====================
|     BuildTypes     |                       |   ProductFlavours  |
 --------------------  ====================== --------------------
|  Debug,Production  |      ||       ||      | Paid,Free,Demo,Mock|
 ====================       ||       ||       ==================== 
                            ||       ||
                            VV       VV
 =================================================================
|           DebugPaid, DebugFree, DebugDemo, DebugMock            |
|  ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
 =================================================================

REDUCTION DE LA TAILLE

Gradle aide à réduire la taille de la construction générée en supprimant les ressources inutilisées ainsi que les éléments inutilisés des bibliothèques intégrées .


GESTION DES PERMISSIONS

Nous pouvons spécifier certaines autorisations pour certaines générations en ajoutant certaines autorisations dans certains scénarios en fonction des besoins


CONSTRUIT POUR CERTAINS DISPOSITIFS

Nous pouvons gérer la génération de build pour certains périphériques comprenant certaines densités et certains niveaux d'api. Cela facilite les déploiements de produits sur l'App Store en fonction des exigences de plusieurs types d'appareils .


BONNE RÉFÉRENCE

tutoriels Vogella

23
Devrath

Gradle est un système de compilation . Les systèmes de construction sont des outils logiciels conçus pour automatiser le processus de compilation de programmes. Les systèmes de build se présentent sous différentes formes et sont utilisés pour une variété de tâches de construction de logiciels. Bien que leur objectif principal soit de créer efficacement des exécutables.

L'autre terme associé est Build Automation, qui consiste à automatiser la création d'une version de logiciel et les processus associés, notamment: la compilation du code source informatique en code binaire, le packaging du code binaire et l'exécution de tests automatisés.

Il existe peu de systèmes de compilation similaires à d’autres langues (voir liste complète ici ):

  1. Apache Ant & Apache Maven - Java
  2. sbt (Outil de construction simple) - pour Scala (Framework de jeu, etc.)
  3. A-A-P - outil de construction basé sur Python
  4. Rateau (Apache Builder) - Ruby
  5. Leiningen pour Clojure
21
user4774371

Au risque d’être discursive, je pense que derrière cela se cache la question de savoir pourquoi l'expérience Android Studio/Gradle est si mauvaise.

Expérience typique de Clojure:

  • téléchargez le projet avec les dépendances répertoriées dans project.clj.
  • Leiningen obtient les dépendances grâce à Clojars et Maven.
  • Projet compile.

Expérience typique Android Studio/Gradle:

  • "Importer mon projet Eclipse".
  • OK projet importé.
  • Gradle est en train de faire ça ... attendez ... attendez ... attendez ... Gradle est fini.
  • Compiler ... ne peut pas compiler parce que je ne sais pas ce qu'est un X ou ne peut pas trouver la bibliothèque Y.

Je ne suis pas sûr que ce soit la faute de Gradle. Mais le "projet d'importation depuis Eclipse" semble assez floconneux. Malgré toute la prétendue sophistication de Gradle et les vertus d'un système de construction, Android Studio ne semble tout simplement pas importer les dépendances de construction ou le processus de construction d'Eclipse.

Il ne vous dit pas quand il est impossible d'importer un graphique de dépendance complet. Le studio Android ne fournit aucune aide utile ni conseils pour résoudre le problème. Il ne vous dit pas où vous pouvez manuellement chercher dans les dossiers Eclipse. Cela ne vous dit pas quelle bibliothèque semble manquer. Ou vous aider à rechercher Maven etc. pour eux.

En 2016, des éléments comme Leiningen/Clojars, ou le npm de node, ou le pip de Python, ou l'apkg de Debian (et je suis sûr que de nombreux gestionnaires de paquets similaires pour d'autres langages et systèmes) fonctionnent à merveille ... les dépendances manquantes appartiennent au passé.

Sauf avec Android. Android Studio est maintenant le seul endroit où il me semble que je ressens toujours un enfer dépendant.

J'ai tendance à dire que c'est la faute de Google. Ils ont rompu l’écosystème Android (et des milliers de projets/tutoriels en ligne Android existants) en décidant cavalièrement de passer d'Eclipse à Android Studio/Gradle sans produire de processus de conversion robuste. Les personnes dont les projets fonctionnent dans Eclipse ne les adaptent pas à AS (sans doute parce que cela leur fait mal). Et les personnes qui essaient d'utiliser ces projets en AS rencontrent les mêmes problèmes.

Et de toute façon, si Gradle est ce système de construction super puissant, pourquoi suis-je toujours en train de gérer beaucoup d'autres dépendances dans le gestionnaire de SDK? Pourquoi un projet qui a besoin, par exemple, du ndk ne peut-il pas spécifier cela dans son fichier Gradle afin qu'il soit automatiquement installé et construit en fonction des besoins? Pourquoi NDK est-il spécial? De même pour les plates-formes cibles? Pourquoi est-ce que je les installe explicitement dans IDE plutôt que de simplement vérifier mon projet par rapport à eux et que tout cela soit trié pour moi en coulisse?

16
interstar

Je renvoie deux tutoriels pour écrire la réponse n , deux

Gradle est un outil de construction déclaratif à usage général. C'est un usage général, car il peut être utilisé pour construire à peu près tout ce que vous souhaitez implémenter dans le script de construction. Il est déclaratif puisque vous ne voulez pas voir beaucoup de code dans le fichier de construction, ce qui est illisible et moins facile à gérer. Ainsi, bien que Gradle fournisse l’idée de conventions et une construction simple et déclarative, il rend également l’outil adaptable et la possibilité pour les développeurs de s’étendre. Il fournit également un moyen simple de personnaliser le comportement par défaut et différents points d'ancrage pour ajouter des fonctionnalités tierces.

Gradle combine les avantages des deux outils et fournit des fonctionnalités supplémentaires. Il utilise Groovy comme langage DSL (Domain Specific Language). Il dispose de la puissance et de la flexibilité de l'outil Ant avec des fonctionnalités Maven telles que le cycle de vie de la construction et la facilité d'utilisation.

Pourquoi Gradle? Pourquoi maintenant?

La réponse de l'outil de génération consiste à ajouter une fonctionnalité de script via des mécanismes d'extension non standard. Vous finissez par mélanger le code de script avec XML ou par invoquer des scripts externes à partir de votre logique de génération. Il est facile d’imaginer que vous devrez ajouter de plus en plus de code personnalisé au fil du temps. De ce fait, vous introduisez inévitablement une complexité accidentelle et la facilité de maintenance disparaît.

Supposons que vous souhaitiez copier un fichier dans un emplacement spécifique lors de la création de la version finale de votre projet. Pour identifier la version, cochez une chaîne dans les métadonnées décrivant votre projet. S'il correspond à un schéma de numérotation spécifique (par exemple, 1.0-RELEASE), vous copiez le fichier d'un point A à un point B. Cela peut sembler une tâche triviale d'un point de vue extérieur. Si vous devez utiliser XML, le langage de construction de nombreux outils traditionnels, l'expression de cette logique simple devient assez difficile.

Evolution de Java Outils de génération

La logique de construction Java doit être décrite en XML. XML est idéal pour décrire les données hiérarchiques mais ne permet pas d’exprimer le flux de programme et la logique conditionnelle. À mesure que la complexité d'un script de construction augmente, le maintien du code du bâtiment devient un cauchemar.

Dans Ant , vous faites en sorte que la cible JAR dépende de la cible de compilation. Ant ne donne aucune indication sur la manière de structurer votre projet. Bien que cela permette une flexibilité maximale, Ant rend chaque script de construction unique et difficile à comprendre. Les bibliothèques externes requises par votre projet sont généralement archivées dans le contrôle de version car il n'existe pas de mécanisme automatisé pour les extraire d'un emplacement central.

Maven 1 , publié en juillet 2004, a tenté de faciliter ce processus. Il fournissait une structure de projet et de répertoire normalisée, ainsi qu'une gestion des dépendances. Malheureusement, la logique personnalisée est difficile à implémenter

Gradle s’intègre parfaitement dans cette génération d’outils de construction et répond à de nombreuses exigences des outils de construction modernes (Figure 1). Il fournit une connexion DSL expressive, une approche de configuration par rapport à la configuration et une gestion puissante des dépendances. Il fait le bon choix d'abandonner XML et d'introduire le langage dynamique Groovy pour définir votre logique de construction. Cela semble convaincant, n'est-ce pas?

Gradle combine les meilleures fonctionnalités des autres outils de construction.

enter image description here

Ensemble de fonctionnalités convaincantes de Gradle

enter image description here

Pourquoi construire vos Java projets avec Gradle plutôt que Ant ou Maven?

L'outil de génération par défaut pour Android (et la nouvelle étoile des outils de génération sur la machine virtuelle Java) est conçu pour faciliter la création de scripts pour des versions complexes et multilingues. Si vous utilisez Ant ou Maven, devez-vous changer pour cela?

La clé pour déverrouiller les fonctionnalités puissantes de Gradle dans votre script de construction réside dans la découverte et l'application de son modèle de domaine, comme indiqué dans l'image ci-dessous. enter image description here

Gradle ne peut pas connaître toutes les exigences spécifiques à votre entreprise. En exposant les points d'ancrage dans les phases du cycle de vie, Gradle permet de surveiller et de configurer le comportement d'exécution du script de construction.

Gradle établit un vocabulaire pour son modèle en exposant un DSL implémenté dans Groovy. Lorsque vous traitez avec un domaine complexe, dans ce cas, créer un logiciel, être capable d’utiliser un langage commun pour exprimer votre logique peut être un outil puissant.

Un autre exemple est la façon dont vous pouvez exprimer des dépendances à des bibliothèques externes, un problème très courant résolu par les outils de construction. Gradle prêt à l'emploi, Gradle vous fournit deux blocs de configuration pour votre script de construction vous permettant de définir les dépendances et les référentiels à partir desquels vous souhaitez les récupérer. Si les éléments DSL standard ne répondent pas à vos besoins, vous pouvez même introduire votre propre vocabulaire via le mécanisme d'extension de Gradle.

Intégration avec d'autres outils de construction

Gradle joue bien avec Ant, Maven et Ivy de ses prédécesseurs, comme le montre l'image ci-dessous.

enter image description here

Automatisation de votre projet de la construction au déploiement

enter image description here

Dans l'image: étapes d'un pipeline de déploiement.

  • Compiler le code

  • Exécution de tests unitaires et d'intégration

  • Effectuer une analyse de code statique et générer une couverture de test

  • Créer la distribution

  • Provisioning de l'environnement cible

  • Déploiement du livrable

  • Effectuer des tests fonctionnels de fumée et automatisés

Je renvoie deux tutoriels pour écrire la réponse n , deux

16
Farhana

Gradle est un système de construction avancé ainsi qu'un toolkit de construction avancé permettant de créer une logique de construction personnalisée à l'aide de plugins!

Avantages:

  • Dsl - Langage spécifique à un domaine, basé sur groovy
  • DAG - Graphe acyclique dirigé
  • Constructions incrémentielles
  • Modèle de domaine extensible
  • Gradle est toujours à jour
  • Avant d’exécuter une tâche, Gradle prend un instantané de l’entrée et de la sortie de la tâche.
  • Si l'instantané a changé ou n'existe pas, Gralde exécutera à nouveau cette tâche.

Entrées manifestes

Via le DSL, il est possible de configurer les entrées de manifeste suivantes:

variante de construction

Par défaut, le plug-in Android configure automatiquement le projet pour créer une version de débogage et une version finale de l'application.

dépendances

  1. Dépendances locales:

Si vous avez des archives binaires dans votre système de fichiers local dont dépend un module, telles que des fichiers JAR, vous pouvez déclarer ces dépendances dans le fichier de construction de ce module.

  1. Dépendances distantes:

Tout d'abord, le référentiel doit être ajouté à la liste, puis la dépendance doit être déclarée de manière à ce que Maven ou Ivy déclarent leurs artefacts.

13
SKallmann

Gradle est pour le langage Groovy JVM ce que ant est pour Java. En gros, c'est l'outil de compilation de Groovy. Contrairement à Ant, il est basé sur le langage complet Groovy. Vous pouvez, par exemple, écrire du code de script Groovy dans le script Gradle pour faire quelque chose plutôt que de compter sur une langue de domaine spécifique.

Je ne connais pas l'intégration spécifique d'IntelliJ, mais imaginez que vous puissiez "étendre" Groovy de manière à pouvoir écrire des primitives de langage de "construction" spécifiques et que celles-ci fassent simplement partie du langage Groovy. (La métaprogrammation de Groovy est une discussion en soi.) IntelliJ/Google pourrait utiliser Gradle pour créer un langage de construction de très haut niveau, mais ce langage est construit sur un standard ouvert et évolutif.

12
user500123

Gradle est une boîte à outils de construction automatisée pouvant s'intégrer dans de nombreux environnements différents, non seulement pour les projets Android.

Voici quelques choses que vous pouvez faire avec Gradle.

  • Configuration minimale requise pour les nouveaux projets car Gradle a des configurations par défaut pour vos projets de studio Android.

  • Déclaration de dépendance. Vous pouvez déclarer des fichiers jar de dépendance ou des fichiers de bibliothèque hébergés sur un serveur local ou distant.

  • Gradle génère automatiquement un répertoire de test et un APK test à partir de la source de votre projet.

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

  • Gradle peut générer plusieurs fichiers APK avec différents packages et construire des configurations à partir d'un seul module.

9
Zumry Mohamed

Dans Android Studio, Gradle est un outil de construction personnalisé utilisé pour créer des packages Android (fichiers apk) en gérant les dépendances et en fournissant une logique de construction personnalisée.

APK fichier (Android Application package) est un fichier Zip spécialement formaté qui contient

  • Code octet
  • Ressources (images, interface utilisateur, xml, etc.)
  • Fichier manifeste

Un fichier apk est signé et envoyé sur l'appareil à l'aide de la BAD (Android Debug Bridge), où il est exécuté.

8
Akash Chandwani

Gradle est une boîte à outils de construction avancée pour Android qui gère les dépendances et vous permet de définir une logique de construction personnalisée. les fonctionnalités sont comme

  • Personnalisez, configurez et étendez le processus de construction.

  • Créez plusieurs APK pour votre application avec des fonctionnalités différentes en utilisant le même projet.

  • Réutilisez le code et les ressources.

voir

8
AndEngine

Gradle est un outil de construction personnalisé utilisé pour créer APK ou connu sous le nom de kit de package d'application.

6
Samarth Shah

par @ Brian Gardner:

Gradle est un outil de construction complet et un gestionnaire de dépendances pour les projets de programmation. Il a un langage spécifique au domaine basé sur Groovy. Gradle fournit également un support par convention pour de nombreux types de projets, notamment Java, Android et Scala.

Caractéristique de Gradle:

  1. Gestion de la dépendance
  2. Utiliser Ant de Gradle
  3. Gradle Plugins
  4. Plugin Java
  5. Plugin Android
  6. Constructions multi-projets
4
Dhaval Jivani

Gradle est ce qui permet d’automatiser la construction de Android projets complexes comportant des dizaines de milliers de lignes de code provenant de multiples sources, projets, bibliothèques, etc. Il peut générer conditionnellement de multiples APK optimisés basés sur une pléthore de spécifications de configuration - si vous êtes intéressé, les autres réponses fournissent plus de détails sur cet aspect de Gradle.

Toutefois, si vous êtes nouveau sur Android en développement, Gradle est dans 99% des cas stoppe votre projet. Il s’agit d’un système complexe et impénétrable qui obscurcit efficacement le processus de construction Android et le rend essentiellement inaccessible aux développeurs inexpérimentés, c’est-à-dire pour créer un simple niveau d’entrée Android, un débutant peu méfiant pourrait besoin d’étudier et de comprendre beaucoup de choses qu’ils n’ont pas négociées, telles que:

  • Android APK structure et écosystème
  • Studio Android
  • Classpaths et dépendances Java
  • Sensationnel
  • Gradle construire des scripts
  • Beaucoup d'autres technologies complexes et intéressantes

Toutes ces choses sont intéressantes et utiles pour Android que les développeurs connaissent, mais elles sont loin d'être faciles et constituent un formidable obstacle à l'entrée. Je suppose que ce qui a motivé le PO à poser cette question est le sentiment de frustration qui frappe inévitablement le développeur néophyte après avoir passé beaucoup trop de temps à essayer de concevoir une application simple et à être continuellement contrecarré par Gradle. Le problème est perversement aggravé par l’énorme quantité de documentation hautement technique disponible pour toutes ces technologies. De plus, Gradle est exagéré pour de nombreux besoins de développement.

Une alternative consiste à écrire un script Shell qui construit votre projet en automatisant les outils disponibles dans le SDK Android. Les avantages de cette approche sont nombreux. Pour commencer, c’est probablement le meilleur moyen d’étudier et de comprendre le processus de construction et l’écosystème Android. Il vous permet également de contrôler complètement la manière dont votre application est construite. Cependant, cette approche est plus appropriée pour les technologies profondément irréductibles que pour les noobs inexpérimentés essayant Android.

Ce qui saute aux yeux par son absence (informez-moi s’il en existe une), c’est un IDE léger, de niveau d’entrée, avec un ensemble de fonctionnalités réduit qui simplifie simultanément le processus de construction sans le masquer (donc pas les netbeans ou Eclipse), il pourrait toujours utiliser Gradle (ce qui n'allait pas avec Ant). Il devrait être facile de générer des fichiers APK conformes à quelques configurations courantes et d'utiliser une structure de projet pouvant évoluer vers un projet complet Android Studio si vous décidez de le prendre de cette façon.

3
flurbius

En termes simples, Gradle est un outil fourni par Android Studio afin de mettre en oeuvre deux processus importants:

  1. Construire nos projets
  2. Package AndroidManifest.xml, le dossier res et le code binaire dans un fichier Zip spécialement formaté appelé APK
1
S.Voulgaris

Gradle = Groovy + Cradle commentaire sur le forum Hans Dockter

La confusion est un peu inutile alors que cela pourrait s'appeler "Build" ou quelque chose dans Android Studio.

Nous aimons rendre les choses difficiles pour nous-mêmes dans la communauté du développement.

0
James_UK_DEV