Play Feature Delivery

Das App-Auslieferungsmodell von Google Play verwendet Android App Bundles, um optimierte APKs für die Gerätekonfigurationen der einzelnen Nutzer zu generieren und bereitzustellen. So laden Nutzer nur den Code und die Ressourcen herunter, die sie zum Ausführen Ihrer App benötigen.

Play Feature Delivery nutzt erweiterte Funktionen von App-Bundles, sodass bestimmte Funktionen Ihrer App unter bestimmten Bedingungen bereitgestellt oder bei Bedarf heruntergeladen werden können. Dazu müssen Sie diese Funktionen zuerst in Funktionsmodule aufteilen.

Build-Konfiguration für Funktionsmodule

Wenn Sie ein neues Funktionsmodul mit Android Studio erstellen, wendet die IDE das folgende Gradle-Plug-in auf die build.gradle-Datei des Moduls an.

// The following applies the dynamic-feature plugin to your feature module.
// The plugin includes the Gradle tasks and properties required to configure and build
// an app bundle that includes your feature module.

plugins {
  id 'com.android.dynamic-feature'
}

Viele der Eigenschaften, die für das Standard-Anwendungs-Plug-in verfügbar sind, sind auch für Ihr Funktionsmodul verfügbar. In den folgenden Abschnitten werden die Attribute beschrieben, die Sie in die Build-Konfiguration Ihres Funktionsmoduls aufnehmen sollten und welche nicht.

Was nicht in die Build-Konfiguration des Funktionsmoduls aufgenommen werden sollte

Da jedes Funktionsmodul vom Basismodul abhängt, werden auch bestimmte Konfigurationen übernommen. Daher sollten Sie Folgendes in der Datei build.gradle des Funktionsmoduls weglassen:

  • Signierungskonfigurationen:App-Bundles werden mit Signierungskonfigurationen signiert, die Sie im Basismodul angeben.
  • Die Property minifyEnabled:Sie können Code-Shrinking für Ihr gesamtes App-Projekt nur über die Build-Konfiguration des Basismoduls aktivieren. Daher sollten Sie dieses Attribut aus Funktionsmodulen entfernen. Sie können jedoch zusätzliche ProGuard-Regeln für jedes Funktionsmodul angeben.
  • versionCode und versionName: Beim Erstellen Ihres App-Bundles verwendet Gradle die App-Versionsinformationen, die vom Basismodul bereitgestellt werden. Sie sollten diese Properties aus der Datei build.gradle Ihres Feature-Moduls entfernen.

Beziehung zum Basismodul herstellen

Wenn Android Studio Ihr Funktionsmodul erstellt, wird es für das Basismodul sichtbar gemacht, indem die android.dynamicFeatures-Property zur build.gradle-Datei des Basismoduls hinzugefügt wird, wie unten dargestellt:

// In the base module’s build.gradle file.
android {
    ...
    // Specifies feature modules that have a dependency on
    // this base module.
    dynamicFeatures = [":dynamic_feature", ":dynamic_feature2"]
}

Außerdem enthält Android Studio das Basismodul als Abhängigkeit des Funktionsmoduls, wie unten dargestellt:

// In the feature module’s build.gradle file:
...
dependencies {
    ...
    // Declares a dependency on the base module, ':app'.
    implementation project(':app')
}

Zusätzliche ProGuard-Regeln angeben

Obwohl nur die Build-Konfiguration des Basismoduls das Verkleinern von Code für Ihr App-Projekt aktivieren kann, können Sie mit dem Attribut proguardFiles benutzerdefinierte ProGuard-Regeln für jedes Funktionsmodul angeben, wie unten gezeigt.

android.buildTypes {
     release {
         // You must use the following property to specify additional ProGuard
         // rules for feature modules.
         proguardFiles 'proguard-rules-dynamic-features.pro'
     }
}

Beachten Sie, dass diese ProGuard-Regeln zur Build-Zeit mit denen aus anderen Modulen (einschließlich des Basismoduls) zusammengeführt werden. Jedes Funktionsmodul kann zwar einen neuen Satz von Regeln angeben, diese Regeln gelten jedoch für alle Module im App-Projekt.

App bereitstellen

Wenn Sie Ihre App mit Unterstützung für Funktionsmodule entwickeln, können Sie sie wie gewohnt auf einem verbundenen Gerät bereitstellen, indem Sie in der Menüleiste Ausführen > Ausführen auswählen oder in der Symbolleiste auf Ausführen klicken.

Wenn Ihr App-Projekt ein oder mehrere Funktionsmodule enthält, können Sie auswählen, welche Funktionen beim Bereitstellen Ihrer App einbezogen werden sollen. Dazu müssen Sie Ihre vorhandene Konfiguration für das Ausführen/Debuggen wie folgt ändern:

  1. Wählen Sie in der Menüleiste Run > Edit Configurations aus.
  2. Wählen Sie im linken Bereich des Dialogfelds Run/Debug Configurations die gewünschte Android App-Konfiguration aus.
  3. Setzen Sie auf dem Tab Allgemein unter Dynamische Funktionen zum Bereitstellen ein Häkchen neben jedem Funktionsmodul, das bei der Bereitstellung Ihrer App berücksichtigt werden soll.
  4. Klicken Sie auf OK.

Standardmäßig wird Ihre App in Android Studio nicht mit App Bundles bereitgestellt. Stattdessen werden APKs erstellt und auf Ihrem Gerät installiert, die für die Bereitstellungsgeschwindigkeit optimiert sind, nicht für die APK-Größe. Wenn Sie Android Studio so konfigurieren möchten, dass stattdessen APKs und Instant-Apps aus einem App-Bundle erstellt und bereitgestellt werden, ändern Sie Ihre Ausführungs-/Debugkonfiguration.

Funktionsmodule für eine angepasste Bereitstellung verwenden

Ein einzigartiger Vorteil von Funktionsmodulen ist die Möglichkeit, anzupassen, wie und wann verschiedene Funktionen Ihrer App auf Geräte mit Android 5.0 (API‑Level 21) oder höher heruntergeladen werden. Um beispielsweise die anfängliche Downloadgröße Ihrer App zu verringern, können Sie bestimmte Funktionen so konfigurieren, dass diese erst bei Bedarf oder nur von Geräten heruntergeladen werden, die bestimmte Funktionen unterstützen, z. B. die Möglichkeit, Fotos aufzunehmen oder Augmented Reality-Funktionen zu unterstützen.

Wenn Sie Ihre App als App-Bundle hochladen, erhalten Sie standardmäßig hochgradig optimierte Downloads. Für die erweiterten und anpassbaren Optionen für die Bereitstellung von Funktionen sind jedoch eine zusätzliche Konfiguration und Modularisierung der Funktionen Ihrer App mit Funktionsmodulen erforderlich. Das heißt, Feature-Module sind die Bausteine zum Erstellen modularer Funktionen, die Sie so konfigurieren können, dass sie bei Bedarf heruntergeladen werden.

Stellen Sie sich eine App vor, mit der Nutzer Waren auf einem Onlinemarktplatz kaufen und verkaufen können. Sie können jede der folgenden Funktionen der App in separate Funktionsmodule unterteilen:

  • Kontoanmeldung und ‑erstellung
  • Marketplace durchsuchen
  • Artikel zum Verkauf anbieten
  • Zahlungen verarbeiten

In der folgenden Tabelle werden die verschiedenen Bereitstellungsoptionen beschrieben, die von Funktionsmodulen unterstützt werden, und es wird erläutert, wie sie verwendet werden können, um die anfängliche Downloadgröße der Beispiel-Marketplace-App zu optimieren.

Lieferoption Verhalten Beispielanwendungsfall Erste Schritte
Bereitstellung bei der Installation Funktionsmodule, für die keine der oben beschriebenen Bereitstellungsoptionen konfiguriert sind, werden standardmäßig bei der App-Installation heruntergeladen. Das ist wichtig, weil Sie so erweiterte Ausrichtungsoptionen nach und nach einführen können. Sie können beispielsweise die Funktionen Ihrer App modularisieren und die On-Demand-Bereitstellung erst aktivieren, nachdem Sie On-Demand-Downloads mit der Play Feature Delivery Library vollständig implementiert haben.

Außerdem kann Ihre App zu einem späteren Zeitpunkt die Deinstallation von Funktionen anfordern. Wenn Sie also bestimmte Funktionen bei der Installation der App benötigen, danach aber nicht mehr, können Sie die Installationsgröße verringern, indem Sie anfordern, dass die Funktion vom Gerät entfernt wird.

Wenn die App bestimmte Trainingsaktivitäten enthält, z. B. eine interaktive Anleitung zum Kaufen und Verkaufen von Artikeln auf dem Marktplatz, können Sie diese Funktion standardmäßig bei der App-Installation einbinden.

Um die installierte Größe der App zu reduzieren, kann die App jedoch anfordern, dass die Funktion gelöscht wird, nachdem der Nutzer das Training abgeschlossen hat.

Teilen Sie Ihre App in Module auf und verwenden Sie dazu Funktionsmodule, für die keine erweiterten Bereitstellungsoptionen konfiguriert sind.

Informationen dazu, wie Sie die installierte Größe Ihrer App verringern können, indem Sie bestimmte Funktionsmodule entfernen, die der Nutzer möglicherweise nicht mehr benötigt, finden Sie unter Installierte Module verwalten.

On-Demand-Lieferung Ermöglicht Ihrer App, Funktionsmodule bei Bedarf anzufordern und herunterzuladen. Wenn nur 20% der Nutzer der Marketplace-App Artikel zum Verkauf anbieten, ist es eine gute Strategie, die anfängliche Downloadgröße für die Mehrheit der Nutzer zu reduzieren, indem die Funktionen zum Aufnehmen von Bildern, einschließlich einer Artikelbeschreibung, und zum Anbieten eines Artikels zum Verkauf als On-Demand-Download verfügbar gemacht werden. Sie können das Funktionsmodul für die Verkaufsfunktionen der App so konfigurieren, dass es nur heruntergeladen wird, wenn ein Nutzer Interesse daran zeigt, Artikel auf dem Marktplatz zum Verkauf anzubieten.

Wenn der Nutzer nach einem bestimmten Zeitraum keine Artikel mehr verkauft, kann die App außerdem ihre installierte Größe verringern, indem sie die Deinstallation der Funktion anfordert.

Erstellen Sie ein Funktionsmodul und konfigurieren Sie die On-Demand-Bereitstellung. Ihre App kann dann die Play Feature Delivery Library verwenden, um den Download des Moduls bei Bedarf anzufordern.
Bedingungsabhängige Auslieferung Ermöglicht es Ihnen, bestimmte Anforderungen an Nutzergeräte festzulegen, z. B. Hardwarefunktionen, Gebietsschema und Mindest-API-Level, um zu bestimmen, ob eine modularisierte Funktion bei der App-Installation heruntergeladen wird. Wenn die Marketplace-App weltweit verfügbar ist, müssen Sie möglicherweise Zahlungsmethoden unterstützen, die nur in bestimmten Regionen oder Ländern beliebt sind. Um die anfängliche Downloadgröße der App zu verringern, können Sie separate Funktionsmodule für die Verarbeitung bestimmter Zahlungsmethoden erstellen und sie basierend auf dem registrierten Gebietsschema des Nutzers bedingt auf dem Gerät des Nutzers installieren lassen. Erstellen Sie ein Funktionsmodul und konfigurieren Sie die bedingte Bereitstellung.
Sofortige Lieferung Mit Google Play Instant können Nutzer mit Ihrer App interagieren, ohne sie auf ihrem Gerät installieren zu müssen. Stattdessen können sie Ihre App über die Schaltfläche „Jetzt ausprobieren“ im Google Play Store oder über eine von Ihnen erstellte URL testen. Diese Art der Bereitstellung von Inhalten erleichtert es Ihnen, die Interaktion mit Ihrer App zu steigern.

Mit der Instant-Bereitstellung können Sie Google Play Instant nutzen, damit Ihre Nutzer bestimmte Funktionen Ihrer App sofort und ohne Installation ausprobieren können.

Sie könnten die ersten Level eines Spiels in ein kleines Funktionsmodul aufnehmen. Sie können das Modul für Instant-Apps aktivieren, damit Nutzer das Spiel sofort über einen URL-Link oder die Schaltfläche „Jetzt testen“ ausprobieren können, ohne die App installieren zu müssen. Erstellen Sie ein Feature-Modul und konfigurieren Sie die sofortige Bereitstellung. Ihre App kann dann die Play Feature Delivery Library verwenden, um den Download des Moduls bei Bedarf anzufordern.

Das Modularisieren von App-Funktionen mithilfe von Funktionsmodulen ist nur der erste Schritt. Damit Google Play Instant unterstützt wird, muss die Downloadgröße des Basismoduls Ihrer App und einer bestimmten Instant-App-Funktion strenge Größenbeschränkungen erfüllen. Weitere Informationen

URI für eine Ressource erstellen

Wenn Sie über einen URI auf eine Ressource zugreifen möchten, die in einem Funktionsmodul gespeichert ist, können Sie mit Uri.Builder() einen URI für die Ressource des Funktionsmoduls generieren:

Kotlin

val uri = Uri.Builder()
                .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded
                .appendPath(resources.getResourceTypeName(resId))
                .appendPath(String.format("%s:%s",
                  resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace.
                  resources.getResourceEntryName(resId)
                  ))
                .build()

Java

String uri = Uri.Builder()
                .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded
                .appendPath(resources.getResourceTypeName(resId))
                .appendPath(String.format("%s:%s",
                  resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace.
                  resources.getResourceEntryName(resId)
                  ))
                .build().toString();

Jeder Teil des Pfads zur Ressource wird zur Laufzeit erstellt. So wird sichergestellt, dass der richtige Namespace generiert wird, nachdem die Split-APKs geladen wurden.

Hier ein Beispiel für die Generierung des URI: Angenommen, Sie haben eine App und Funktionsmodule mit den folgenden Namen:

  • App-Paketname: com.example.my_app_package
  • Paketname der Ressourcen des Features: com.example.my_app_package.my_dynamic_feature

Wenn sich resId im obigen Code-Snippet auf eine Rohdateiressource mit dem Namen „my_video“ in Ihrem Funktionsmodul bezieht, würde der obige Uri.Builder()-Code Folgendes ausgeben:

android.resource://com.example.my_app_package/raw/com.example.my_app_package.my_dynamic_feature:my_video

Dieser URI kann dann von Ihrer App verwendet werden, um auf die Ressource des Funktionsmoduls zuzugreifen.

Wenn Sie die Pfade in Ihrem URI validieren möchten, können Sie den APK Analyzer verwenden, um das APK Ihres Funktionsmoduls zu untersuchen und den Paketnamen zu ermitteln:

Ein Screenshot des APK Analyzer, der den Inhalt einer kompilierten Ressourcendatei untersucht.
Abbildung 1. Mit dem APK Analyzer können Sie den Paketnamen in einer kompilierten Ressourcendatei prüfen.

Hinweise zu Funktionsmodulen

Mit Funktionsmodulen können Sie die Build-Geschwindigkeit und die Entwicklungsgeschwindigkeit verbessern und die Bereitstellung der Funktionen Ihrer App umfassend anpassen, um die Größe Ihrer App zu verringern. Bei der Verwendung von Funktionsmodulen sind jedoch einige Einschränkungen und Grenzfälle zu beachten:

  • Wenn Sie 50 oder mehr Funktionsmodule über die bedingte oder On-Demand-Bereitstellung auf einem einzelnen Gerät installieren, kann dies zu Leistungsproblemen führen. Installationszeitmodule, die nicht als entfernbar konfiguriert sind, werden automatisch in das Basismodul aufgenommen und zählen auf jedem Gerät nur als ein Funktionsmodul.
  • Beschränken Sie die Anzahl der Module, die Sie für die Bereitstellung zur Installationszeit als entfernbar konfigurieren, auf maximal 10. Andernfalls kann sich die Download- und Installationszeit Ihrer App verlängern.
  • Das Herunterladen und Installieren von Funktionen bei Bedarf wird nur auf Geräten mit Android 5.0 (API-Level 21) und höher unterstützt. Wenn Sie Ihr Feature für frühere Android-Versionen verfügbar machen möchten, aktivieren Sie Fusing, wenn Sie ein Feature-Modul erstellen.
  • Aktivieren Sie SplitCompat, damit Ihre App auf heruntergeladene Funktionsmodule zugreifen kann, die bei Bedarf bereitgestellt werden.
  • In Featuremodulen sollten keine Aktivitäten im Manifest mit android:exported auf true festgelegt werden. Das liegt daran, dass nicht garantiert werden kann, dass das Gerätemodul heruntergeladen wurde, wenn eine andere App versucht, die Aktivität zu starten. Außerdem sollte Ihre App bestätigen, dass eine Funktion heruntergeladen wurde, bevor sie versucht, auf ihren Code und ihre Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Installierte Module verwalten.
  • Da für Play Feature Delivery die Veröffentlichung Ihrer App mit einem App-Bundle erforderlich ist, sollten Sie sich über bekannte Probleme mit App-Bundles informieren.

Manifestreferenz für Funktionsmodule

Wenn Sie mit Android Studio ein neues Funktionsmodul erstellen, enthält die IDE die meisten Manifestattribute, die das Modul benötigt, um sich wie ein Funktionsmodul zu verhalten. Außerdem werden einige Attribute vom Build-System zur Kompilierzeit eingefügt, sodass Sie sie nicht selbst angeben oder ändern müssen. In der folgenden Tabelle werden die Manifestattribute beschrieben, die für Funktionsmodule wichtig sind.

Attribut Beschreibung
<manifest Dies ist ein typischer <manifest>-Block.
xmlns:dist="http://schemas.android.com/apk/distribution" Gibt einen neuen dist:-XML-Namespace an, der weiter unten beschrieben wird.
split="split_name" Wenn Android Studio Ihr App-Bundle erstellt, wird dieses Attribut automatisch eingefügt. Sie sollten dieses Attribut also nicht selbst einfügen oder ändern.

Definiert den Namen des Moduls, den Ihre App angibt, wenn sie ein On-Demand-Modul über die Play Feature Delivery Library anfordert.

So bestimmt Gradle den Wert für dieses Attribut:

Wenn Sie ein Featuremodul mit Android Studio erstellen, verwendet die IDE standardmäßig den Namen, den Sie als Modulname angeben, um das Modul als Gradle-Unterprojekt in Ihrer Gradle-Einstellungsdatei zu identifizieren.

Wenn Sie Ihr App-Bundle erstellen, verwendet Gradle das letzte Element des Unterprojektpfads, um dieses Manifestattribut in das Manifest des Moduls einzufügen. Wenn Sie beispielsweise ein neues Funktionsmodul im Verzeichnis MyAppProject/features/ erstellen und „dynamic_feature1“ als Modulname angeben, fügt die IDE ':features:dynamic_feature1' als Unterprojekt in Ihre Datei settings.gradle ein. Beim Erstellen des App-Bundles fügt Gradle dann <manifest split="dynamic_feature1"> in das Manifest des Moduls ein.

android:isFeatureSplit="true | false"> Wenn Android Studio Ihr App-Bundle erstellt, wird dieses Attribut automatisch eingefügt. Sie sollten dieses Attribut also nicht manuell einfügen oder ändern.

Gibt an, dass dieses Modul ein Funktionsmodul ist. In Manifesten im Basismodul und in Konfigurations-APKs wird dieses Attribut entweder weggelassen oder auf false festgelegt.

<dist:module Definiert Attribute, die bestimmen, wie das Modul als APKs verpackt und verteilt wird.
dist:instant="true | false" Gibt an, ob das Modul über Google Play Instant als Instant-Version verfügbar sein soll.

Wenn Ihre App ein oder mehrere Funktionsmodule enthält, die für Instant Apps aktiviert sind, müssen Sie auch das Basismodul für Instant Apps aktivieren. Wenn Sie Android Studio 3.5 oder höher verwenden, übernimmt die IDE diese Aufgabe für Sie, wenn Sie ein für Instant Apps aktiviertes Funktionsmodul erstellen.

Sie können dieses XML-Element nicht auf true festlegen, wenn Sie gleichzeitig <dist:on-demand/> festlegen. Sie können jedoch weiterhin On-Demand-Downloads Ihrer für Instant-Apps aktivierten Funktionsmodule als Instant-Versionen über die Play Feature Delivery Library anfordern. Wenn ein Nutzer Ihre App herunterlädt und installiert, werden auf dem Gerät standardmäßig die Instant-fähigen Funktionsmodule Ihrer App zusammen mit dem Basis-APK heruntergeladen und installiert.

dist:title="@string/feature_name"> Gibt einen für Nutzer sichtbaren Titel für das Modul an. Das Gerät kann diesen Titel beispielsweise anzeigen, wenn es eine Bestätigung für den Download anfordert.

Sie müssen die String-Ressource für diesen Titel in die Datei module_root/src/source_set/res/values/strings.xml des Basismoduls einfügen.

<dist:fusing dist:include="true | false" /> Gibt an, ob das Modul in Multi-APKs enthalten sein soll, die auf Geräte mit Android 4.4 (API‑Level 20) und niedriger ausgerichtet sind.

Wenn Sie mit bundletool APKs aus einem App Bundle generieren, werden außerdem nur Funktionsmodule, für die diese Eigenschaft auf true festgelegt ist, in das universelle APK aufgenommen. Das ist ein monolithisches APK, das Code und Ressourcen für alle Gerätekonfigurationen enthält, die von Ihrer App unterstützt werden.

<dist:delivery> Kapselt Optionen, mit denen die Modulbereitstellung angepasst werden kann, wie unten dargestellt. Jedes Funktionsmodul darf nur einen Typ dieser benutzerdefinierten Bereitstellungsoptionen konfigurieren.
<dist:install-time> Gibt an, dass das Modul bei der Installation verfügbar sein soll. Dies ist das Standardverhalten für Funktionsmodule, für die keine andere Art von benutzerdefinierter Bereitstellungsoption angegeben ist.

Weitere Informationen zu Downloads während der Installation finden Sie unter Bereitstellung während der Installation konfigurieren.

In diesem Knoten können auch Bedingungen angegeben werden, die das Modul auf Geräte beschränken, die bestimmte Anforderungen erfüllen, z. B. Gerätefunktionen, Nutzerland oder Mindest-API-Level. Weitere Informationen finden Sie unter Bedingte Zustellung konfigurieren.

<dist:removable dist:value="true | false" />

Wenn diese Option nicht festgelegt oder auf false gesetzt ist, führt Bundletool die Module für die Installationszeit in das Basismodul ein, wenn Split-APKs aus dem Bundle generiert werden. Da durch das Zusammenführen weniger Split-APKs entstehen, kann diese Einstellung die Leistung Ihrer App verbessern.

Wenn removable auf true festgelegt ist, werden Module, die bei der Installation ausgeliefert werden, nicht in das Basismodul integriert. Legen Sie true fest, wenn Sie Module in Zukunft deinstallieren möchten. Wenn Sie jedoch zu viele Module als entfernbar konfigurieren, kann sich die Installationszeit Ihrer App verlängern.

Die Standardeinstellung ist false. Es ist nur erforderlich, diesen Wert im Manifest festzulegen, wenn Sie das Zusammenführen für ein Funktionsmodul deaktivieren möchten.

Hinweis:Diese Funktion ist nur verfügbar, wenn Sie das Android-Gradle-Plugin 4.2 oder bundletool v1.0 über die Befehlszeile verwenden.

</dist:install-time>  
<dist:on-demand /> Gibt an, dass das Modul als On-Demand-Download verfügbar sein soll. Das Modul ist also bei der Installation nicht verfügbar, kann aber später von Ihrer App heruntergeladen werden.

Weitere Informationen zu On-Demand-Downloads finden Sie unter On-Demand-Bereitstellung konfigurieren.

</dist:delivery>
</dist:module>
<application
android:hasCode="true | false">
...
</application>
Wenn für das Funktionsmodul keine DEX-Dateien generiert werden, d. h., es keinen Code enthält, der später in das DEX-Dateiformat kompiliert wird, müssen Sie Folgendes tun. Andernfalls können Laufzeitfehler auftreten:
  1. Setzen Sie android:hasCode im Manifest des Funktionsmoduls auf "false".
  2. Fügen Sie dem Manifest Ihres Basismoduls Folgendes hinzu:
    <application
      android:hasCode="true"
      tools:replace="android:hasCode">
      ...
    </application>
...
</manifest>

Zusätzliche Ressourcen

Weitere Informationen zur Verwendung von Funktionsmodulen finden Sie in den folgenden Ressourcen.

Blogposts

Videos

Nutzungsbedingungen und Datensicherheit

Wenn Sie auf die Play Feature Delivery Library zugreifen oder sie verwenden, stimmen Sie den Nutzungsbedingungen für das Play Core SDK zu. Bitte lesen Sie sich alle anwendbaren Nutzungsbedingungen und Richtlinien durch, bevor Sie auf die Mediathek zugreifen.

Datensicherheit

Die Play Core-Bibliotheken sind die Laufzeitschnittstelle Ihrer App zum Google Play Store. Wenn Sie Play Core in Ihrer App verwenden, führt der Play Store eigene Prozesse aus, die die Verarbeitung von Daten gemäß den Nutzungsbedingungen von Google Play umfassen. Im Folgenden wird beschrieben, wie die Play Core-Bibliotheken Daten verarbeiten, um bestimmte Anfragen Ihrer App zu bearbeiten.

API für zusätzliche Sprachen

Erfasste Nutzungsdaten Liste der installierten Sprachen
Zweck der Datenerhebung Die erhobenen Daten werden verwendet, um verschiedene Sprachversionen der App bereitzustellen und installierte Sprachen nach einem App-Update beizubehalten.
Datenverschlüsselung Die Daten werden verschlüsselt.
Teilen von Daten Daten werden nicht an Dritte übertragen.
Datenlöschung Daten werden nach einem festen Aufbewahrungszeitraum gelöscht.

Play Feature Delivery

Erfasste Nutzungsdaten Gerätemetadaten
Anwendungsversion
Zweck der Datenerhebung Die erhobenen Daten werden verwendet, um das richtige Modul auf dem Gerät bereitzustellen und installierte Module nach einem Update sowie nach dem Sichern und Wiederherstellen beizubehalten.
Datenverschlüsselung Die Daten werden verschlüsselt.
Teilen von Daten Daten werden nicht an Dritte übertragen.
Datenlöschung Daten werden nach einem festen Aufbewahrungszeitraum gelöscht.

Wir möchten so transparent wie möglich sein, um Sie zu unterstützen. Sie als App-Entwickler entscheiden jedoch selbstverantwortlich, wie Sie das Formular für den Abschnitt zur Datensicherheit in Google Play im Hinblick auf die Erhebung, Weitergabe und den Schutz von Daten ausfüllen.