Bruke Gradle Build Variants

Introduksjon

En av hovedtrekkene til Android Studio er integrering av Gradle som et Android-byggesystem. Mens den overordnede hensikten med et byggesystem er å ta kildekoden og lage en installerbar fil for brukerne, gir en APK i tilfelle Android, mye mer funksjonalitet.

Gradle håndterer avhengighetsadministrasjon, for eksempel lokale JAR-filer, native .so-filer og biblioteker som er vert på Maven. Det tillater også enkel konfigurering av prosjektegenskaper, og det gjør det mulig for utviklere å lage forskjellige versjoner av deres applikasjoner på en ganske enkel måte. Det siste elementet, kjent som byggevarianter, er det du vil lære om i denne artikkelen.

1. Hva er byggevarianter?

Bygg varianter er spesifikke bygg som du kan produsere fra Gradle, basert på delt kjernekildekode. Mens en standard app kan ha en debug og utgivelse bygge type, kan du utvide på dette ved å legge til smak dimensjoner.

Smaksdimensjoner lar deg bruke mappestrukturen til prosjektet ditt for å endre hvordan individuelle bygg ser ut og fungerer for brukerne. Dette gjør at utviklere enkelt kan produsere flere lignende apper med forskjellige stiler og konfigurasjoner.

2. Sette opp byggevarianter i grad

Du kan komme i gang ved å gå inn på prosjektets build.gradle fil og legge til en flavorDimensions element inne i androidbygge node.

flavorDimensions "number", "color"

Dette definerer hvilke dimensjoner dine byggevarianter kan bruke. Hver bygg som du produserer trenger å ha a produkt smak fra hver av dimensjonene. Dette betyr at hvis du bare trenger en dimensjon for appene dine, som er et vanlig scenario, kan du endre din flavorDimensions linje for å bare definere en dimensjon.

Under flavorDimensions definisjon, kan du definere productFlavors. For dette eksempelet vil vi holde ting enkelt og definere to smaker per dimensjon.

productFlavors blue applicationId "com.tutsplus.bluevariant" flavorDimension "color" grønn applicationId "com.tutsplus.greenvariant" flavorDimension "color" en flavorDimension "number" to flavorDimension "nummer"

Hver bygg som du oppretter, trenger en unik applicationlD for å skille det fra de andre byggene. Siden et program du bygger vil ha minst en smak fra hver dimensjon, trenger du bare å definere applicationlD i hver knute for en dimensjon.

Nå som du har definert alt for byggvarianter i build.gradle, du kan åpne Bygg varianter panel i nedre venstre hjørne av Android Studio for å se hvilke varianter som er tilgjengelige for å bygge.

Du vil legge merke til at hver smak du legger til, øker antallet varianter eksponentielt. Vær også oppmerksom på det buildTypes av debug og utgivelse er kastet inn i matrisen av dimensjoner.

3. Bruke prosjektstrukturen

Mens du nå kan installere forskjellige versjoner av appen din, er det ingenting som skiller dem fra hverandre. Det er her du virkelig får bruke Gradle build systemet til din fordel.

Gradle bruker mappestrukturen til et prosjekt for å bestemme hvilke filer som skal brukes til å kompilere en app. I prosjektstrukturen under app / src /,du vil se hoved- katalogen. Dette er hvor alle Java-kilde- og kjerneressursene dine lever. Du kan legge til flere kataloger ved siden av hoved- for å gjenspeile produktets smaker av appene dine for å legge til tilpassede ressurser for hver byggvariant.

En hvilken som helst ressurs som finnes i et produktsmak som også er definert i hoved- vil automatisk ha forrang.

Vi kan se det som skjer ved å se på Hoved / res / verdier / colors.xml. Hvis prosjektet ditt ikke allerede har en colorPrimary Verdien er definert, gå videre og definer den. Hvis du startet med et nytt tomt prosjekt som følger med denne artikkelen, bør du se en forhåndsdefinert verdi på # 3F51B5. Kjører programmet bør vise colorPrimary verdi som farge for verktøylinje i appen.

Hvis du oppretter en ny colors.xml filen under grønn / src / verdier /,du kan overstyre colorPrimary Tilordne med en annen verdi. I dette tilfellet, la oss bruke # 00FF00.

  # 00FF00 

Når filen din er opprettet og fargen er satt, gå tilbake til Bygg varianter panelet i Android Studio og velg oneGreenDebug bygge variant. Du kan da kompilere og kjøre den varianten av appen.

Selv om den grønne varianten har farget verktøylinjen grønt, de andre egenskapene fra hoved- er ikke overstyrt. Dette lar deg sette opp dine felles egenskaper i hoved- og bare endre hva som skal være annerledes.

Ikke bare fungerer dette for farger, men du kan endre alt som eksisterer i ressursmappene, for eksempel strenger, stiler, dimensjoner og heltall. Når kombinert med annoterte ressursmapper, for eksempel Verdiene-xhdpi for høyere pixeldensitetsenheter, kan du finjustere hva brukeren ser fra appen din for å sikre at de har den beste opplevelsen mulig.

Som en ekstra bonus, siden du har annerledes applicationlD verdier som er angitt for hver av fargedimensjonene, kan du installere flere versjoner av samme app på en enhet.

Konklusjon

Gradle er et kraftig verktøy som ikke bare konstruerer APKs, men lar deg få finkornet kontroll over å tilpasse byggene dine. I denne artikkelen har du lært hvordan du oppretter byggevarianter av applikasjonen din med ulike ressurser, slik at du enkelt kan produsere flere lignende apper på en brøkdel av tiden det ville ta å bygge hver enkelt.

Selv om Gradle fortsatt er et ganske nytt byggesystem, har det allerede vist at det er et utrolig nyttig byggesystem som enhver Android-utvikler burde være komfortabel med.