android - studio - update gradle




Qu'est-ce que Gradle dans Android Studio? (18)

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?


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 il est probable que vous ne sachiez pas comment créer votre APK Android sans Eclipse.

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

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

C'est là que le système de construction entre dans l'image. Le système de compilation prend automatiquement tous les fichiers sources ( .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 en un fichier compressé, notre APK bien-aimé.

Ce système de construction utilise certaines conventions: un exemple est de spécifier le répertoire contenant les fichiers source (dans le dossier \src Eclipse) ou les fichiers de ressources (dans le dossier Eclipse c'est \res ).

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 des scripts shell dans Linux ou la syntaxe des fichiers batch dans Windows. Je l'ai?

Gradle est un autre système de construction qui prend les meilleures caractéristiques des autres systèmes de construction et les combine en un seul. Il est amélioré en fonction de leurs lacunes. C'est un système de construction basé sur JVM , ce qui signifie que vous pouvez écrire votre propre script en Java, qui est utilisé par Android Studio.

Une chose cool à propos de gradle est que c'est un système basé sur un plugin . Cela signifie que si vous avez votre propre langage de programmation et que vous voulez automatiser la tâche de construire un paquet (sortie comme un JAR pour Java) à partir de sources, vous pouvez écrire un plugin complet en Java ou Groovy (ou Kotlin, voir here ), 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 sur le marché et s'est rendu compte que vous pouviez écrire vos propres scripts avec peu ou pas de courbe d'apprentissage, et sans apprendre Groovy ni aucune autre nouvelle langue. Ils ont donc écrit le plugin Android pour Gradle.

Vous devez avoir vu le (s) fichier (s) 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 imprimera sur votre console.

Que pouvez-vous faire dans un script de construction?

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


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


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 .


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.


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

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


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


Vous pouvez trouver tout ce que vous devez savoir sur Gradle ici: Gradle Plugin User Guide

Objectifs du nouveau système de construction

Les objectifs du nouveau système de construction sont:

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

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 à l'aide de plugins.

Voici quelques-unes de ses caractéristiques qui nous ont fait choisir Gradle:

  • Langage spécifique au domaine (DSL) pour décrire et manipuler la logique de construction
  • Les fichiers de construction sont basés sur Groovy et permettent le mélange d'éléments déclaratifs à travers le DSL et l'utilisation de 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 de l'IDE

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

DEFINITION :: Gradle peut être décrit comme un mécanisme de construction structuré où il fournit au développeur les outils et la flexibilité pour gérer les ressources d'un projet afin de créer des builds 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 des bibliothèques android ou d'autres bibliothèques tierces en plus selon les exigences faciles qui était une tâche fastidieuse plus tôt. Si la bibliothèque ne correspond pas au projet existant, le développeur reçoit un journal dans lequel la personne peut trouver une solution appropriée pour apporter des modifications au projet afin que la bibliothèque puisse être ajoutée. C'est juste une ligne de dépendance

GÉNÉRATION DE VARIÉTÉS DE CONSTRUCTIONS

Combinaison de types de construction avec des arômes de construction pour obtenir des variances de variances de construction

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

RÉDUCTION DE TAILLE

Gradle aide à réduire la taille de la génération générée en supprimant les ressources inutilisées et les objets inutilisés des bibliothèques intégrées

GESTION DES PERMISSIONS

Nous pouvons Spécifier certaines permissions pour certaines versions en ajoutant certaines permissions dans certains scénarios en fonction des besoins

CONSTRUITS POUR CERTAINS APPAREILS

Nous pouvons gérer la génération de génération pour certains périphériques qui incluent certaines densités et certains niveaux d'api. Cela facilite les déploiements de produits dans le magasin d'applications en fonction des besoins de plusieurs types d'appareils

BONNE RÉFÉRENCE

Tutoriels Vogella


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

Dans d'autres langues par exemple:


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

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.





build-automation