Använda Gradle Build Variants

Introduktion

En av huvudfunktionerna i Android Studio är integrationen av Gradle som ett Android-byggsystem. Medan det övergripande syftet med ett byggsystem är att ta källkod och konstruera en installerbar fil för dina användare, ger en APK för Android, Gradle mycket mer funktionalitet.

Gradle hanterar beredskapshantering, till exempel lokala JAR-filer, inhemska .so-filer och bibliotek som finns på Maven. Det möjliggör också enkel konfiguration av projektegenskaper och det gör det möjligt för utvecklare att skapa olika versioner av sina applikationer på ett ganska enkelt sätt. Det sista objektet, som kallas byggvarianter, är det du kommer att lära dig om i den här artikeln.

1. Vad är byggvarianter?

Byggvarianter är specifika byggnader som du kan producera från Gradle, baserat på delad kärnkodskod. Medan en vanlig app kan ha en debug och släpp byggtyp, kan du expandera på detta genom att lägga till smak dimensioner.

Smakmåtten gör att du kan använda mappstrukturen i ditt projekt för att ändra hur enskilda byggnader ser ut och fungerar för dina användare. Detta gör det möjligt för utvecklare att enkelt producera flera liknande appar med olika stilar och konfigurationer.

2. Konfigurera byggvarianter i grad

Du kan komma igång genom att gå in i ditt projekt build.gradle fil och lägga till en flavorDimensions föremål inuti androidbyggnod.

flavorDimensions "number", "color"

Detta definierar vilka dimensioner dina byggvarianter kan använda. Varje byggnad du producerar behöver ha en produkt smak från var och en av dimensionerna. Det innebär att om du bara behöver en dimension för dina appar, vilket är ett vanligt scenario, kan du ändra din flavorDimensions linje för att bara definiera en dimension.

Under flavorDimensions definition, kan du definiera productFlavors. För det här exemplet kommer vi att hålla sakerna enkla och definiera två smaker per dimension.

productFlavors blue applicationId "com.tutsplus.bluevariant" flavorDimension "color" grön applicationId "com.tutsplus.greenvariant" flavorDimension "color" en flavorDimension "number" två flavorDimension "number"

Varje byggnad du skapar behöver en unik ansöknings-ID för att skilja det från de andra byggnaderna. Eftersom varje applikation som du bygger kommer att ha minst en smak från varje dimension behöver du bara definiera ansöknings-ID i varje nod för en dimension.

Nu när du har definierat allt för dina byggvarianter i build.gradle, du kan öppna Bygga varianter panelen i nedre vänstra hörnet av Android Studio för att se vilka varianter som är tillgängliga att bygga.

Du märker att varje smak du lägger till ökar antalet varianter exponentiellt. Observera också det buildTypes av debug och släpp kastas i matrisen av dimensioner.

3. Använda projektstrukturen

Medan du nu kan installera olika versioner av din app, är det ingenting som skiljer dem från varandra. Här kan du verkligen använda Gradle build-systemet till din fördel.

Gradle använder mappstrukturen för ett projekt för att bestämma vilka filer som ska användas för att skapa en app. I din projektstruktur under app / src /,du kommer att se huvud katalogen. Här bor alla dina Java-källor och kärnresurser. Du kan lägga till ytterligare kataloger bredvid huvud för att återspegla produktens smaker av dina appar för att lägga till anpassade resurser för varje byggvariant.

Eventuell resurs som finns i en produktsmak som också definieras i huvud kommer automatiskt att ha företräde.

Vi kan se det i åtgärd genom att titta på huvud / res / värden / colors.xml. Om ditt projekt inte redan har en colorPrimary värde definierat, fortsätt och definiera det. Om du startade med ett nytt tomt projekt för att följa med den här artikeln bör du se ett fördefinierat värde på # 3F51B5. Om du kör programmet bör du visa colorPrimary värde som färg för Toolbar i appen.

Om du skapar en ny colors.xml fil under grön / src / värden /,du kan åsidosätta colorPrimary attribut med ett annat värde. I det här fallet, låt oss använda # 00FF00.

  # 00FF00 

När din fil skapas och färgen är inställd, gå tillbaka till Bygga varianter panelen i Android Studio och välj oneGreenDebug bygga variant. Du kan sedan kompilera och köra den varianten av appen.

Även om den gröna varianten har färgat verktygsfältet grönt, kommer de andra egenskaperna från huvud är inte överskridna. Det här låter dig konfigurera dina gemensamma egenskaper i huvud och ändra bara vad som ska vara annorlunda.

Det här fungerar inte bara för färger, men du kan ändra allt som finns i resursmapparna, som strängar, stilar, dimensioner och heltal. När de kombineras med annoterade resursmappar, t.ex. värdena-xhdpi för högre pixeldensitetsenheter kan du finjustera vad användaren ser från din app för att säkerställa att de har den bästa upplevelsen möjligt.

Som en extra bonus, eftersom du har olika ansöknings-ID värden som anges för var och en av färgdimensionerna, kan du installera flera versioner av samma app på en enhet.

Slutsats

Gradle är ett kraftfullt verktyg som inte bara konstruerar APKs, men låter dig ha finkorrigerad kontroll över att anpassa dina byggnader. I den här artikeln har du lärt dig hur du skapar byggvarianter av din applikation med olika resurser så att du enkelt kan producera flera liknande appar på en bråkdel av tiden som det skulle ta att bygga var för sig.

Medan Gradle fortfarande är ett ganska nytt byggsystem har det redan visat att det är ett otroligt användbart byggsystem som varje Android-utvecklare borde vara bekväm med.