Gradle Build-Varianten verwenden

Einführung

Eine der Hauptfunktionen von Android Studio ist die Integration von Gradle als Android-Build-System. Während das generelle Ziel eines Build-Systems darin besteht, Quellcode zu erstellen und eine installierbare Datei für Ihre Benutzer zu erstellen, eine APK für Android, bietet Gradle viel mehr Funktionalität.

Gradle behandelt die Verwaltung von Abhängigkeiten, z. B. lokale JAR-Dateien, native .so-Dateien und in Maven gehostete Bibliotheken. Es ermöglicht auch die einfache Konfiguration von Projekteigenschaften und ermöglicht Entwicklern, auf relativ einfache Weise verschiedene Versionen ihrer Anwendungen zu erstellen. Das letzte Element, als Build-Varianten bezeichnet, erfahren Sie in diesem Artikel.

1. Was sind Build-Varianten??

Build-Varianten sind spezifische Builds, die Sie in Gradle erstellen können, basierend auf gemeinsamem Kern-Quellcode. Während eine Standard-App eine haben kann debuggen und Veröffentlichung Build-Typ, Sie können dies durch Hinzufügen erweitern Geschmacksmaße.

Mit Flavor-Dimensionen können Sie die Ordnerstruktur Ihres Projekts verwenden, um das Aussehen und Verhalten einzelner Builds für Ihre Benutzer zu ändern. Dadurch können Entwickler problemlos mehrere ähnliche Apps mit unterschiedlichen Stilen und Konfigurationen erstellen.

2. Einrichten von Build-Varianten in Gradle

Sie können loslegen, indem Sie in Ihr Projekt einsteigen build.gradle Datei und Hinzufügen eines FlavourDimensions Artikel innerhalb der AndroidBuild-Knoten.

FlavorDimensions "Anzahl", "Farbe"

Dadurch wird festgelegt, welche Dimensionen Ihre Build-Varianten verwenden können. Jeder Build, den Sie produzieren, muss eine Produktgeschmack von jeder der Dimensionen. Wenn Sie also nur eine Dimension für Ihre Apps benötigen, was ein übliches Szenario ist, können Sie Ihre Dimension ändern FlavourDimensions Linie, um nur eine Dimension zu definieren.

Unter dem FlavourDimensions Definition können Sie das definieren productFavors. In diesem Beispiel werden wir die Dinge einfach halten und pro Dimension zwei Varianten definieren.

productFlavors blue applicationId "com.tutsplus.bluevariant" flavorDimension "color" grün applicationId "com.tutsplus.greenvariant" flavorDimension "color" eins flavorDimension "number" zwei flavorDimension "number"

Für jeden Build, den Sie erstellen, ist ein eindeutiger Build erforderlich applicationId um es von den anderen Builds zu unterscheiden. Da jede von Ihnen erstellte Anwendung mindestens eine Variante aus jeder Dimension hat, müssen Sie nur die applicationId in jedem Knoten für eine Dimension.

Jetzt haben Sie alles für Ihre Build-Varianten definiert build.gradle, Sie können die öffnen Erstellen Sie Varianten in der unteren linken Ecke von Android Studio, um zu sehen, welche Varianten zur Verfügung stehen.

Sie werden feststellen, dass mit jeder hinzugefügten Flavour die Anzahl der Varianten exponentiell zunimmt. Beachten Sie auch das buildTypes von debuggen und Veröffentlichung werden in die Matrix der Dimensionen geworfen.

3. Verwendung der Projektstruktur

Während Sie jetzt verschiedene Versionen Ihrer App installieren können, unterscheiden sich diese nicht voneinander. Hier können Sie das Gradle Build System wirklich zu Ihrem Vorteil nutzen.

Gradle verwendet die Ordnerstruktur eines Projekts, um zu bestimmen, welche Dateien zum Kompilieren einer App verwendet werden. In Ihrer Projektstruktur unter app / src /,Du wirst das sehen Main Verzeichnis. Hier wohnen alle Ihre Java-Quell- und Kernressourcen. Sie können weitere Verzeichnisse hinzufügen Main um die Produktvarianten Ihrer Apps widerzuspiegeln, um für jede Build-Variante angepasste Ressourcen hinzuzufügen.

Jede Ressource, die in einer Produktvariante vorhanden ist, die auch in definiert ist Main wird automatisch Vorrang haben.

Wir können das in Aktion sehen, indem wir uns das anschauen main / res / values ​​/ colors.xml. Wenn Ihr Projekt noch keine hat colorPrimary Wert definiert, fahren Sie fort und definieren Sie ihn. Wenn Sie mit einem neuen leeren Projekt begonnen haben, das diesem Artikel folgen soll, sollten Sie einen vordefinierten Wert von sehen # 3F51B5. Das Ausführen der Anwendung sollte das anzeigen colorPrimary Wert als Farbe für die Werkzeugleiste in der app.

Wenn Sie ein neues erstellen colors.xml Datei unter grün / src / werte /,Sie können die überschreiben colorPrimary Attribut mit einem anderen Wert. In diesem Fall verwenden wir # 00FF00.

  # 00FF00 

Wenn Ihre Datei erstellt und die Farbe festgelegt ist, kehren Sie zurück in die Datei Erstellen Sie Varianten in Android Studio und wählen Sie die oneGreenDebug Build-Variante. Sie können diese Variante der App dann kompilieren und ausführen.

Obwohl die grüne Variante die Symbolleiste grün gefärbt hat, werden die anderen Eigenschaften aus Main werden nicht überschrieben Auf diese Weise können Sie Ihre allgemeinen Eigenschaften in festlegen Main und nur ändern, was anders sein sollte.

Dies funktioniert nicht nur für Farben, sondern Sie können alles ändern, was sich in den Ressourcenordnern befindet, z. B. Zeichenfolgen, Stile, Bemaßungen und Ganzzahlen. Bei Kombination mit kommentierten Ressourcenordnern, wie z Werte-xhdpi Bei Geräten mit einer höheren Pixeldichte können Sie die Sicht der Nutzer aus Ihrer App genau steuern, um sicherzustellen, dass sie die bestmögliche Benutzererfahrung bieten.

Als zusätzlicher Bonus, da Sie andere haben applicationId Wenn Sie für jede Farbdimension Werte festlegen, können Sie mehrere Versionen derselben App auf einem Gerät installieren.

Fazit

Gradle ist ein leistungsfähiges Werkzeug, das nicht nur APKs erstellt, sondern auch die Möglichkeit bietet, die Builds individuell anzupassen. In diesem Artikel haben Sie gelernt, wie Sie Build-Varianten Ihrer Anwendung mit verschiedenen Ressourcen erstellen können, sodass Sie mehrere ähnliche Apps in einem Bruchteil der Zeit erstellen können, die für die Erstellung der einzelnen Anwendungen erforderlich ist.

Obwohl Gradle noch ein relativ neues Build-System ist, hat es bereits gezeigt, dass es ein unglaublich nützliches Build-System ist, mit dem sich jeder Android-Entwickler vertraut machen sollte.