Gradle-bouwvarianten gebruiken

Invoering

Een van de belangrijkste kenmerken van Android Studio is de integratie van Gradle als Android-buildsysteem. Hoewel het algemene doel van een build-systeem is om de broncode te nemen en een installeerbaar bestand voor uw gebruikers te maken, een APK in het geval van Android, biedt Gradle veel meer functionaliteit.

Beheer van afhankelijkheidsbeheer van handgrepen, zoals lokale JAR-bestanden, native .so-bestanden en bibliotheken die op Maven worden gehost. Het maakt ook eenvoudige configuratie van projecteigenschappen mogelijk en stelt ontwikkelaars in staat om op een vrij eenvoudige manier verschillende versies van hun applicaties te maken. Het laatste item, build-varianten genoemd, is waar je meer over zult leren in dit artikel.

1. Wat zijn bouwvarianten?

Build-varianten zijn specifieke builds die u kunt produceren vanuit Gradle, op basis van gedeelde broncode. Hoewel een standaardapp wellicht een debug en vrijlating bouwtype, kun je dit uitbreiden door toe te voegen smaak dimensies.

Met smaakdimensies kunt u de mapstructuur van uw project gebruiken om te veranderen hoe afzonderlijke builds eruit zien en handelen voor uw gebruikers. Hierdoor kunnen ontwikkelaars eenvoudig meerdere vergelijkbare apps met verschillende stijlen en configuraties produceren.

2. Bouwvarianten instellen in Gradle

U kunt aan de slag gaan door in te gaan op uw project build.gradle bestand en toevoegen van een flavorDimensions item binnenkant van de androidbouw knoop.

flavorDimensions "nummer", "kleur"

Dit bepaalt welke dimensies uw buildvarianten kunnen gebruiken. Elke build die u produceert, moet een product smaak van elk van de dimensies. Dit betekent dat als u slechts één dimensie voor uw apps nodig heeft, wat een veelvoorkomend scenario is, u uw kunt wijzigen flavorDimensions regel om slechts één dimensie te definiëren.

Onder de flavorDimensions definitie, kunt u de definiëren productFlavors. Voor dit voorbeeld houden we de dingen eenvoudig en definiëren we twee smaken per dimensie.

productFlavors blue applicationId "com.tutsplus.bluevariant" flavorDimension "color" green applicationId "com.tutsplus.greenvariant" flavorDimension "color" one flavorDimension "number" two flavorDimension "number"

Elke build die je maakt, heeft een unieke nodig Applicatie ID om het te onderscheiden van de andere builds. Aangezien elke toepassing die u bouwt ten minste één smaak uit elke dimensie heeft, hoeft u alleen de Applicatie ID in elk knooppunt voor één dimensie.

Nu heb je alles voor je bouwvarianten gedefinieerd in build.gradle, je kunt de Bouw varianten paneel in de linkerbenedenhoek van Android Studio om te zien welke varianten beschikbaar zijn om te bouwen.

Je zult merken dat elke smaak die je toevoegt het aantal varianten exponentieel laat groeien. Merk ook op dat buildTypes van debug en vrijlating worden in de matrix van dimensies gegooid.

3. Gebruik van de projectstructuur

Hoewel u nu verschillende versies van uw app kunt installeren, is er niets dat hen van elkaar onderscheidt. Dit is waar je echt het Gradle Build-systeem in je voordeel kunt gebruiken.

Gradle gebruikt de mapstructuur van een project om te bepalen welke bestanden zullen worden gebruikt voor het compileren van een app. In uw projectstructuur onder app / src /,je zult het zien hoofd directory. Hier wonen al uw Java-bronnen en kernbronnen. U kunt naastliggende extra mappen toevoegen hoofd om de productaroma's van uw apps weer te geven om aangepaste bronnen toe te voegen voor elke build-variant.

Alle bronnen die voorkomen in een productsmaak die ook in wordt gedefinieerd hoofd heeft automatisch voorrang.

We kunnen dat in actie bekijken door ernaar te kijken belangrijkste / res / waarden / colors.xml. Als uw project nog geen colorPrimary waarde gedefinieerd, ga je gang en definieer het. Als u bent begonnen met een nieuw leeg project dat u samen met dit artikel wilt volgen, moet u een vooraf gedefinieerde waarde van # 3F51B5. Het uitvoeren van de applicatie zou de colorPrimary waarde als de kleur voor de Toolbar in de app.

Als u een nieuwe maakt colors.xml bestand onder groen / src / waarden /,je kunt de colorPrimary attribuut met een andere waarde. Laten we in dit geval gebruiken # 00FF00.

  # 00FF00 

Wanneer uw bestand is gemaakt en de kleur is ingesteld, gaat u terug naar de Bouw varianten paneel in Android Studio en selecteer de oneGreenDebug build-variant. U kunt vervolgens die variant van de app compileren en uitvoeren.

Ook al heeft de groene variant de werkbalk groen gekleurd, de andere eigenschappen van hoofd zijn niet overschreven. Hiermee kunt u uw gemeenschappelijke eigenschappen instellen in hoofd en verander alleen wat anders zou moeten zijn.

Dit werkt niet alleen voor kleuren, maar u kunt ook alles wijzigen dat aanwezig is in de resourcemappen, zoals tekenreeksen, stijlen, dimensies en gehele getallen. In combinatie met geannoteerde resourcemappen, zoals -waarden xhdpi voor apparaten met een hogere pixeldichtheid kunt u nauwkeurig bepalen wat de gebruiker in uw app ziet om ervoor te zorgen dat ze de best mogelijke ervaring hebben.

Als een toegevoegde bonus, omdat je anders bent Applicatie ID waarden ingesteld voor elk van de kleurafmetingen, kunt u meerdere versies van dezelfde app op een apparaat installeren.

Conclusie

Gradle is een krachtige tool die niet alleen APK's samenstelt, maar u ook een fijnmazige controle biedt over het aanpassen van uw builds. In dit artikel hebt u geleerd hoe u buildvarianten van uw toepassing kunt maken met verschillende bronnen, zodat u eenvoudig meerdere gelijksoortige apps kunt maken in een fractie van de tijd die nodig is om elk afzonderlijk te bouwen.

Hoewel Gradle nog steeds een vrij nieuw build-systeem is, heeft het al aangetoond dat het een ongelooflijk handig build-systeem is waar elke Android-ontwikkelaar zich comfortabel bij zou moeten voelen..