Bereitstellung bei der Installation konfigurieren

Mit Funktionsmodulen können Sie bestimmte Funktionen und Ressourcen vom Basismodul Ihrer App trennen und in Ihr App-Bundle aufnehmen. Anschließend kannst du die Versandoptionen anpassen und so steuern, wann und wie Geräte mit Android 5.0 (API-Level 21) oder höher die Funktionen deiner App herunterladen.

Beachten Sie, dass diese Art der Modularisierung mehr Aufwand und möglicherweise eine Refaktorierung des vorhandenen Codes Ihrer Anwendung erfordert. Überlegen Sie sich daher genau, welche Funktionen Ihrer App am meisten von einer On-Demand-Verfügbarkeit Ihrer Anwendung profitieren würden.

Wenn Sie Anwendungsfeatures im Laufe der Zeit stufenweise modularisieren möchten, ohne das Verhalten Ihrer Anwendung zu ändern oder erweiterte Bereitstellungsoptionen anzupassen, können Sie Featuremodule erstellen, die für die Bereitstellung bei der Installation konfiguriert sind. Das heißt, Sie können eine Funktion als Funktionsmodul modularisieren, aber keine erweiterten Optionen aktivieren, damit die Funktion verfügbar ist, wenn ein Nutzer Ihre App installiert.

Außerdem haben Funktionsmodule, die für die Bereitstellung bei der Installation konfiguriert sind, die Möglichkeit, später deinstalliert zu werden, wenn sie nicht mehr benötigt werden. Dazu müssen sie als Wechseldatenträger eingerichtet werden.

In diesem Abschnitt wird beschrieben, wie Sie ein Featuremodul für die Bereitstellung bei der Installation erstellen. Sie müssen Android Studio 3.5 oder höher und das Android Gradle-Plug-in 3.5.0 oder höher verwenden.

Neues Modul für die Übermittlung bei der Installation konfigurieren

Am einfachsten lässt sich ein neues Funktionsmodul mit Android Studio 3.5 oder höher erstellen. Da Featuremodule eine inhärente Abhängigkeit vom Basisanwendungsmodul haben, können Sie sie nur vorhandenen Anwendungsprojekten hinzufügen.

So fügen Sie Ihrem App-Projekt mithilfe von Android Studio ein Funktionsmodul hinzu:

  1. Öffnen Sie Ihr App-Projekt in der IDE, falls noch nicht geschehen.
  2. Wählen Sie in der Menüleiste File > New > New Module aus.
  3. Wählen Sie im Dialogfeld Neues Modul erstellen die Option Dynamisches Funktionsmodul aus und klicken Sie auf Weiter.
  4. Führen Sie im Abschnitt Neues Modul konfigurieren die folgenden Schritte aus:
    1. Wählen Sie im Drop-down-Menü das Basisanwendungsmodul für Ihr App-Projekt aus.
    2. Geben Sie einen Modulnamen an. Die IDE verwendet diesen Namen, um das Modul in der Gradle-Einstellungsdatei als Gradle-Unterprojekt zu identifizieren. Wenn Sie Ihr App-Bundle erstellen, verwendet Gradle das letzte Element des Unterprojektnamens, um das Attribut <manifest split> in das Manifest des Funktionsmoduls einzufügen.
    3. Geben Sie den Paketnamen des Moduls an. Standardmäßig schlägt Android Studio einen Paketnamen vor, der den Namen des Stammpakets des Basismoduls mit dem im vorherigen Schritt angegebenen Modulnamen kombiniert.
    4. Wähle das Mindest-API-Level aus, das das Modul unterstützen soll. Dieser Wert sollte mit dem Wert des Basismoduls übereinstimmen.
  5. Klicke auf Weiter.
  6. Führen Sie im Abschnitt Module Download Options (Optionen zum Download des Moduls) die folgenden Schritte aus:

    1. Geben Sie den Modultitel mit bis zu 50 Zeichen an. Das Basismodul Ihrer App muss den Modultitel als String-Ressource enthalten, die übersetzt werden kann. Beim Erstellen des Moduls mit Android Studio fügt die IDE dem Basismodul die String-Ressource hinzu und schleust den folgenden Eintrag in das Manifest des Funktionsmoduls ein:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    2. Wählen Sie im Drop-down-Menü unter Aufnahme bei Installation die Option Modul bei der Installation einschließen aus. Android Studio fügt im Manifest des Moduls Folgendes ein, um Ihre Auswahl widerzuspiegeln:

      <dist:module ... >
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
      </dist:module>
      

      Informationen zum Erstellen eines Funktionsmoduls, das Sie nach der App-Installation herunterladen können, finden Sie unter On-Demand-Bereitstellung konfigurieren.

    3. Klicke das Kästchen neben Fusing an, wenn dieses Modul für Geräte mit Android 4.4 (API-Level 20) und niedriger verfügbar und in Multi-APKs enthalten sein soll. Das bedeutet, dass du sie bei Geräten weglassen kannst, die das Herunterladen und Installieren von unterteilten APKs nicht unterstützen. Android Studio schleust Folgendes in das Manifest des Moduls ein, um Ihre Auswahl widerzuspiegeln:

      <dist:module ...>
          <dist:fusing dist:include="true | false" />
      </dist:module>
      
  7. Klicken Sie auf Fertig.

Nachdem Android Studio das Modul erstellt hat, überprüfen Sie seinen Inhalt im Bereich Projekt. Wählen Sie dazu in der Menüleiste Ansicht > Toolfenster > Projekt aus. Der Standardcode, die Ressourcen und die Organisation sollten denen des Standardanwendungsmoduls ähnlich sein.

Modul zur Installationszeit entfernbar machen

Es kann nützlich sein, Funktionsmodule für die Bereitstellung bei der Installation zu erstellen, die die Option haben, später deinstalliert zu werden, wenn sie nicht mehr benötigt werden. Wenn du beispielsweise die installierte Größe deiner App reduzieren möchtest, kannst du die Inhalte, die für das Training oder Onboarding erforderlich sind, modularisieren und dann das Funktionsmodul über die Play Core API deinstallieren, nachdem der Nutzer die Verwendung deiner App eingerichtet hat.

Module zur Installationszeit können standardmäßig nicht entfernt werden. Wenn Sie ein Modul als austauschbar markieren und deinstallieren möchten, fügen Sie das Tag removable hinzu und setzen Sie seinen Wert auf true:

<dist:module ... >
  <dist:delivery>
      <dist:install-time>
          <dist:removable dist:value="true"/>
      </dist:install-time>
  </dist:delivery>
</dist:module>