Basismodul konfigurieren

Ein App Bundle unterscheidet sich von einem APK dadurch, dass Sie es nicht in einem . Es handelt sich vielmehr um ein Veröffentlichungsformat, das alle von Ihrer App kompilierten in einem einzigen Build-Artefakt erstellen. Nachdem Sie Ihre signiertes App Bundle erhalten, hat Google Play alles, was Sie zum Erstellen und Signieren Ihres APKs der App zu aktualisieren und sie den Nutzern bereitzustellen.

Erste Schritte

Die meisten App-Projekte erfordern keinen großen Aufwand, um Android App Bundles zu unterstützen. Das liegt daran, dass das Modul, das Code und Ressourcen für die Basis Ihrer App enthält, APK ist das Standard-App-Modul, das Sie standardmäßig erhalten, wenn Sie ein neues App-Projekt in Android Studio zu erstellen. Das heißt, das Modul, das das unten stehende application-Plug-in auf seine Die Datei build.gradle enthält den Code und die Ressourcen für die Basisfunktionalität Ihrer App.

Cool

// The standard application plugin creates your app's base module.
plugins {
 id 'com.android.application'
}

Kotlin

plugins {
    // The standard application plugin creates your app's base module.
    id("com.android.application")
}

Das Basismodul bietet nicht nur die Hauptfunktion Ihrer App, bietet auch viele Build-Konfigurationen und Manifesteinträge, auf Ihr gesamtes App-Projekt auswirken.

Build-Konfiguration des Basismoduls

Bei den meisten bestehenden App-Projekten müssen Sie in Ihrer Basis nichts ändern. der Build-Konfiguration des Moduls. Wenn Sie jedoch erwägen, oder wenn Sie Ihre App zuvor mit Mehrere APKs haben, gibt es einige Aspekte der Build-Konfiguration des Basismoduls die Sie berücksichtigen sollten.

Versionscode und App-Updates

Mit Android App Bundles ist das Verwalten von Versionscodes für mehrere APKs, die Sie bei Google Play hochladen Stattdessen müssen Sie nur einen Versionscode im Basismodul Ihrer App verwalten, wie unten gezeigt:

// In your base module build.gradle file
android {
    defaultConfig {
        
        // You specify your app’s version code only in the base module.
        versionCode 5
        versionName "1.0"
    }
}

Nachdem Sie Ihr App Bundle hochgeladen haben, verwendet Google Play den Versionscode aus Ihrem Basismoduls, um allen APKs, aus denen es generiert wird, denselben Versionscode zuzuweisen. für dieses Bundle. Wenn also ein Gerät Ihre App herunterlädt und installiert, Die APKs für diese App haben denselben Versionscode.

Wenn Sie Ihre App mit neuem Code oder neuen Ressourcen aktualisieren möchten, müssen Sie den Versionscode im Basismodul Ihrer App und erstellen Sie ein neues, vollständiges App Bundle. Wenn Sie dieses App Bundle bei Google Play hochladen, werden neue APKs erstellt. basierend auf dem vom Basismodul angegebenen Versionscode. Wenn Nutzende dann aktualisieren, stellt Google Play aktualisierte Versionen aller APKs zur Verfügung. aktuell auf dem Gerät installiert ist. Das heißt, alle installierten APKs werden auf den neuen Versionscode.

Weitere Überlegungen

  • App-Signatur:Wenn Sie Signaturinformationen in Ihre Build-Dateien aufnehmen, sollten Sie ihn nur in die Build-Konfigurationsdatei des Basismoduls aufnehmen. Weitere Informationen finden Sie unter Gradle zum Signieren Ihrer App konfigurieren
  • Code verkleinern:Wenn Sie Aktivieren Sie die Codekomprimierung für Ihre gesamtes App-Projekt einschließlich seiner Funktionsmodule, aus der build.gradle-Datei des Basismoduls. Das heißt, Sie können benutzerdefinierte ProGuard-Regeln in ein Funktionsmodul aufnehmen, aber die Eigenschaft minifyEnabled in Feature Modul-Build-Konfigurationen werden ignoriert.
  • Der splits-Block wird ignoriert:Beim Erstellen eines App Bundles wird Gradle von Gradle ignoriert Eigenschaften im android.splits-Block. Wenn Sie steuern möchten, welche Arten von Konfigurations-APKs dein App Bundle unterstützt, verwende stattdessen android.bundle bis Konfigurations-APKs deaktivieren.
  • App-Versionsverwaltung:Das Basismodul bestimmt den Versionscode und die Version Name für Ihr gesamtes App-Projekt. Weitere Informationen finden Sie im Abschnitt Informationen zum Verwalten von App-Updates

Typen von Konfigurations-APKs wieder aktivieren oder deaktivieren

Wenn Sie ein App Bundle erstellen, wird standardmäßig das Generieren von Konfigurationseinstellungen unterstützt. APKs für die einzelnen Sprachressourcen, Bildschirmdichte-Ressourcen und ABIs Bibliotheken. Mit dem android.bundle-Block im Basismodul build.gradle-Datei: Wie unten dargestellt, können Sie die Unterstützung für eine oder mehrere Arten von Konfigurations-APKs:

Cool

android {
    // When building Android App Bundles, the splits block is ignored.
    // You can remove it, unless you're going to continue to build multiple
    // APKs in parallel with the app bundle
    splits {...}

    // Instead, use the bundle block to control which types of configuration APKs
    // you want your app bundle to support.
    bundle {
        language {
            // This property is set to true by default.
            // You can specify `false` to turn off
            // generating configuration APKs for language resources.
            // These resources are instead packaged with each base and
            // feature APK.
            // Continue reading below to learn about situations when an app
            // might change setting to `false`, otherwise consider leaving
            // the default on for more optimized downloads.
            enableSplit = false
        }
        density {
            // This property is set to true by default.
            enableSplit = true
        }
        abi {
            // This property is set to true by default.
            enableSplit = true
        }
    }
}

Kotlin

android {
    // When building Android App Bundles, the splits block is ignored.
    // You can remove it, unless you're going to continue to build multiple
    // APKs in parallel with the app bundle
    splits {...}

    // Instead, use the bundle block to control which types of configuration APKs
    // you want your app bundle to support.
    bundle {
        language {
            // This property is set to true by default.
            // You can specify `false` to turn off
            // generating configuration APKs for language resources.
            // These resources are instead packaged with each base and
            // feature APK.
            // Continue reading below to learn about situations when an app
            // might change setting to `false`, otherwise consider leaving
            // the default on for more optimized downloads.
            enableSplit = false
        }
        density {
            // This property is set to true by default.
            enableSplit = true
        }
        abi {
            // This property is set to true by default.
            enableSplit = true
        }
    }
}

Umgang mit Sprachänderungen

Google Play bestimmt, welche Sprachressourcen mit der App installiert werden. für die Sprachauswahl in den Geräteeinstellungen des Nutzers. Berücksichtigen Sie Nutzende, die standardmäßige Systemsprache ändert, nachdem sie Ihre App heruntergeladen haben. Wenn deine App diese Sprache unterstützt, fordert das Gerät zusätzliche Konfigurations-APKs für diese Sprachressourcen aus Google Play.

Für Apps, die eine Sprachauswahl in der App bieten und dynamisch die Sprache der App unabhängig von der Spracheinstellung auf Systemebene ändern, müssen Sie einige Änderungen vornehmen, um Abstürze aufgrund fehlender Ressourcen zu vermeiden. Beides das Attribut android.bundle.language.enableSplit auf false festlegen oder Implementierung von On-Demand- Sprachdownloads mit der Play Core Library als beschrieben, wie unter Zusätzliche Sprachressourcen herunterladen beschrieben