Co to jest Gradle w Android Studio?

Gradle jest nieco mylące dla mnie, a także dla nowego dewelopera Androida. Czy ktoś może wyjaśnić czym jest gradle w Android Studio i jaki jest jego cel? Dlaczego Gradle jest zawarte w Android Studio?

Author: Vadim Kotov, 2013-05-26

22 answers

Krótka Odpowiedź

Gradle jest systemem budowania.

Długa Odpowiedź

Przed Android Studio używałeś Eclipse do swoich celów rozwojowych, i, są szanse, nie wiesz, jak zbudować swój android APK bez Eclipse.

Możesz to zrobić w wierszu poleceń, ale musisz dowiedzieć się, co każde narzędzie (dx, aapt) robi w SDK. Eclipse uratowało nas wszystkich przed tymi niskimi, ale ważnymi, podstawowymi szczegółami, dając nam swoją własną kompilację system.

Zastanawiałeś się kiedyś, dlaczego res folder znajduje się w tym samym katalogu co twój src folder?

Tutaj system budowania wchodzi w obraz. System kompilacji automatycznie pobiera wszystkie pliki źródłowe (.java lub .xml), a następnie stosuje odpowiednie narzędzie (np. pobiera pliki klas java i konwertuje je na pliki dex) i grupuje je wszystkie w jeden skompresowany plik, nasz ukochany APK.

Ten system budowania wykorzystuje pewne konwencje: przykładem takiego jest aby określić katalog zawierający pliki źródłowe (w Eclipse jest to folder \src) lub pliki zasobów (w Eclipse jest to folder \res).

Teraz, aby zautomatyzować wszystkie te zadania, musi istnieć skrypt; możesz napisać własny system budowania używając skryptów powłoki w Linuksie lub składni plików wsadowych w windows. Rozumiesz?

Gradle jest kolejnym systemem budowania , który pobiera najlepsze funkcje z innych systemów budowania i łączy je w jeden. Jest ulepszony w oparciu o ich wady. Jest to system oparty na JVM , co oznacza, że możesz napisać własny skrypt w Javie, z którego korzysta Android Studio.

Jedną fajną rzeczą w gradle jest to, że jest to system oparty na wtyczkach . Oznacza to, że jeśli masz własny język programowania i chcesz zautomatyzować zadanie budowania jakiegoś pakietu (wyjście jak jar dla Javy) ze źródeł, możesz napisać pełną wtyczkę w Javie lub Groovy (lub Kotlin, zobacz tutaj), i Rozdaj to reszcie świata.

Dlaczego Google go użyło?

Google zobaczył jeden z najbardziej zaawansowanych systemów budowania na rynku i zdał sobie sprawę, że można pisać własne skrypty z małą krzywą uczenia się lub bez nauki Groovy lub jakiegokolwiek innego nowego języka. Więc napisali wtyczkę Androida dla Gradle.

Musisz zobaczyć build.gradle plik(y) w swoim projekcie. Tam można pisać skrypty, aby zautomatyzować swoje zadania. Kod, który widziałeś w tych plikach, jest świetny. kod. Jeśli napiszesz System.out.println("Hello Gradle!");, zostanie on wydrukowany na Twojej konsoli.

Co można zrobić w skrypcie budowania?

Prostym przykładem jest to, że musisz skopiować niektóre pliki z jednego katalogu do drugiego, zanim dojdzie do rzeczywistego procesu budowania. Skrypt Gradle build może to zrobić.

 1287
Author: Gagandeep Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 11:07:48

To nowe narzędzie do budowania, które Google chce używać dla Androida. Jest używany ze względu na to, że jest bardziej rozszerzalny i przydatny niż ant. Ma to na celu zwiększenie doświadczenia programistów.

[[0]}możesz zobaczyć wykład Xaviera Ducroheta z zespołu programistów Androida na Google I / O tutaj.

Jest też kolejna rozmowa na Android Studio przez Xaviera i Tor Norbye, również Podczas Google I / O tutaj .

 140
Author: daniel_c05,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-26 03:48:30

Gradle jest systemem kompilacji działającym na Android Studio .

W innych językach na przykład:

 40
Author: phi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-21 02:25:12

Oto szczegółowe wyjaśnienie, czym jest Gradle i jak z niego korzystać w Android Studio.

Przeglądanie plików Gradle

  1. za każdym razem, gdy tworzysz projekt w Android Studio, system budowania automatycznie generuje wszystkie niezbędne pliki kompilacji Gradle.

Gradle Build Files

  1. Gradle build files use a Domain Specific Language or DSL to define niestandardowa logika budowania i interakcja z systemem Android elementy wtyczki Android dla Gradle.

  2. Android Studio projects składa się z 1 lub więcej modułów, które są komponenty, które można budować, testować i debugować niezależnie. Każdy moduł ma swój własny plik kompilacji, więc każdy projekt Android Studio zawiera 2 rodzaje plików Gradle build.

  3. Plik kompilacji najwyższego poziomu: tutaj znajdziesz opcje konfiguracyjne, które są wspólne dla wszystkich modułów tworzących Twój projekt.

  4. Plik Budowania Na Poziomie Modułu: Każdy moduł ma swój własny plik budowania Gradle, który zawiera ustawienia budowania specyficzne dla modułu. Większość czasu poświęcisz na edytowanie plików kompilacji na poziomie modułów, a nie na najwyższym poziomie.

Aby spojrzeć na te pliki build.gradle, otwórz Panel projektu Android Studio (wybierając kartę Projekt) i rozwiń folder Skrypty Gradle. Pierwsze dwa elementy w folderze skryptów Gradle to Pliki Gradle na poziomie projektu i modułu

Top-Level Gradle Build File

Każdy projekt Android Studio zawiera pojedynczy plik Gradle na najwyższym poziomie. Ten plik build.gradle jest pierwszym elementem, który pojawia się w folderze skryptów Gradle i jest wyraźnie oznaczony projekt.

Przez większość czasu nie będziesz musiał wprowadzać żadnych zmian w tym pliku, ale nadal warto zrozumieć jego treść i rolę, jaką odgrywa w ramach Twojego projektu.

Pliki Gradle Na Poziomie Modułu

Oprócz plik budowania Gradle na poziomie projektu, każdy moduł ma własny plik budowania Gradle. Poniżej znajduje się adnotowana wersja podstawowego, modułowego pliku Gradle build.

Inne Pliki Gradle

Oprócz budowy.pliki gradle, Twój folder skryptów Gradle zawiera inne pliki Gradle. Przez większość czasu nie będziesz musiał ręcznie edytować tych plików, ponieważ będą one aktualizowane automatycznie po wprowadzeniu istotnych zmian w projekcie. Jednak dobrym pomysłem jest zrozumienie rola te pliki odtwarzane w projekcie.

Gradle-wrapper.properties (Gradle Version)

Ten plik pozwala innym ludziom zbudować twój kod, nawet jeśli nie mają zainstalowanego Gradle na swoim komputerze. Ten plik sprawdza, czy zainstalowana jest prawidłowa wersja Gradle i w razie potrzeby pobiera niezbędną wersję.

Ustawienia.gradle

Ten plik odwołuje się do wszystkich modułów, które tworzą twój projekt.

Gradle.właściwości (Właściwości Projektu)

Ten plik zawiera informacje konfiguracyjne dla całego projektu. Domyślnie jest pusta, ale można zastosować szeroki zakres właściwości Twój projekt dodając je do tego pliku.

Lokalne.właściwości (lokalizacja SDK)

Ten plik informuje wtyczkę Android Gradle, gdzie może znaleźć instalację Android SDK.

Uwaga: local.properties zawiera informacje specyficzne dla lokalnej instalacji Android SDK. Oznacza to, że nie powinieneś trzymać tego pliku pod kontrolą źródła.

Sugerowana lektura - Tutsplus Tutorial

Zrozumiałam z tego gradle ' a.
 31
Author: Chavan Parmeshwar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-11 01:33:04

Gradle jest jednym z typów narzędzia do budowania, które buduje kod źródłowy programu. Jest to więc ważna część Android Studio i musi zostać zainstalowana przed rozpoczęciem tworzenia aplikacji.

Nie musimy go instalować osobno, ponieważ Android Studio robi to za nas, kiedy tworzymy nasz pierwszy projekt.

 26
Author: karan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-16 04:38:11

definicja:: Gradle można opisać strukturyzowany mechanizm budowania, w którym zapewnia programistom narzędzia i elastyczność do zarządzania zasobami projektu w celu tworzenia kompilacji, które są smaller in size, targeting specific requirements dla niektórych urządzeń o określonych konfiguracjach


PODSTAWOWE KONFIGURACJE

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

biblioteki:: możemy dodać biblioteki Androida lub inne biblioteki stron trzecich, jak na wymagania łatwe, co wcześniej było żmudnym zadaniem. Jeśli biblioteka nie pasuje do istniejącego projektu, deweloper jest wyświetlany dziennik, w którym osoba może znaleźć odpowiednie rozwiązanie do wprowadzania zmian w projekcie, tak aby Biblioteka mogła być dodana. To tylko jedna linia zależności


generowanie ODMIANY BUDÓW

łączenie typów build ze smakami build, aby uzyskać różne odmiany build varients

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

ZMNIEJSZENIE ROZMIARU

Gradle pomaga w zmniejszeniu rozmiaru generowanej kompilacji poprzez usunięcie nieużywanych zasobów również nieużywanych rzeczy ze zintegrowanych bibliotek


ZARZĄDZANIE UPRAWNIENIAMI

możemy określić pewne uprawnienia dla niektórych buildów poprzez dodawanie pewnych uprawnień w określonych scenariuszach na podstawie wymagań


BUDUJE DLA NIEKTÓRYCH URZĄDZEŃ

możemy zarządzać generowaniem kompilacji dla niektórych urządzeń, które zawierają pewne gęstości i pewne poziomy api. Pomaga to we wdrożeniach produktów w app store zgodnie z wymaganiami na wielu typach urządzeń


DOBRE REFERENCJE

Vogella Tutorials

 21
Author: Devrath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-26 17:43:03

Tutaj znajdziesz wszystko, co musisz wiedzieć o Gradle: Gradle Plugin User Guide

Cele nowego systemu budowania

Cele nowego systemu budowania to:

    Ułatw sobie ponowne wykorzystanie kodu i zasobów]}
  • ułatwiają tworzenie kilku wariantów aplikacji, zarówno dla dystrybucji multi-apk, jak i dla różnych smaków aplikacji
  • ułatwiaj konfigurację, rozszerzanie i dostosowywanie kompilacji proces
  • dobra integracja IDE
Dlaczego Gradle?

Gradle jest zaawansowanym systemem budowania, jak również zaawansowanym zestaw narzędzi pozwalający na tworzenie niestandardowej logiki budowania za pomocą wtyczek.

Oto niektóre z jego funkcji, które sprawiły, że wybraliśmy Gradle:

    Domain Specific Language (DSL) do opisywania i manipulowania logiką budowania
  • Pliki Build są oparte na Groovy i pozwalają na mieszanie elementów deklaratywnych poprzez DSL i za pomocą kod do manipulowania elementami DSL aby zapewnić niestandardową logikę.
  • wbudowane zarządzanie zależnościami przez Mavena i / lub Ivy.
  • Bardzo elastyczny. Pozwala na stosowanie najlepszych praktyk, ale nie wymusza własnego sposobu działania.
  • wtyczki mogą wystawiać własne DSL i własne API dla plików kompilacji do użycia.
  • Dobre narzędzie API umożliwiające integrację IDE
 19
Author: Mahdi Rashidi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-16 04:41:38

Gradle jest systemem budowania . systemy budowania są narzędziami programowymi przeznaczonymi do automatyzacji procesu kompilacji programów. Systemy budowania występują w różnych formach i są używane do różnych zadań budowania oprogramowania. Ich głównym celem jest wydajne tworzenie plików wykonywalnych.

Innym pokrewnym terminem jest Build automation, który jest procesem automatyzacji tworzenia kompilacji oprogramowania i powiązanych z nią procesów, w tym: kompilacji kodu źródłowego komputera do binarnych kod, pakowanie kodu binarnego i uruchamianie automatycznych testów.

Kilka podobnych systemów budowania dla innych języków jest (Zobacz pełną listę tutaj):

  1. Apache Ant & Apache Maven-Java
  2. [13]} SBT (Simple Build Tool) - dla Scali (Play Framework itp.)
  3. A - A-P-narzędzie do budowania oparte na Pythonie
  4. Rake (Apache Builder) - Ruby
  5. Leiningen dla Clojure
 17
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 11:58:07

Ryzykując dyskursywność myślę, że za tym stoi pytanie, Dlaczego Android Studio / Gradle jest tak złe.

Typowe doświadczenie Clojure:

  • Pobierz projekt z zależnościami wymienionymi w projekcie.clj.
  • Leiningen dostaje zależności dzięki Clojars i Maven.
  • kompiluje projekt.

Typowe doświadczenie Android Studio / Gradle:

  • "Import my Eclipse project".
  • ok projekt zaimportowany.
  • Gradle robi to samo ... czekaj ... czekaj ... czekaj ... Gradle skończył.
  • Kompiluj ... nie mogę skompilować, bo nie wiem co to jest X / nie mogę znaleźć biblioteki Y.

Nie jestem pewien, czy to wina Gradle ' a. Ale "import z Eclipse project" wydaje się dość łuszczący. Dla wszystkich rzekomych wyrafinowań Gradle i zalet systemu kompilacji, Android Studio nie wydaje się importować zależności kompilacji lub procesu kompilacji z Eclipse bardzo dobrze.

Nie informuje, kiedy nie udało się zaimportować pełnego wykresu zależności. Android Studio nie daje użytecznej pomocy ani wskazówek, jak rozwiązać problem. To nie mówi, gdzie można ręcznie szukać w folderach Eclipse. Nie wiadomo, której biblioteki brakuje. Lub pomóc w wyszukiwaniu Maven itp. dla nich.

W 2016 roku rzeczy takie jak Leiningen / Clojars, npm node, Pip Pythona lub Apkg Debiana (I jestem pewien, że wiele podobnych menedżerów pakietów dla innych Języki i systemy) wszystko działa pięknie ... brakujące zależności należą do przeszłości.

Z wyjątkiem Androida. Android Studio jest teraz jedynym miejscem, w którym wciąż wydaje mi się doświadczać piekła braku zależności.

Jestem skłonny powiedzieć, że to wina Google. Złamali ekosystem Androida (i tysiące istniejących projektów Androida / samouczków online), gdy nonszalancko zdecydowali się przejść z Eclipse do Android Studio / Gradle bez produkcji solidnego procesu konwersji. Ludzie, których projekty działają w Eclipse nie dostosowują ich do AS (prawdopodobnie dlatego, że jest to dla nich ból). A ludzie, którzy próbują wykorzystać te projekty w AS, uderzają w te same problemy.

A tak w ogóle, jeśli Gradle jest tym super potężnym systemem budowania, dlaczego wciąż zarządzam wieloma innymi zależnościami w Menedżerze sdk? Dlaczego projekt, który potrzebuje, powiedzmy, ndk, nie może tego określić w swoim pliku Gradle, aby został automatycznie zainstalowany i zbudowany w razie potrzeby? Dlaczego NDK jest wyjątkowy? Podobnie jest z platformami docelowymi? Dlaczego instaluję je wyraźnie w IDE, a nie sprawdzam mój projekt przeciwko nim i mam to wszystko uporządkowane za kulisami?

 14
Author: interstar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-21 14:33:56

Gradle jest zaawansowanym systemem budowania, a także zaawansowanym zestawem narzędzi pozwalającym na tworzenie niestandardowej logiki budowania za pomocą wtyczek!

Zalety:

  • Dsl-język specyficzny dla domeny, oparty na groovy
  • Wykres acykliczny DAG
  • przyrostowe buduje
  • rozszerzalny model domeny
  • Gradle jest zawsze na bieżąco
  • zanim zadanie zostanie wykonane, Gradle robi migawkę swojego zadania wejście i wyjście.
  • W przypadku migawka się zmieniła lub nie istnieje, Gralde będzie wykonaj ponownie to zadanie.

Wpisy manifestu

Poprzez DSL można skonfigurować następujące wpisy manifestu:

Build variant

Domyślnie Wtyczka Android automatycznie ustawia projekt na zbuduj zarówno wersję debugowania, jak i wersję release aplikacji.

Zależności

  1. Zależności Lokalne:

Jeśli masz archiwa binarne w lokalnym systemie plików, że moduł zależności, np. pliki JAR, Można zadeklarować te zależności w plik budowania tego modułu.

  1. Zdalne Zależności:

Najpierw należy dodać repozytorium do listy, a następnie zależność musi być zadeklarowana w sposób, w jaki Maven lub Ivy deklarują swoje artefakty.

 10
Author: SKallmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 05:50:51

Jedną z zalet Gradle, którą znalazłem jest:

Gradle został zaprojektowany dla wielu projektów, które mogą urosnąć do całkiem dużych rozmiarów i wspiera przyrostowe Kompilacje poprzez inteligentne określanie, które części drzewa kompilacji są aktualne, tak aby każde zadanie zależne od tych części nie musiało być ponownie wykonywane.

 9
Author: asok Buzz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-21 18:02:54

Gradle jest dla języka Groovy JVM tym, czym ant jest dla Javy. Zasadniczo jest to narzędzie do budowania Groovy ' ego. W przeciwieństwie do Ant, opiera się na pełnym języku Groovy. Możesz na przykład napisać kod skryptu Groovy w skrypcie Gradle, aby zrobić coś, a nie polegać na konkretnym języku domeny.

Nie znam specyficznej integracji IntelliJ, ale wyobraź sobie, że możesz "rozszerzyć" Groovy tak, że możesz napisać określone" budować " prymitywy językowe i po prostu stały się częścią Groovy język. (Metaprogramowanie Groovy ' ego to cała dyskusja sama w sobie.) IntelliJ / Google mógłby użyć Gradle do zbudowania języka budowania bardzo wysokiego poziomu, ale jest to język zbudowany na rozszerzalnym, otwartym standardzie.

 8
Author: user500123,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-26 01:34:13

Gradle to zaawansowany zestaw narzędzi do budowania dla Androida, który zarządza zależnościami i pozwala zdefiniować niestandardową logikę budowania. funkcje są jak 1. Dostosuj, skonfiguruj i rozszerz proces budowania. 2. Utwórz wiele apk dla swojej aplikacji z różnymi funkcjami przy użyciu tego samego projektu. 3. Ponowne wykorzystanie kodu i zasobów. refer this link http://developer.android.com/sdk/installing/studio-build.html

 7
Author: AndEngine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-23 10:50:14

W Android Studio Gradle jest niestandardowym narzędziem do budowania pakietów Androida (plików apk) poprzez zarządzanie zależnościami i dostarczanie niestandardowej logiki budowania.

Plik APK (Android Application package) jest specjalnie sformatowanym plikiem zip, który zawiera

  • kod bajtowy
  • Resources (images, UI, xml etc)
  • plik Manifest

Plik apk zostaje podpisany i wypchnięty do urządzenia za pomocą ADB (Android Debug Bridge), gdzie jest wykonywany.

 7
Author: Akash Chandwani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-18 08:17:25

Gradle to zautomatyzowany zestaw narzędzi do budowania, który może integrować się z wieloma różnymi środowiskami nie tylko dla projektów z systemem Android.

Oto kilka rzeczy, które możesz zrobić z gradle.

  • Minimalna konfiguracja wymagana dla nowych projektów, ponieważ Gradle ma domyślne konfiguracje dla projektów android studio.

  • Deklaracja Zależnościowa. Możesz zadeklarować pliki JAR zależności lub pliki biblioteki, które są hostowane w lokalnym lub zdalnym serwer.

  • Gradle automatycznie generuje katalog testowy i testowy APK ze źródła twojego projektu.

  • Jeśli dodasz wszystkie niezbędne informacje, takie jak keyPassword i keyAlias, do pliku kompilacji Gradle, możesz użyć Gradle do generowania podpisanych plików APK.

  • Gradle może generować wiele plików APK z różnymi pakietami i budować konfiguracje z jednego modułu.

 7
Author: Zumry Mohamed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 19:57:35

Polecam dwa tutoriale do napisania odpowiedzi jeden,dwa

Gradel jest narzędziem ogólnego przeznaczenia, deklaratywnym. Jest to ogólny cel, ponieważ może być używany do budowania prawie wszystkiego, co chcesz zaimplementować w skrypcie budowania. Jest deklaratywny, ponieważ nie chcesz widzieć dużo kodu w pliku budowania, który nie jest czytelny i mniej możliwy do utrzymania. Tak więc, podczas gdy Gradle dostarcza idei konwencji i prostej i deklaratywnej Budowy, to także sprawia, że narzędzie można dostosować, a programiści możliwość rozszerzenia. Zapewnia również łatwy sposób dostosowywania domyślnego zachowania i różnych hooków, aby dodać funkcje innych firm.

Gradle łączy dobre części obu narzędzi i zapewnia dodatkowe funkcje i używa Groovy jako języka specyficznego dla domeny (DSL). Ma moc i elastyczność narzędzia Ant Z FUNKCJAMI Maven, takimi jak cykl życia i łatwość użycia.

Dlaczego Gradle? Dlaczego Teraz?

The odpowiedzią narzędzia build jest dodanie funkcjonalności skryptów poprzez niestandardowe mechanizmy rozszerzeń. Kończy się to mieszaniem kodu skryptowego z XML lub wywoływaniem zewnętrznych skryptów z logiki budowania. Łatwo sobie wyobrazić, że będziesz musiał z czasem dodawać coraz więcej niestandardowego kodu. W rezultacie nieuchronnie wprowadzasz przypadkową złożoność, a konserwacja wychodzi z mody.

Załóżmy, że chcesz skopiować plik do określonej lokalizacji podczas budowania wersji release Twój projekt. Aby zidentyfikować wersję, należy sprawdzić ciąg znaków w metadanych opisujących projekt. Jeśli pasuje do określonego schematu numeracji (na przykład Wersja 1.0), kopiujesz Plik z punktu A do punktu B. z zewnątrz może to brzmieć jak trywialne zadanie. Jeśli musisz polegać na XML, język budowania wielu tradycyjnych narzędzi, wyrażanie tej prostej logiki staje się dość trudne.

Evolution of Java Build Tools

Java build logika musi być opisana w XML. XML jest świetny do opisywania danych hierarchicznych, ale nie jest w stanie wyrazić przepływu programu i logiki warunkowej. W miarę jak skrypt budowania staje się coraz bardziej skomplikowany, utrzymanie kodu budynku staje się koszmarem.

W Ant powoduje, że cel jar zależy od celu kompilacji. Ant nie daje żadnych wskazówek, jak zorganizować swój projekt. Chociaż pozwala to na maksymalną elastyczność, Ant sprawia, że każdy skrypt kompilacji jest wyjątkowy i trudny do zrozumienia. Zewnętrzne biblioteki wymagane przez twój projekt są zwykle sprawdzane w kontroli wersji, ponieważ nie ma automatycznego mechanizmu, aby pobrać je z centralnej lokalizacji.

Maven 1, wydany w lipcu 2004 roku, próbował ułatwić ten proces. Zapewniał on ustandaryzowaną strukturę projektu i katalogów, a także zarządzanie zależnościami. Niestety, niestandardowa logika jest trudna do zaimplementowania

Gradle pasuje do tej generacji narzędzi do budowania i spełnia wiele wymagań nowoczesne narzędzia do budowania (Rysunek 1). Zapewnia ekspresyjny DSL, podejście konwencyjne nad konfiguracją i potężne zarządzanie zależnościami. To sprawia, że właściwy ruch, aby porzucić XML i wprowadzić dynamiczny język Groovy, aby zdefiniować logikę budowania. Brzmi fascynująco, prawda?

Gradle łączy w sobie najlepsze cechy innych narzędzi do budowania.

Tutaj wpisz opis obrazka

Atrakcyjny zestaw funkcji Gradle

Tutaj wpisz opis obrazka

Po Co Budować Swój Projekty Java z Gradle a nie Ant czy Maven?

Domyślne narzędzie do budowania dla Androida (i nowa gwiazda narzędzi do budowania w JVM) zostało zaprojektowane w celu ułatwienia skryptowania złożonych, wielojęzycznych kompilacji. Czy należy zmienić na to, jeśli używasz Ant lub Maven?

Klucz Do Odblokowania Funkcji Mocy Gradle w skrypcie budowania polega na odkryciu i zastosowaniu modelu domeny, jak pokazano na poniższym obrazku. Tutaj wpisz opis obrazka

Gradle nie możesz poznać wszystkich wymagań specyficznych dla Twojej konstrukcji korporacyjnej. Odsłaniając Hooki w fazach cyklu życia, Gradle pozwala monitorować i konfigurować zachowanie skryptu kompilacji.

Gradle ustanawia słownictwo dla swojego modelu, eksponując DSL zaimplementowany w Groovy. Podczas radzenia sobie ze złożoną domeną problemową, w tym przypadku zadanie budowania oprogramowania, możliwość używania wspólnego języka do wyrażania logiki może być potężnym narzędziem.

Innym przykładem jest sposób wyrażania zależności do zewnętrznych bibliotek, bardzo częstego problemu rozwiązywanego przez narzędzia do budowania. Gotowe Gradle udostępnia dwa bloki konfiguracyjne dla skryptu budowania, które pozwalają zdefiniować zależności i repozytoria, z których chcesz je pobrać. Jeśli standardowe elementy DSL nie pasują do Twoich potrzeb, możesz nawet wprowadzić własne słownictwo za pomocą mechanizmu rozszerzenia Gradle.

Integracja z innymi konstrukcjami Narzędzia

Gradle dobrze gra z Ant, Maven i Ivy swoich poprzedników, jak pokazano na poniższym obrazku.

Tutaj wpisz opis obrazka

Automatyzacja projektu od kompilacji do wdrożenia

Tutaj wpisz opis obrazka

Na zdjęciu: etapy wdrażania rurociągu.

  • Kompilowanie kodu

  • Uruchamianie testów jednostkowych i integracyjnych

  • Wykonywanie statycznej analizy kodu i generowanie testu pokrycie

  • Tworzenie dystrybucji

  • Tworzenie środowiska docelowego

  • [[7]}

  • Wykonywanie automatycznych testów funkcjonalnych i dymowych

Polecam dwa tutoriale do napisania odpowiedzi jeden,dwa

 7
Author: farhana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 06:19:15

System Gradle build został zaprojektowany do obsługi złożonych scenariuszy w tworzeniu aplikacji na Androida:

Multi-distribution: ta sama aplikacja musi być dostosowana dla kilku klientów lub firm

Multi-apk: wspieranie tworzenia wielu apk dla różnych typów urządzeń podczas ponownego wykorzystywania części kodu

 6
Author: Biswajit Karmakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-29 18:58:29

Gradle to niestandardowe narzędzie do budowania i używane do budowania APK lub znane jako zestaw pakietów aplikacji.

 5
Author: Samarth Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-24 05:11:14

By @ Brian Gardner:

Gradle jest rozbudowanym narzędziem budowania i menedżerem zależności dla projektów programistycznych. Ma specyficzny dla domeny język oparty na Groovy. Gradle zapewnia również obsługę kompilacji według konwencji dla wielu typów projektów, w tym Java, Android i Scala.

Funkcja Gradle:

  1. Zarządzanie Zależnościami
  2. używanie mrówki z Gradle
  3. Gradle Plugins
  4. Java Plugin
  5. Android Plugin
  6. Multi-Project Builds
 3
Author: Dhaval Jivani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-23 14:37:33

Gradle jest tym, co umożliwia automatyzację budowania złożonych projektów Androida, które obejmują 10s z tysięcy linii kodu z wielu źródeł, projektów, bibliotek itp. Może warunkowo generować wiele zoptymalizowanych plików APK w oparciu o mnóstwo specyfikacji konfiguracji - jeśli jesteś zainteresowany, inne odpowiedzi dostarczają więcej szczegółów na temat tego aspektu Gradle.

Jednak, jeśli jesteś nowy w rozwijaniu Androida, Gradle w 99% przypadków jest tym, co zatrzymuje twój projekt z budynku. Jest to tajemniczy, złożony system, który skutecznie zaciemnia proces budowania Androida i zasadniczo czyni go niedostępnym dla niedoświadczonych programistów, tj. aby zbudować prostą aplikację na Androida na poziomie podstawowym, niczego nie podejrzewający początkujący może potrzebować przestudiować i zrozumieć wiele rzeczy, o które nie targowali się, takich jak: {]}

  • struktura i ekosystem APK Androida
  • Android Studio
  • Java Classpaths and zależności
  • Groovy
  • Gradle build scripts
  • wiele innych skomplikowanych i ciekawych technologii

Wszystkie te rzeczy są interesujące i przydatne dla programistów Androida, ale są dalekie od łatwego i stanowią ogromną barierę wejścia. Podejrzewam, że to, co zainspirowało OP do zadania tego pytania, to poczucie frustracji, które nieuchronnie uderza w programistę neophyte po spędzeniu zbyt długiego czasu, próbując uzyskać prostą aplikację do budowania i bycia ciągle / align = "left" / Problem przewrotnie potęguje przytłaczająca ilość wysoce technicznej dokumentacji dostępnej dla wszystkich tych technologii. Również dla dużej ilości potrzeb rozwojowych Gradle jest przesadą.

Alternatywą jest napisanie skryptu powłoki, który buduje Twój projekt poprzez automatyzację narzędzi dostępnych w android SDK. Zalety tego podejścia jest wiele, na początek jego prawdopodobnie najlepszym sposobem, aby studiować i zrozumieć proces budowania i Ekosystem Android, i pozwala całkowicie kontrolować, jak aplikacja jest zbudowana. Jednak to podejście jest bardziej odpowiednie dla głęboko irredeemable tech-heads niż dla niedoświadczonych noobów wypróbowujących Androida.

To, co rzuca się w oczy przez jego brak (Proszę mnie poinformować, jeśli coś takiego istnieje) , jest podstawowym, lekkim IDE z zredukowanym zestawem funkcji, które jednocześnie upraszcza proces budowania, nie zasłaniając go (więc nie netbeans lub eclipse), którego mógłby nadal używać Gradle (co było nie tak z mrówką). Powinno to ułatwić generowanie plików APK, które są zgodne z kilkoma typowymi konfiguracjami i wykorzystują strukturę projektu, która może ewoluować do pełnego projektu Android Studio, jeśli zdecydujesz się to zrobić w ten sposób.

 2
Author: flurbius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-26 03:03:27

Mówiąc wprost, Gradle jest narzędziem dostarczanym przez Android Studio w celu wdrożenia dwóch ważnych procesów:

  1. buduj nasze projekty
  2. Pakiet AndroidManifest.xml, folder res i kod binarny do specjalnie sformatowanego pliku zip o nazwie APK
 0
Author: S.Voulgaris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-08 22:55:33

Gradle = Groovy + Cradle Hans Dokter forum komentarz

Zamieszanie jest trochę niepotrzebne, gdy można go po prostu nazwać "Build" lub coś w Android Studio.

Lubimy utrudniać sobie życie w społeczności deweloperskiej.

 -1
Author: James_UK_DEV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-08 14:57:58