Ins și Outs of Gradle

Fiind primul IDE (Integrated Development Environment) dedicat în întregime Androidului, studioul Android susținut de Google este o perspectivă interesantă pentru dezvoltatorii Android. Dar, de asemenea, înseamnă a face față unor noi tehnologii, în special a sistemului de construcție Gradle.

Acest articol vă pune la dispoziție noul sistem de construire Android, de la elementele de bază ale sistemului Gradle și de la ceea ce face, la o privire aprofundată asupra unora dintre cele mai importante fișiere Gradle, la învățarea modului de a executa și a monitoriza sarcinile Gradle.

De asemenea, veți privi mai atent diferitele ferestre de instrumente Gradle din Android Studio și veți învăța cum să adăugați dependențe la un proiect, toate fără experiență anterioară Gradle.

Primul pas în abordarea noului sistem de construire Android este înțelegerea exactă a ceea ce este Gradle și de ce includerea sa în Android Studio este o veste atât de bună pentru dezvoltatorii Android.

1. Ce este Gradul?

Gradle este un set de instrumente de construcție automatizat care se poate integra în multe medii diferite, prin intermediul pluginurilor. În aplicația Android Studio, integrarea în Gradle se realizează prin pluginul Android Gradle.

Dacă nu ați mai folosit-o niciodată pe Gradle, aceasta poate părea o barieră frustrantă la intrare atunci când intenționați să faceți mutarea la Android Studio. Cu toate acestea, Gradle are multe de oferit dezvoltatorilor Android, așa că merită să investești ceva timp în învățarea insulelor și out-urilor din Gradle. Iată câteva dintre lucrurile pe care le puteți face cu Gradle.

Minimizați configurarea necesară pentru proiectele noi

Gradle are un set de setări implicite de configurare care se aplică automat fiecărui proiect pe care îl creați în Android Studio. Dacă dezvoltați un proiect care nu respectă aceste reguli de configurare implicite, Gradle este ușor de personalizat.

Declarați dependențele de proiect

Dependențele pot fi module, fișiere JAR sau biblioteci și pot fi localizate fie pe sistemul de fișiere local, fie pe un server de la distanță.

Testați-vă proiectul

Gradle generează automat un director de testare și un test APK din sursele de testare ale proiectului dvs. și poate executa testele dvs. în timpul procesului de construire.

Generați fișierele APK semnate

Dacă adăugați toate informațiile necesare, cum ar fi keyPassword și keyAlias, în fișierul dvs. de construcție Gradle, puteți utiliza programul Gradle pentru a genera fișierele APK semnate.

Generați mai multe fișiere APK dintr-un singur modul

Gradle poate genera mai multe fișiere APK cu diferite pachete și configurații de configurare dintr-un singur modul. Această caracteristică este deosebit de utilă pentru dezvoltatorii Android, din mai multe motive:

1. Sprijiniți o gamă largă de dispozitive

O mare parte a dezvoltării platformei Android suportă cât mai multe dispozitive Android și versiuni ale sistemului de operare Android. Magazinul Google Play are chiar suport multiplu APK, astfel încât să puteți crea mai multe versiuni ale aplicației, în care fiecare versiune vizează o configurație diferită a dispozitivului, oferindu-le o singură înregistrare în magazinul Play.

Aici intră Gradle. Puteți utiliza noul sistem de construire Android pentru a genera mai multe variante APK din același modul. Doar dați acestor variante același nume de pachet și le puteți încărca în aceeași înregistrare Google Play.

2. Oferiți diferite versiuni ale unei aplicații

Uneori, vei face asta vrei pentru a afișa mai multe versiuni ale aplicației dvs. în Magazin Play, de exemplu, dacă oferiți o versiune gratuită și "Pro" a aplicației dvs. Din nou, puteți utiliza programul Gradle pentru a genera mai multe fișiere APK din același modul și pentru a da fiecărui APK un alt nume de pachet. Apoi, puteți încărca fiecare APK în magazinul Play separat.

2. Explorarea fișierelor Gradle

Ori de câte ori creați un proiect în Android Studio, sistemul de construire generează automat toate fișierele necesare pentru construirea lui Gradle.

Întrucât veți întâlni același set de fișiere Gradle de fiecare dată când creați un proiect Android Studio, vom crea un proiect de probă de bază și apoi vom examina mai îndeaproape aceste fișiere generate automat.

Primul pas este crearea proiectului dvs. de eșantion:

  1. Lansați Android Studio.
  2. Clic Porniți un nou proiect Android Studio.
  3. Oferiți-vă un proiect unui nume, introduceți un domeniu și alegeți unde ar trebui să fie stocat proiectele dvs. de proiect. Clic Următor →.
  4. Asigurați-vă numai Telefon și tabletă este selectată și acceptă setările implicite SDK minime. Clic Următor →.
  5. Selectați Activitate clară și faceți clic pe Următor →.
  6. Stick cu setările implicite și faceți clic pe finalizarea.

Gradul de construire a fișierelor

Dosarele de construcție Gradle folosesc un limbaj specific pentru domeniu sau DSL pentru a defini logica personalizată de construire și pentru a interacționa cu elementele specifice Android ale pluginului Android pentru gradul.

Programele Android Studio constau în unul sau mai multe module, care sunt componente pe care le puteți construi, testa și depana în mod independent. Fiecare modul are propriul fișier de construire, astfel încât fiecare proiect Android Studio conține două tipuri de fișiere de construcție Gradle:

  • Fișier de construcție la nivel superior: Aici găsiți opțiunile de configurare care sunt comune tuturor modulelor care alcătuiesc proiectul.
  • Modul-nivel Construiți Fișier: Fiecare modul are propriul fișier de construcție Gradle care conține setări de construcție specifice modulelor. Veți petrece cea mai mare parte a procesului de editare a fișierelor la nivel de modul la nivel de nivel de execuție, în locul fișierului de construcție de nivel superior al proiectului.

Pentru a arunca o privire la aceste fișiere build.gradle, deschideți aplicația Android Studio Proiect panou (prin selectarea Proiect fila) și extindeți Scripturi de grad pliant. În proiectele noastre de eșantion, primele două elemente din listă sunt fișierele de execuție de nivel superior și de module la nivelul proiectului.


Proiectul nostru de eșantion are doar un singur fișier construit la nivel de modul, dar imaginea de mai jos vă oferă o idee despre modul în care Scripturi de grad dosarul poate căuta un proiect cu mai multe module.


Cel mai bun nivel de construire a fișierului

Fiecare proiect Android Studio conține un singur fișier de construcție Gradle, de nivel superior. Acest fișier build.grade este primul element care apare în Scripturi de grad și este marcat clar Proiect.

De cele mai multe ori, nu va trebui să faceți nicio modificare în acest fișier, dar este încă util să înțelegeți conținutul acestuia și rolul pe care îl joacă în proiectul dvs. Mai jos este o versiune adnotată a unui fișier tipic de nivel superior.

buildscript // Crearea de fișiere la nivel de proiect la nivel de proiect utilizează buildscript pentru a defini dependențele. // depozituri jcenter () // Acest fișier se bazează pe depozitul jJCenter.// dependencies classpath 'com.android.tools.build:gradle: 1.0.0 '// Proiectul depinde de versiunea 1.0.0 a pluginului Android pentru Gradle.// allprojects // Definește dependențele cerute de aplicația dvs. // depozitări jcenter () // Aplicația depinde pe depozitul jCenter.// 

Module-nivel Grad Build Files

În plus față de fișierul de nivel Gradle de proiect la nivel de proiect, fiecare modul are un fișier de construcție Gradle propriu. Mai jos este o versiune adnotată a unui fișier de bază, bazat pe modulul Gradle.

aplicați pluginul: 'com.android.application' // Deoarece acest proiect este o aplicație Android, fișierul build.gradle utilizează pluginul Android.// android // Următoarea secțiune configurează toți parametrii specifici pentru proiectul Android și spune Găsiți ce versiune de Android ar trebui să vă construiască proiectul. Dacă ați dezvoltat în trecut aplicații Android, următoarele ar trebui să fie familiare. // compileSdkVersion 21 // API-ul pe care îl vizați proiectul / buildToolsVersion "21.1.1" //// Versiunea instrumentelor de construcție pe care doriți să le creați use.// defaultConfig applicationId "com.example.jessica.myapplication" // Definește ID-ul aplicației. Rețineți că versiunile anterioare ale pluginului Android au folosit 'packageName' în loc de 'applicationID'. // minSdkVersion 16 // Minim API cerut de proiectul dvs. / targetSdkVersion 21 // Versiunea de Android pentru care vă dezvoltați aplicația. // versionCode 1 versionName "1.0" buildTypes release // 'BuildTypes' controlează modul în care aplicația este construită și împachetată. Dacă doriți să creați propriile variante de construire, va trebui să le adăugați în această secțiune.// minifyEnabled true // Gradle rulează ProGuard în timpul procesului de construire.// proguardFiles getDefaultProguardFile ('proguard-android.txt'), ' proguard-rules.pro '// Aplică setările implicite ProGuard din SDK-ul Android.// dependențele // Declară dependențele pentru modulul curent.// compilați fileTree (dir:' libs ', include: [' * .jar '])) Deși puteți adăuga fișiere JAR prin compilarea lor individuală, acest lucru poate dura mult timp dacă aveți multe JAR-uri. În acest exemplu, îi spunem lui Gradle să adauge toate fișierele JAR din folderul app / libs. / Compile 'com.android.support:appcompat-v7:21.0.3' // Pentru a crea mai multe dependențe, adăugați-le dezavantajele se închid. / / 

Alte dosare de grad

În plus față de fișierele build.gradle, dvs. Scripturi de grad folder conține și alte fișiere Gradle. De cele mai multe ori nu va trebui să editați manual aceste fișiere, deoarece acestea se vor actualiza automat atunci când veți face modificări relevante în proiectul dvs. Cu toate acestea, este o idee bună să înțelegeți rolul pe care aceste fișiere îl joacă în cadrul proiectului dvs..

graled-wrapper.properties (Versiunea Gradle)

Acest fișier le permite altor persoane să vă construiască codul, chiar dacă nu au instalat Gradle pe mașina lor. Acest fișier verifică dacă este instalată versiunea corectă a programului Gradle și dacă este necesar, va descărca versiunea necesară. În exemplul nostru aplicație, gradle-wrapper.properties conține următoarele:

distributionBase = GRADLE_USER_HOME // Stabilește dacă distribuția de împachetare neambalată ar trebui să fie stocată în proiect sau în directorul de domiciliu al utilizatorului Gradle. / distributionPath = wrapper / dists // Calea în care sunt dezarhivate distribuțiile Gradle impuse de wrapper. zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper / dists distributionUrl = https \: //services.gradle.org/distributions/gradle-2.2.1-all.zip // URL-ul unde trebuie descărcat versiunea corectă a Gradle.

settings.gradle

Acest fișier se referă la toate modulele care alcătuiesc proiectul dvs. Deoarece proiectul nostru de eșantion are un singur modul, acest fișier este foarte simplu, după cum puteți vedea mai jos.

include: 'app'

gradle.properties (Proprietăți proiect)

Acest fișier conține informații de configurare pentru întregul dvs. proiect. Este gol în mod implicit, dar puteți aplica o gamă largă de proprietăți proiectului prin adăugarea lor la acest fișier.

local.properties (Locația SDK)

Acest fișier vă spune pluginul Android Gradle unde poate găsi instalarea SDK pentru Android. De exemplu:

sdk.dir = / Users / jessica / Library / Android / sdk

Rețineți că local.properties conține informații specifice domeniului local instalarea SDK-ului Android. Aceasta înseamnă că nu trebuie să păstrați acest fișier sub controlul sursei.

3. Interfața de utilizator Android Studio

Acum, că sunteți familiarizat cu toate fișierele Generale generate automat, este timpul să vă deplasați asupra interacțiunii cu sistemul de construcție Gradle. Vestea bună este că puteți interacționa cu Gradle direct din interfața de utilizator Android Studio.

În jurul marginilor verticale și orizontale ale Andorid Studio sunt filele care deschid ferestre diferite ale uneltelor. În următoarele secțiuni, vă prezint câteva ferestre de instrumente specifice programului Grad Studio pentru Android și arătați cum să interacționați cu sistemul de construcție Gradle prin aceste ferestre.

Fereastra Activități Gazdă

Puteți utiliza fereastra Task Gradle pentru a răsfoi și a executa diverse sarcini implicate în compilarea proiectului într-o aplicație executabilă.

Pentru a deschide fereastra Task Gradle, faceți clic pe Gradle din partea dreaptă a instalării Android Studio. Dacă ați particularizat interfața de utilizator Android Studio și nu mai puteți găsi Gradle , apoi puteți selecta Vizualizare> Instrumente Windows> Grad in schimb.

În fila Activități Gradle, faceți dublu clic pe proiectul dvs., urmat de modulul dvs. Veți vedea o listă a tuturor sarcinilor Gradle legate de acest modul.


Când faceți dublu clic pe o sarcină în fereastra de sarcini Gradle, aceasta începe executarea și ieșirea apare în altă fereastră specifică Gradle, Consola Gradle.

Consola Gradle

Consola Gradle afișează ieșirea din sarcinile Gradle pe măsură ce execută, alături de mesajele de avertizare sau de avertismente.

Pentru a deschide consola Gradle, selectați Consola Gradle în partea dreaptă de jos a IDE-ului. Dacă ați personalizat interfața de utilizator Android Studio și nu mai puteți găsi această filă, puteți oricând să selectați Vizualizare> Instrumente Windows> Gradle Console in schimb.

Să luăm consola Gradle pentru o mișcare. În fereastra Tasks Gradle, găsiți asambla care construiește o versiune a aplicației dvs. gata de distribuire și faceți dublu clic pe ea. Dupa cum asambla sarcina execută, ieșirea sarcinii apare în consolă Gradle.

Consola Gradle vă va anunța fie că proiectul dvs. a fost construit cu succes, fie va afișa un mesaj "construire a eșuat", alături de informații despre motivul pentru care ați reușit construirea.


Terminal

De asemenea, puteți rula sarcinile Gradle din aplicația Android Studio integrate Terminal. Dacă știți exact ce sarcină Gradle doriți să executați, Terminalul este de obicei mult mai rapid și mai convenabil decât răsfoirea listelor de sarcini din Consola Gradle.

Pentru a deschide Terminalul, faceți clic pe Terminal în partea stângă sus a aplicației Android Studio sau selectați Vizualizare> Instrumente Windows> Gradle Console. Terminalul se va deschide apoi cu directorul curent deja selectat. Apoi puteți executa sarcinile Gradle tastând-le în Terminal și apăsând fie Întoarcere sau introduce cheie de pe tastatură.

4. Adăugarea dependențelor

În această secțiune, vom examina modul în care puteți utiliza modulul Gradle pentru a gestiona dependențele de module ale proiectului, dependențele binare locale și dependențele binare de la distanță.

Când vine vorba de adăugarea de dependențe la proiectul dvs., Gradle vă oferă mai multe opțiuni.

Opțiunea 1: Drop Files în directorul libs / Project al proiectului

Actualul fișier de construire se va actualiza automat.

Opțiunea 2: Modificați manual fișierul build.gradle

Deschideți fișierul build.grade și adăugați o nouă regulă de construire la închiderea dependențelor. De exemplu, dacă doriți să adăugați Servicii Google Play, secțiunea dependențelor proiectului dvs. ar arăta astfel:

dependente compile fileTree (dir: 'libs', include: ['* .jar']) compile 'com.google.android.gms: play-services: 6.5.

Opțiunea 3: Utilizați interfața de utilizator Android Studio

În Proiect panou, Control + clic modul în care doriți să adăugați dependența și selectați Deschideți Setările modulului.


Selectează dependenţe tab, urmată de + butonul din colțul din stânga jos. Puteți alege din următoarea listă de opțiuni:

  • Biblioteca dependenţă
  • dependenţă de fișiere
  • Modulul de dependență

Puteți introduce apoi mai multe informații despre dependența pe care doriți să o adăugați la proiectul dvs. De exemplu, dacă alegeți Biblioteca Dependență, Android Studio afișează o listă de biblioteci din care puteți alege.

Odată ce v-ați adăugat dependența, verificați fișierul de construcție la nivel de modul. Ar fi trebuit să se actualizeze automat pentru a include noua dependență.

Concluzie

Acest articol v-a prezentat toate fișierele de construire generată automat de Gradle pe care le veți găsi în proiectul dvs. tipic Android Studio, în special în fișierele de construire Gradle de nivel superior și la nivel de module. De asemenea, ați învățat cum să interacționați direct cu sistemul de construire Gradle din interfața de utilizator Android Studio.

Dacă sunteți interesat să aflați mai multe despre Gradle, veți găsi o mulțime de informații suplimentare pe site-ul dezvoltatorului Android și pe site-ul web Gradle.

Cod