Som den første IDE (Integrated Development Environment) dedikert helt til Android, er Google-støttet Android Studio et spennende prospekt for Android-utviklere. Men det betyr også å ta tak i ny teknologi, spesielt Gradle build-systemet.
Denne artikkelen får deg i gang med Android's nye byggesystem, fra grunnleggende om hva Gradle er, og hva det gjør, til en grundig titt på noen av de viktigste Gradle-filene, for å lære å utføre og overvåke Gradle-oppgaver.
Du vil også se nærmere på de ulike Gradle-verktøylinduene i Android Studio, og lære å legge til avhengigheter i et prosjekt, alt uten tidligere Gradle-erfaring nødvendig.
Det første trinnet i å ta tak i Android's nye byggsystem er å forstå nøyaktig hva Gradle er, og hvorfor dens inkludering i Android Studio er så god nyhet for Android-utviklere.
Gradle er et automatisert byggeverktøy som kan integreres i mange forskjellige miljøer, via plugins. I Android Studio blir Gradle-integrasjon oppnådd via det passende navnet Android Gradle-plugin.
Hvis du aldri har brukt Gradle før, kan det virke som en frustrerende hindring for oppføring når du vurderer å flytte til Android Studio. Gradle har imidlertid mye å tilby til Android-utviklere, så det er vel verdt å investere litt tid på å lære inn og ut av Gradle. Her er bare noen av tingene du kan gjøre med Gradle.
Gradle har et sett med standard konfigurasjonsinnstillinger som automatisk brukes til hvert prosjekt du lager i Android Studio. Hvis du utvikler et prosjekt som ikke overholder disse standardkonfigurasjonsreglene, er Gradle enkelt å tilpasse.
Avhengigheter kan være moduler, JAR-filer eller biblioteker, og de kan lokaliseres enten på det lokale filsystemet eller på en ekstern server.
Gradle genererer automatisk en testkatalog og en test-APK fra prosjektets testkilder og kan kjøre testene dine under byggeprosessen.
Hvis du legger til all nødvendig informasjon, for eksempel keyPassword
og keyAlias
, til Gradle build-filen din, kan du bruke Gradle til å generere signerte APKer.
Gradle kan generere flere APKer med forskjellig pakke og bygge konfigurasjoner fra en enkelt modul. Denne funksjonen er spesielt nyttig for Android-utviklere, av flere grunner:
En stor del av utviklingen for Android-plattformen støtter så mange forskjellige Android-enheter og versjoner av Android-operativsystemet som mulig. Google Play-butikken har til og med multi-APK-støtte, slik at du kan opprette flere versjoner av appen din, der hver versjon retter seg mot en annen enhetskonfigurasjon, og tilbyr dem som en enkelt Play Store-notering.
Dette er hvor Gradle kommer inn. Du kan bruke Androids nye byggesystem til å generere flere APK-varianter fra samme modul. Bare gi disse variantene samme pakke navn, og du kan laste dem opp til samme Google Play notering.
Noen ganger vil du vil for å liste flere versjoner av appen din i Play-butikken, for eksempel hvis du tilbyr en gratis og en "Pro" -versjon av appen din. Igjen kan du bruke Gradle til å generere flere APKer fra samme modul og gi hver APK et annet pakke navn. Du kan deretter laste opp hver APK til Play-butikken separat.
Når du lager et prosjekt i Android Studio, genererer byggesystemet automatisk alle nødvendige Gradle build-filer.
Siden du møter det samme settet av Gradle-filer hver gang du oppretter et Android Studio-prosjekt, oppretter vi et grunnleggende utvalgsprosjekt, og deretter ser du nærmere på disse automatisk genererte filene.
Det første trinnet er å skape ditt utvalgsprosjekt:
Gradle build-filer bruker et Domenespesifikt språk eller DSL for å definere egendefinert bygge logikk og å samhandle med Android-spesifikke elementer i Android-plugin for Gradle.
Android Studio-prosjekter består av en eller flere moduler, som er komponenter som du kan bygge, teste og feilsøke uavhengig av. Hver modul har sin egen byggfil, så hvert Android Studio-prosjekt inneholder to typer Gradle build-filer:
For å se på disse build.gradle-filene, åpne Android Studio Prosjekt panelet (ved å velge Prosjekt tab) og utvide Gradle Scripts mappe. I vårt utvalgsprosjekt er de to første elementene i listen prosjektets toppnivå og modulnivåbyggingsfiler.
Vårt utvalgsprosjekt har bare en enkelt modulnivåbyggingsfil, men skjermbildet nedenfor gir deg en ide om hvordan Gradle Scripts mappen kan se etter et prosjekt med flere moduler.
Hvert Android Studio-prosjekt inneholder en enkelt, toppnivå Gradle-byggefil. Denne build.gradle-filen er det første elementet som vises i Gradle Scripts mappe og er tydelig merket Prosjekt.
Mesteparten av tiden, du trenger ikke å gjøre noen endringer i denne filen, men det er fortsatt nyttig å forstå innholdet og rollen det spiller i prosjektet ditt. Nedenfor er en annotert versjon av en typisk toppnivå byggefil.
buildscript // Prosjektnivå Gradle build files bruker buildscript for å definere avhengigheter.// repositories jcenter () // Denne filen er avhengig av jJCenter repository.// avhengigheter classpath 'com.android.tools.build:gradle: 1.0.0 '// Prosjektet er avhengig av versjon 1.0.0 av Android-plugin for Gradle.// allprojects // Definerer de avhengighetene som kreves av din application.// repositories jcenter () // Programmet avhenger av på jCenter-depotet.//
I tillegg til prosjektgraden Gradle build-fil, har hver modul en egen Gradle-bygningsfil. Nedenfor er en annotert versjon av en grunnleggende, modulnivå Gradle build-fil.
bruke plugin: 'com.android.application' // Siden dette prosjektet er en Android-app, bruker filen build.gradle Android plugin.// android // Følgende seksjon konfigurerer alle prosjektets Android-spesifikke parametere, og forteller Gradle hvilken versjon av Android det skal bygge prosjektet med. Hvis du har utviklet Android-applikasjoner før, bør følgende alle være kjent. // compileSdkVersion 21 // API-prosjektet ditt er målrettet.// buildToolsVersion "21.1.1" //// Versjonen av byggverktøyene du vil ha use.// defaultConfig applicationId "com.example.jessica.myapplication" // Definerer programmets ID. Merk, tidligere versjoner av Android-pluginet brukt 'packageName' i stedet for 'applicationID.' // minSdkVersion 16 // Minimum API som kreves av prosjektet ditt. // targetSdkVersion 21 // Den versjonen av Android du utvikler søknaden din for. // versionCode 1 versjonName "1.0" buildTypes release // 'BuildTypes' styrer hvordan appen din er bygget og pakket. Hvis du vil lage dine egne byggvarianter, må du legge dem til i denne delen .// minifyEnabled true // Gradle kjører ProGuard under byggeprosessen .// proguardFiles getDefaultProguardFile ('proguard-android.txt'), ' proguard-rules.pro '// Gjelder standard ProGuard-innstillinger fra Android SDK.// avhengigheter // Deklarer avhengighetene for gjeldende modul.// kompilér filTree (dir:' libs ', inkluderer: [' * .jar ']) // Selv om du kan legge til JAR-filer ved å samle dem individuelt, kan dette være tidkrevende hvis du har mange JAR-er. I dette eksemplet forteller vi Gradle å legge til alle JAR-filene i app / libs-mappen. // kompilere 'com.android.support:appcompat-v7:21.0.3' // For å opprette flere avhengigheter, legg dem til depencies closure.//
I tillegg til build.gradle-filene dine Gradle Scripts mappen inneholder noen andre Gradle-filer. Mesteparten av tiden trenger du ikke å redigere disse filene manuelt, da de oppdateres automatisk når du foretar eventuelle relevante endringer i prosjektet. Det er imidlertid en god ide å forstå hvilken rolle disse filene spiller innenfor prosjektet ditt.
Denne filen tillater andre å bygge koden din, selv om de ikke har Gradle installert på sin maskin. Denne filen kontrollerer om den riktige versjonen av Gradle er installert og laster ned den nødvendige versjonen om nødvendig. I vår prøveapp, gradle-wrapper.properties inneholder følgende:
distributionBase = GRADLE_USER_HOME // Bestemmer om utpakket wrapper-distribusjon skal lagres i prosjektet, eller i Gradle-brukerens hjemmekatalog. // distributionPath = wrapper / dists // Banen hvor Gradle-distribusjonene som kreves av wrapper, er unzipped.// zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper / dists distributionUrl = https \: //services.gradle.org/distributions/gradle-2.2.1-all.zip // Nettadressen hvor den riktige versjonen av Gradle skal lastes ned fra.//
Denne filen refererer til alle modulene som utgjør prosjektet ditt. Siden vårt utvalgsprosjekt har en enkeltmodul, er denne filen veldig enkel som du kan se nedenfor.
inkludere ': app'
Denne filen inneholder konfigurasjonsinformasjon for hele prosjektet. Den er tom som standard, men du kan bruke et bredt utvalg av egenskaper til prosjektet ved å legge dem til denne filen.
Denne filen forteller Android Gradle-pluginet der den kan finne Android SDK-installasjonen din. For eksempel:
sdk.dir = / Users / jessica / Library / Android / SDK
Noter det local.properties inneholder informasjon som er spesifikk for lokal installasjon av Android SDK. Dette betyr at du ikke bør beholde denne filen under kildekontroll.
Nå som du er kjent med alle de automatisk genererte Gradle-filene, er det på tide å bevege seg inn i samspill med Gradle build-systemet. Den gode nyheten er at du kan samhandle med Gradle direkte fra Android Studio-brukergrensesnittet.
Rundt de vertikale og horisontale kanter av Andorid Studio er faner som åpner ulike verktøylinjer. I de neste avsnittene vil jeg introdusere deg til noen av Android Studio's Gradle-spesifikke verktøylinduer og vise hvordan du kan samhandle med Gradle build-systemet via disse vinduene.
Du kan bruke vinduet Gradle-oppgaver til å bla gjennom og utføre de forskjellige oppgavene som er involvert i å samle prosjektet i en kjørbar applikasjon.
For å åpne vinduet Gradle tasks, klikk på Gradle fanen langs høyre side av Android Studio-installasjonen din. Hvis du har tilpasset brukergrensesnittet til Android Studio og ikke lenger kan finne Gradle fanen, så kan du velge Vis> Verktøy Windows> Gradle i stedet.
Dobbeltklikk på prosjektet i modulen Gradle-oppgaver, etterfulgt av modulen din. Du får se en liste over alle Gradle-oppgaver knyttet til denne modulen.
Når du dobbeltklikker på en oppgave i Gradle-oppgaver-vinduet, begynner den å utføre og utgangen vises i et annet Gradle-spesifikt vindu, Gradle Console.
Gradle Console viser resultatet av Gradle-oppgaver når de utføres, sammen med eventuelle feilmeldinger eller advarsler.
For å åpne Gradle Console, velg Gradle Console flipp mot nederst til høyre for IDE. Hvis du har tilpasset Android Studios brukergrensesnitt og ikke lenger kan finne denne kategorien, kan du alltid velge Vis> Verktøy Windows> Gradle Console i stedet.
La oss ta Gradle Console for et spinn. I vinduet Gradle-oppgaver finner du montere oppgave, som bygger en utgivelsesversjon av søknaden din klar for distribusjon, og dobbeltklikk på den. Som montere oppgaven utfører, vises oppgavens utgang i Gradle Console.
Gradle Console vil da enten varsle deg om at prosjektet ditt har bygget, eller det vil vise en "bygge mislyktes" melding sammen med informasjon om hvorfor byggingen din har feilet.
Du kan også kjøre Gradle-oppgaver fra Android Studio er integrert Terminal. Hvis du vet nøyaktig hvilken Gradle-oppgave du vil utføre, er Terminal vanligvis mye raskere og mer praktisk enn å bla gjennom oppgavelistene i Gradle Console.
For å åpne Terminal, klikk på Terminal Klikk nederst til venstre for Android Studio, eller velg Vis> Verktøy Windows> Gradle Console. Terminal åpnes deretter med gjeldende katalog som allerede er valgt. Du kan deretter utføre Gradle-oppgaver ved å skrive dem inn i Terminal og trykke på enten Komme tilbake eller Tast inn nøkkel på tastaturet.
I denne delen undersøker vi hvordan du kan bruke Gradle til å administrere prosjektets modulavhengigheter, lokale binære avhengigheter og eksterne binære avhengigheter.
Når det gjelder å legge til avhengigheter i prosjektet, gir Gradle deg flere alternativer.
Den relevante build.gradle-filen oppdateres deretter automatisk.
Åpne din build.gradle-fil og legg til en ny byggregel til avhengighetsnedleggelsen. Hvis du for eksempel vil legge til Google Play Services, vil prosjektets avhengighetseksjon se slik ut:
avhengigheter compile fileTree (dir: 'libs', inkluderer: ['* .jar']) kompilere 'com.google.android.gms: spilltjenester: 6.5. +'
I Prosjekt panel, Kontroll + klikk modulen du vil legge til avhengighet til og velge Åpne modulinnstillinger.
Velg avhengig fanen, etterfulgt av + knappen i nederste venstre hjørne. Du kan velge mellom følgende liste over alternativer:
Du kan deretter angi mer informasjon om avhengigheten du vil legge til i prosjektet. For eksempel, hvis du velger Bibliotekavhengighet, Android Studio viser en liste over biblioteker som du kan velge mellom.
Når du har lagt til din avhengighet, kan du sjekke modulen build.gradle på modulnivå. Det burde ha automatisk oppdatert for å inkludere den nye avhengigheten.
Denne artikkelen har introdusert deg til alle de automatisk genererte Gradle build-filene du finner i ditt typiske Android Studio-prosjekt, spesielt Gradle build-filene på toppnivå og modulnivå. Du har også lært hvordan du kan kommunisere direkte med Gradle build-systemet fra Android Studio-brukergrensesnittet.
Hvis du er interessert i å lære mer om Gradle, finner du mye mer informasjon på Android-utviklerens nettsted og på Gradle-nettsiden.