update - build.gradle android studio




Was ist Gradle in Android Studio? (18)

Kurze Antwort

Gradle ist ein Build-System.

Lange Antwort

Vor Android Studio haben Sie Eclipse für Ihre Entwicklungszwecke verwendet, und Sie wissen wahrscheinlich nicht, wie Sie Ihr Android-APK ohne Eclipse erstellen können.

Sie können dies in der Befehlszeile tun, aber Sie müssen lernen, was jedes Werkzeug (dx, aapt) im SDK tut. Eclipse hat uns alle von diesen niedrigen, aber wichtigen, grundlegenden Details gerettet, indem er uns sein eigenes Build-System gegeben hat.

Haben Sie sich jemals gefragt, warum sich der Ordner res im selben Verzeichnis wie Ihr src Ordner befindet?

Hier tritt das Build-System in das Bild ein. Das Build-System übernimmt automatisch alle Quelldateien ( .java oder .xml ), wendet dann das entsprechende Tool an (zB nimmt java Klassen-Dateien und konvertiert sie in dex Dateien) und gruppiert alle in eine komprimierte Datei, unsere geliebte APK.

Dieses Build-System verwendet einige Konventionen: Ein Beispiel ist die Angabe des Verzeichnisses mit den Quelldateien (in Eclipse ist dies der Ordner \src ) oder der Ressourcendateien (in Eclipse ist es der Ordner \res ).

Um all diese Aufgaben zu automatisieren, muss es ein Skript geben. Sie können Ihr eigenes Build-System mit Shell-Skripten in Linux oder Batch-Dateien Syntax in Windows schreiben. Ich habs?

Gradle ist ein weiteres Build-System , das die besten Eigenschaften anderer Build-Systeme nutzt und diese in einem vereint. Es ist auf der Grundlage ihrer Mängel verbessert. Es ist ein JVM-basiertes Build-System , was bedeutet, dass Sie Ihr eigenes Skript in Java schreiben können, welches Android Studio verwendet.

Eine coole Sache über Gradle ist, dass es ein plugin-basiertes System ist . Das bedeutet, wenn Sie Ihre eigene Programmiersprache haben und die Aufgabe automatisieren wollen, ein Paket (Ausgabe wie ein JAR für Java) aus Quellen zu erstellen, dann können Sie ein komplettes Plugin in Java oder Groovy schreiben (oder Kotlin, siehe here ), und verteile es an den Rest der Welt.

Warum hat Google es verwendet?

Google sah eines der fortschrittlichsten Build-Systeme auf dem Markt und erkannte, dass Sie mit wenig oder gar keiner Lernkurve eigene Skripte schreiben könnten, ohne Groovy oder eine andere neue Sprache zu lernen. Also haben sie das Android-Plugin für Gradle geschrieben.

Sie müssen build.gradle Datei (en) in Ihrem Projekt gesehen haben. Dort können Sie Skripte schreiben, um Ihre Aufgaben zu automatisieren. Der Code, den Sie in diesen Dateien gesehen haben, ist Groovy-Code. Wenn Sie System.out.println("Hello Gradle!"); schreiben System.out.println("Hello Gradle!"); Dann wird es auf Ihrer Konsole gedruckt.

Was können Sie in einem Build-Skript tun?

Ein einfaches Beispiel ist, dass Sie einige Dateien von einem Verzeichnis in ein anderes kopieren müssen, bevor der eigentliche Build-Prozess stattfindet. Ein Gradle-Build-Skript kann dies tun.

Gradle ist etwas verwirrend für mich und auch für neue Android-Entwickler. Kann mir jemand erklären, was Gradel in Android Studio ist und wozu es dient? Warum ist Gradle in Android Studio enthalten?


1 - Gradle Hintergrundinformationen.

2 - Gradle Konzepte.

3 - Die Initialisierungsphase.

4 - Die Initialisierungsphase (Forts.).

5 - Was ist Gradle ?

6 - Die Konfigurationsphase.

Siehe diesen LINK


Das Gradle-Build-System unterstützt komplexe Szenarien beim Erstellen von Android-Anwendungen:

Mehrfachverteilung : Die gleiche Anwendung muss für mehrere Kunden oder Firmen angepasst werden

Multi-apk: Unterstützung der Erstellung von mehreren apk für verschiedene Gerätetypen bei der Wiederverwendung von Teilen des Codes


Ein Vorteil von Gradle, den ich gefunden habe, ist:

Gradle wurde für Multiprojekt-Builds entwickelt, die sehr groß werden können, und unterstützt inkrementelle Builds, indem intelligent ermittelt wird, welche Teile des Build-Baums aktuell sind, sodass keine von diesen Teilen abhängige Aufgabe erneut durchgeführt werden muss -hingerichtet.


Gradle ist ein Build-System . Build-Systeme sind Softwaretools, die den Prozess der Programmkompilierung automatisieren. Build-Systeme kommen in verschiedenen Formen und werden für eine Vielzahl von Software-Build-Aufgaben verwendet. Ihr primäres Ziel ist es, ausführbare Dateien effizient zu erstellen.

Ein weiterer verwandter Begriff ist die Build-Automatisierung, bei der es sich um den Prozess der Automatisierung der Erstellung eines Software-Builds und der damit verbundenen Prozesse handelt: Kompilieren von Computerquellcode in Binärcode, Verpacken von Binärcode und Ausführen von automatisierten Tests.

Einige ähnliche Build-System für andere Sprachen sind (siehe vollständige Liste here ):

  1. Apache Ant & Apache Maven - Java
  2. sbt (Simple Build Tool) - für Scala (Play Framework usw.)
  3. AAP - Python-basiertes Build-Tool
  4. Rake (Apache Builder) - Rubin
  5. Leiningen für Clojure

Gradle ist ein Build-Tool benutzerdefinierte und zum Erstellen von APK oder als Anwendungspaket Kit verwendet.


Gradle ist ein erweitertes Build-Toolkit für Android, das Abhängigkeiten verwaltet und Ihnen erlaubt, benutzerdefinierte Build-Logik zu definieren. Features sind wie 1. Anpassen, konfigurieren und erweitern Sie den Build-Prozess. 2. Erstellen Sie mehrere APKs für Ihre App mit verschiedenen Funktionen, die dasselbe Projekt verwenden. 3. Code und Ressourcen wiederverwenden. Verweisen Sie auf diesen Link http://developer.android.com/sdk/installing/studio-build.html


Gradle ist eine Art von Build-Tool , das den Quellcode des Programms erstellt. Es ist also ein wichtiger Bestandteil von Android Studio und muss vor der Entwicklung der Anwendung installiert werden.

Wir müssen es nicht separat installieren, weil das Android Studio es für uns macht, wenn wir unser erstes Projekt machen.


Gradle macht es möglich, das Erstellen komplexer Android-Projekte zu automatisieren, die zehntausende Codezeilen aus mehreren Quellen, Projekten, Bibliotheken usw. enthalten. Es kann abhängig von einer Vielzahl von Konfigurationsspezifikationen bedingt mehrere optimierte APKs generieren Interessiert, die anderen Antworten bieten weitere Details zu diesem Aspekt von Gradle.

Wenn Sie jedoch neu in der Entwicklung von Android sind, hält Gradle in 99% der Fälle Ihr Projekt davon ab. Es ist ein undurchschaubares, komplexes System, das den Android-Build-Prozess effektiv verschleiert und unerfahrenen Entwicklern im Wesentlichen nicht zugänglich macht, dh um eine einfache Einstiegs-Android-App zu entwickeln, muss der ahnungslose Neuling viele Dinge lernen und verstehen, mit denen er nicht verhandelt hat sowie:

  • Android APK Struktur und Ökosystem
  • Android Studio
  • Java Klassenpfade und Abhängigkeiten
  • Groovig
  • Gradle Build-Skripte
  • Viele andere komplexe und interessante Technologien

All diese Dinge sind interessant und nützlich für Android-Entwickler zu wissen, aber sie sind bei weitem nicht einfach und stellen eine gewaltige Eintrittsbarriere dar. Ich vermute, dass das OP, das diese Frage gestellt hat, das Gefühl der Frustration inspiriert hat, das unweigerlich den Neophytenentwickler trifft, nachdem er viel zu lange versucht hat, eine einfache App zu entwickeln, die von Gradle immer wieder vereitelt wird. Das Problem wird durch die überwältigende Menge an hochtechnischer Dokumentation, die für all diese Technologien verfügbar ist, perverserweise verschärft. Auch für große Entwicklungsbedürfnisse ist Gradle Overkill.

Eine Alternative besteht darin, ein Shell-Skript zu schreiben, das Ihr Projekt erstellt, indem die im Android-SDK verfügbaren Tools automatisiert werden. Die Vorteile dieses Ansatzes sind vielfältig. Zunächst einmal ist es wahrscheinlich der beste Weg, den Build-Prozess und das Android-Ökosystem zu studieren und zu verstehen. Außerdem können Sie so vollständig kontrollieren, wie Ihre App aufgebaut ist. Allerdings ist dieser Ansatz eher für technisch schwer verständliche Tech-Köpfe geeignet als für unerfahrene Anfänger, die Android ausprobieren.

Was auffallend an seiner Abwesenheit ist (bitte informieren Sie mich, wenn es so etwas gibt) ist eine Einstiegsversion, leichtgewichtige IDE mit einem reduzierten Feature-Set, das gleichzeitig den Build-Prozess vereinfacht, ohne es zu verdecken (also nicht Netbeans oder Eclipse) Verwende Gradle (was mit Ant nicht stimmte). Es sollte es einfacher machen, APKs zu generieren, die einigen gängigen Konfigurationen entsprechen und eine Projektstruktur verwenden, die sich zu einem vollständigen Android Studio-Projekt entwickeln kann, sollten Sie sich dafür entscheiden.


Hier finden Sie alles, was Sie über Gradle wissen müssen: Gradle Plugin Benutzerhandbuch

Ziele des neuen Build-Systems

Die Ziele des neuen Build-Systems sind:

  • Erleichtern Sie die Wiederverwendung von Code und Ressourcen
  • Machen Sie es leicht, mehrere Varianten einer Anwendung zu erstellen, entweder für die Multi-Apk-Verteilung oder für verschiedene Varianten einer Anwendung
  • Erleichtern Sie die Konfiguration, Erweiterung und Anpassung des Build-Prozesses
  • Gute IDE-Integration

Warum Gradle?

Gradle ist ein erweitertes Build-System sowie ein erweitertes Build-Toolkit, mit dem sich durch Plugins eine individuelle Build-Logik erstellen lässt.

Hier sind einige der Features, die uns zur Wahl von Gradle geführt haben:

  • Domain Specific Language (DSL) zur Beschreibung und Bearbeitung der Build-Logik
  • Build-Dateien basieren auf Groovy und ermöglichen das Mischen von deklarativen Elementen über das DSL und die Verwendung von Code, um die DSL-Elemente zu manipulieren, um benutzerdefinierte Logik bereitzustellen.
  • Eingebautes Abhängigkeitsmanagement durch Maven und / oder Ivy.
  • Sehr flexibel. Ermöglicht die Verwendung von Best Practices, erzwingt jedoch nicht die eigene Vorgehensweise.
  • Plugins können ihre eigene DSL und ihre eigene API für Build-Dateien zur Verfügung stellen.
  • Good Tooling API ermöglicht IDE-Integration

In Android Studio ist Gradle ein benutzerdefiniertes Build-Tool, das zum Erstellen von Android-Paketen (apk-Dateien) verwendet wird, indem Abhängigkeiten verwaltet und benutzerdefinierte Build-Logik bereitgestellt wird.

APK-Datei (Android-Anwendungspaket) ist eine speziell formatierte Zip-Datei, die enthält

  • Byte-Code
  • Ressourcen (Bilder, UI, XML usw.)
  • Manifestdatei

Eine apk-Datei wird signiert und über ADB (Android Debug Bridge) auf das Gerät übertragen, wo sie ausgeführt wird.


von @Brian Gardner:

Gradle ist ein umfangreicher Build-Tool und Dependency Manager für die Programmierung von Projekten. Es hat eine domänenspezifische Sprache basierend auf Groovy. Gradle bietet auch Build-by-Convention-Unterstützung für viele Arten von Projekten, einschließlich Java, Android und Scala.

Merkmal von Gradle:

  1. Abhängigkeitsverwaltung
  2. Ant von Gradle verwenden
  3. Gradle Plugins
  4. Java-Plugin
  5. Android-Plugin
  6. Multi-Projekt-Builds

DEFINITION :: Gradle kann als strukturierter Baumechanismus bezeichnet werden, der Entwicklern die Werkzeuge und die Flexibilität bietet, die Ressourcen eines Projekts zu verwalten, um Builds zu erstellen, die smaller in size und targeting specific requirements für bestimmte Geräte bestimmter Konfigurationen targeting specific requirements

GRUNDKONFIGURATIONEN

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

BIBLIOTHEKEN :: Wir können Android-Bibliotheken oder andere Bibliotheken von Drittanbietern hinzufügen, je nach Anforderungen einfach, was eine mühsame Aufgabe früher war. Wenn die Bibliothek nicht für das vorhandene Projekt geeignet ist, wird dem Entwickler ein Protokoll angezeigt, in dem die Person eine geeignete Lösung finden kann, um Änderungen am Projekt vorzunehmen, damit die Bibliothek hinzugefügt werden kann. Es ist nur eine Zeile der Abhängigkeit

ERZEUGEN VON SORTEN VON BUILDS

Kombinieren Sie Build-Typen mit Build-Flavors, um verschiedene Build-Varianten zu erhalten

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

REDUZIEREN GRÖSSE

Gradle hilft dabei, die Größe des generierten Builds zu reduzieren, indem die unbenutzten Ressourcen auch unbenutzte Objekte aus integrierten Bibliotheken entfernen

Berechtigungen verwalten

Wir können bestimmte Berechtigungen für bestimmte Builds angeben, indem Sie in bestimmten Szenarien basierend auf den Anforderungen bestimmte Berechtigungen hinzufügen

BUILDS für bestimmte Geräte

Wir können Build für bestimmte Geräte verwalten, die bestimmte Dichten und bestimmte API-Ebenen enthalten. Dies hilft bei Produktbereitstellungen im App Store entsprechend den Anforderungen für verschiedene Gerätetypen

Gute Referenz

Vogella Tutorials


Gradle ist ein Build-System, das auf Android Studio läuft.

In anderen Sprachen zum Beispiel:


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