android-studio download - Qu'est-ce que Gradle dans Android Studio?



project sync (22)

The Android build system compiles app resources and source code, and packages them into APKs that you can test, deploy, sign, and distribute. Android Studio uses Gradle , an advanced build toolkit, to automate and manage the build process, while allowing you to define flexible custom build configurations. Each build configuration can define its own set of code and resources, while reusing the parts common to all versions of your app. The Android plugin for Gradle works with the build toolkit to provide processes and configurable settings that are specific to building and testing Android applications.

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


Gradle is an automated build toolkit that allows the way in which projects are built to be configured and managed through a set of build configuration files. This includes defining how a project is to be built, what dependencies need to be fulfilled for the project to build successfully and what the end result (or results) of the build process should be. The strength of Gradle lies in the flexibility that it provides to the developer. The Gradle system is a self-contained, command-line based environment that can be integrated into other environments through the use of plug-ins. In the case of Android Studio, Gradle integration is provided through the appropriately named Android Studio Plug-in.

Bien que le plug-in Android Studio permette d'initier et de gérer les tâches Gradle à partir d'Android Studio, l'encapsuleur de ligne de commande Gradle peut toujours être utilisé pour créer des projets basés sur Android Studio, y compris sur les systèmes sur lesquels Android Studio n'est pas installé.

Les règles de configuration pour construire un projet sont déclarées dans les fichiers de construction Gradle et les scripts basés sur le langage de programmation Groovy.


1 - Informations de fond de Gradle .

2 - Concepts de Gradle .

3 - La phase d'initialisation.

4 - La phase d'initialisation (suite).

5 - Qu'est-ce que Gradle ?

6 - La phase de configuration.

Voir ce LINK


Gradle est un type d' outil de construction qui construit le code source du programme. C'est donc une partie importante d'Android Studio, et doit être installé avant de commencer à développer votre application.

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


Gradle est un système de construction . Les systèmes de construction sont des outils logiciels conçus pour automatiser le processus de compilation d'un programme. Les systèmes de construction se présentent sous diverses formes et sont utilisés pour diverses tâches de construction de logiciels. Alors que leur objectif principal est de créer efficacement des exécutables.

Un autre terme apparenté est Construire l'automatisation, qui consiste à automatiser la création d'une construction logicielle et les processus associés, notamment: compiler le code source de l'ordinateur en code binaire, empaqueter le code binaire et exécuter des tests automatisés.

Peu de système de construction similaire pour d'autres langues sont (voir la liste complète here ):

  1. Apache Ant & Apache Maven - Java
  2. sbt (outil de construction simple) - pour Scala (cadre de jeu etc)
  3. AAP - Outil de construction basé sur Python
  4. Rake (Apache Builder) - Rubis
  5. Leiningen pour Clojure

Voici une explication détaillée sur ce qui est Gradle et comment l'utiliser dans un studio android.

Explorer les fichiers de 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 Fichiers

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

  2. Les projets Android Studio comprennent un ou plusieurs modules, qui sont des composants que vous pouvez créer, tester et déboguer indépendamment. Chaque module a son propre fichier de construction, de sorte que chaque projet Android Studio contient 2 types de fichiers de construction Gradle.

  3. Fichier de construction de niveau supérieur: C'est ici que vous trouverez les options de configuration communes à tous les modules qui composent votre projet.

  4. Fichier de construction de niveau module : Chaque module possède son propre fichier de construction Gradle qui contient des paramètres de construction spécifiques au module. Vous passerez le plus clair de votre temps à éditer des fichiers de construction de niveau module plutôt que le fichier de construction de niveau supérieur de votre projet.

Pour voir ces fichiers build.gradle, ouvrez le panneau Projet d'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 compilation de niveau supérieur

Chaque projet Android Studio contient un seul fichier de compilation 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'aurez 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 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, de niveau module.

D'autres fichiers de Gradle

En plus des 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 apportez des modifications pertinentes à votre projet. Cependant, c'est une bonne idée de comprendre le rôle que jouent ces fichiers dans votre projet.

gradle-wrapper.properties (version Gradle)

Ce fichier permet à d'autres personnes de créer votre code, même si Gradle n'est pas installé sur leur machine. 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 qui composent 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 SDK)

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

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 le contrôle de la source.

Lecture suggérée - Tutoriel Tutsplus

J'ai eu une compréhension claire de gradle de ceci.


Gradle est un outil de construction personnalisé et utilisé pour construire APK ou connu sous le nom de kit de paquet d'application.


Gradle is an automated build toolkit that allows the way in which projects are built to be configured and managed through a set of build configuration files. This includes defining how a project is to be built, what dependencies need to be fulfilled for the project to build successfully and what the end result (or results) of the build process should be. The strength of Gradle lies in the flexibility that it provides to the developer. The Gradle system is a self-contained, command-line based environment that can be integrated into other environments through the use of plug-ins. In the case of Android Studio, Gradle integration is provided through the appropriately named Android Studio Plug-in.


In plain terms, Gradle is a tool provided by Android Studio in order to implement two important processes:

  1. Build our projects
  2. Package AndroidManifest.xml,res folder,and binary code into a specially formatted zip file called APK

Gradle est un système de compilation fonctionnant sous Android Studio .

Dans d'autres langues par exemple:


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 similaires à 1. Personnaliser, configurer et étendre le processus de construction. 2. Créez plusieurs fichiers APK pour votre application avec des fonctionnalités différentes en utilisant le même projet. 3. Réutilisez le code et les ressources. référez-vous à ce lien http://developer.android.com/sdk/installing/studio-build.html


Un avantage de Gradle que j'ai trouvé est:

Gradle a été conçu pour des builds multi-projets qui peuvent devenir assez volumineux et supporte des builds incrémentaux en déterminant intelligemment quelles parties de l'arbre de build sont à jour, de sorte que toute tâche dépendante de ces parties n'aura pas besoin d'être re -réalisé.


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

Fichier APK (package d'application Android) est un fichier zip spécialement formaté qui contient

  • Code d'octet
  • Ressources (images, interface utilisateur, XML, etc.)
  • Fichier manifeste

Un fichier apk est signé et envoyé à l'appareil via ADB (Android Debug Bridge) où il est exécuté.


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

Cependant, si vous êtes nouveau sur Android, Gradle dans 99% des cas est ce qui empêche votre projet de se développer. C'est un système impénétrable et complexe qui obscurcit efficacement le processus de construction Android et le rend essentiellement indisponible pour les développeurs inexpérimentés, c'est-à-dire pour construire une application Android simple d'entrée de gamme dont les débutants peuvent avoir besoin d'étudier et de comprendre. tel que:

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

Toutes ces choses sont intéressantes et utiles pour les développeurs Android, mais elles sont loin d'être faciles et présentent un formidable obstacle à l'entrée. Je soupçonne que ce qui a inspiré le PO à poser cette question est le sentiment de frustration qui frappe inévitablement le développeur néophyte après avoir passé trop de temps à essayer d'obtenir une application simple à construire et être continuellement contrarié par Gradle. Le problème est exacerbé de manière perverse par l'énorme quantité de documentation hautement technique disponible pour toutes ces technologies. Aussi pour une grande quantité de besoins de développement Gradle est exagéré.

Une alternative est d'écrire un script shell qui construit votre projet en automatisant les outils disponibles dans le SDK android. Les vertus de cette approche sont nombreuses, pour commencer, c'est probablement la meilleure façon d'étudier et de comprendre le processus de construction et l'écosystème Android, et cela vous permet de contrôler complètement la façon dont votre application est construite. Cependant, cette approche est plus appropriée pour les têtes de technologie profondément irrémédiablement que pour les noobs inexpérimentés qui essaient Android.

Ce qui est remarquable par son absence (s'il vous plaît informez-moi s'il y a une telle chose) est un IDE d'entrée de gamme, léger avec un ensemble de fonctionnalités réduites qui simplifie le processus de construction tout en ne l'obscurcissant pas (netbeans ou eclipse) 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 Android Studio complet si vous décidez de le faire de cette façon.


par @Brian Gardner:

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

Caractéristique de Gradle:

  1. Gestion des dépendances
  2. Utiliser la fourmi de Gradle
  3. Gradle Plugins
  4. Plugin Java
  5. Plugin Android
  6. Constructions multi-projets

Gradle = Groovy + Cradle Hans Dockter forum comment

The confusion is a bit unnecessary when it could have just been called "Build" or something in Android Studio.

We like to make things difficult for ourselves in the Development community.


Gradle est une boîte à outils de construction automatisée qui peut 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 test APK de la source de votre projet.

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

  • Gradle peut générer plusieurs fichiers APK avec des configurations de paquet et de construction différentes à partir d'un seul module.


Le système de compilation Gradle est conçu pour prendre en charge des scénarios complexes dans la création d'applications Android:

Multi-distribution : la même application doit être personnalisée pour plusieurs clients ou entreprises

Multi-apk: prise en charge de la création de plusieurs apk pour différents types de périphériques tout en réutilisant des parties du code


Au risque d'être discursif, 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 listées dans project.clj.
  • Leiningen obtient les dépendances grâce à Clojars et Maven.
  • Projet compile.

Expérience Android Studio / Gradle typique:

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

Je ne suis pas sûr que ce soit la faute de Gradle. Mais le "import du projet Eclipse" semble assez floconneux. Pour 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 n'a pas réussi à importer un graphe de dépendance complet. L'application Android Studio ne fournit aucune aide ou conseil utile sur la façon de résoudre le problème. Il ne vous dit pas où vous pouvez regarder manuellement dans les dossiers Eclipse. Il ne vous dit pas quelle bibliothèque semble manquer. Ou vous aider à rechercher Maven etc pour eux.

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

Sauf avec Android. Android Studio est maintenant le seul endroit où je ressens encore l'enfer des dépendances manquantes.

Je suis enclin à dire que c'est la faute de Google. Ils ont brisé l'écosystème Android (et des milliers de projets Android / tutoriels en ligne) lorsqu'ils ont décidé 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 c'est pénible pour eux). Et les gens qui essaient d'utiliser ces projets dans AS rencontrent les mêmes problèmes.

Et de toute façon, si Gradle est ce système de construction super puissant, pourquoi est-ce que je gère encore beaucoup d'autres dépendances dans le gestionnaire de sdk? Pourquoi un projet qui a besoin, disons, du ndk ne peut-il pas le spécifier dans son fichier Gradle pour qu'il soit automatiquement installé et construit en cas de besoin? Pourquoi NDK est-il spécial? De même pour les plates-formes cibles? Pourquoi est-ce que je les installe explicitement dans l'EDI plutôt que de simplement vérifier mon projet contre eux et de faire tout cela trié pour moi dans les coulisses?


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

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

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


Gradle est au langage JVM Groovy ce que Ant est à Java. Fondamentalement, 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 de script Groovy dans le script Gradle pour faire quelque chose plutôt que de dépendre d'un langage de domaine spécifique.

Je ne connais pas l'intégration spécifique d'IntelliJ, mais imaginons que vous puissiez "étendre" Groovy de telle sorte que vous puissiez écrire des primitives de langage "build" spécifiques et qu'elles deviennent simplement une partie du langage Groovy. (La métaprogrammation de Groovy est toute une discussion en soi.) IntelliJ / Google pourrait utiliser Gradle pour construire un langage de construction de très haut niveau, mais c'est un langage basé sur un standard ouvert et extensible.


To circumvent the import of all files, where Android Studio ignores the "Ignored Files" list, but still leverage Android Studio VCS, I did the following: This will use the "Ignored Files" list from Android Studio (after import! not during) AND avoid having to use the cumbersome way Tortoise SVN sets the svn:ignore list.

  1. Use the Tortoise SVN repository browser to create a new project folder directly in the repository.
  2. Use Tortoise SVN to checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Ignore the warning. Now you have a versioned top level folder with unversioned content.
  3. Open your project from the local working directory. VCS should now be enabled automatically
  4. Set your file exceptions in File -> Settings -> Version Control -> Ignored Files
  5. Add files to SVN from Android Studio: select 'App' in Project Structure -> VCS -> Add to VCS (this will add all files, except "Ignored Files")
  6. Commit Changes

Going forward, "Ignored Files" will be ignored and you can still manage VCS from Android Studio.

Cheers, -Joost





android android-studio gradle android-gradle build-automation