Play Feature Delivery

Beim App-Auslieferungsmodell von Google Play werden mithilfe von Android App Bundles optimierte APKs für die Gerätekonfiguration jedes Nutzers generiert und bereitgestellt. So laden Nutzer nur den Code und die Ressourcen herunter, die sie zum Ausführen Ihrer App benötigen.

Bei Play Feature Delivery werden erweiterte Funktionen von App-Bundles verwendet, sodass bestimmte Funktionen Ihrer App bedingt bereitgestellt oder bei Bedarf heruntergeladen werden können. Dazu müssen Sie diese Funktionen zuerst von Ihrer Basis-App in Funktionsmodule trennen.

Buildkonfiguration für Funktionsmodule

Wenn Sie mit Android Studio ein neues Funktionsmodul 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 Eigenschaften beschrieben, die Sie in die Build-Konfiguration Ihres Feature-Moduls aufnehmen sollten und welche nicht.

Was die Build-Konfiguration des Feature-Moduls nicht enthalten sollte

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

  • Signaturkonfigurationen:App-Bundles werden mit Signaturkonfigurationen signiert, die Sie im Basismodul angeben.
  • Eigenschaft minifyEnabled:Sie können das Minimieren von Code für Ihr gesamtes App-Projekt nur über die Build-Konfiguration des Basismoduls aktivieren. Daher sollten Sie dieses Attribut aus den Modul-Features entfernen. Sie können jedoch für jedes Feature-Modul zusätzliche ProGuard-Regeln angeben.
  • versionCode und versionName: Beim Erstellen Ihres App-Bundles verwendet Gradle Informationen zur App-Version, die vom Basismodul bereitgestellt werden. Sie sollten diese Properties aus der build.gradle-Datei Ihres Feature-Moduls ausschließen.

Beziehung zum Basismodul herstellen

Wenn Android Studio Ihr Feature-Modul erstellt, wird es für das Basismodul sichtbar gemacht, indem der Datei build.gradle des Basismoduls die Property android.dynamicFeatures hinzugefügt wird (siehe unten):

// 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 Feature-Moduls, 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

Auch wenn nur die Build-Konfiguration des Basismoduls das Schrumpfen von Code für Ihr App-Projekt aktivieren kann, können Sie mithilfe des Attributs proguardFiles benutzerdefinierte ProGuard-Regeln für jedes Funktionsmodul angeben, wie unten dargestellt.

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 zum Zeitpunkt der Build-Phase mit denen anderer Module (einschließlich des Basismoduls) zusammengeführt werden. Jedes Funktionsmodul kann also eine neue Reihe von Regeln angeben, die dann für alle Module im App-Projekt gelten.

Anwendung bereitstellen

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

Wenn Ihr App-Projekt ein oder mehrere Funktionsmodule enthält, können Sie auswählen, welche Funktionen beim Bereitstellen Ihrer App berücksichtigt werden sollen. Ändern Sie dazu die vorhandene Konfiguration für Ausführung/Fehlerbehebung folgendermaßen:

  1. Wählen Sie in der Menüleiste Ausführen > Konfigurationen bearbeiten 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 Zu implementierende dynamische Funktionen ein Häkchen neben jedem Funktionsmodul, das Sie beim Bereitstellen Ihrer App einschließen möchten.
  4. Klicken Sie auf OK.

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

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. Du kannst die anfängliche Downloadgröße deiner App verringern, indem du bestimmte Funktionen so konfigurierst, 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 nutzen.

Wenn Sie Ihre App als App-Bundle hochladen, erhalten Sie zwar standardmäßig optimierte Downloads. Die erweiterten und anpassbaren Bereitstellungsoptionen für Funktionen erfordern jedoch eine zusätzliche Konfiguration und Modularisierung der Funktionen Ihrer App mithilfe von Funktionsmodulen. Mithilfe von Feature-Modulen können Sie modulare Funktionen erstellen, die Sie so konfigurieren können, dass sie bei Bedarf heruntergeladen werden.

Angenommen, Sie haben eine App, mit der Nutzer Waren auf einem Onlinemarktplatz kaufen und verkaufen können. Sie können jede der folgenden Funktionen der App in separate Funktionsmodule modularisieren:

  • Anmeldung und Erstellung von Konten
  • Marketplace durchsuchen
  • Artikel zum Verkauf anbieten
  • Zahlungen werden verarbeitet

In der folgenden Tabelle werden die verschiedenen Bereitstellungsoptionen beschrieben, die von Feature-Modulen unterstützt werden, und wie sie verwendet werden können, um die Größe des ersten Downloads der Beispielmarktplatz-App zu optimieren.

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

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

Wenn die App bestimmte Schulungsaktivitäten enthält, z. B. einen interaktiven Leitfaden zum Kaufen und Verkaufen von Artikeln auf dem Marktplatz, können Sie diese Funktion bei der App-Installation standardmäßig aktivieren.

Um die installierte Größe der App jedoch zu reduzieren, kann die App anfordern, die Funktion zu löschen, nachdem der Nutzer das Training abgeschlossen hat.

Modulieren Sie Ihre App mit Funktionsmodulen, die keine erweiterten Auslieferungsoptionen konfigurieren.

Wie Sie die Installationsgröße Ihrer App verringern, indem Sie bestimmte Funktionsmodule entfernen, die der Nutzer möglicherweise nicht mehr benötigt, erfahren Sie unter Installierte Module verwalten.

On-Demand-Auslieferung Ermöglicht es Ihrer App, Funktionsmodule bei Bedarf anzufordern und herunterzuladen. Wenn nur 20% der Nutzer der Marktplatz-App Artikel zum Verkauf posten, ist es eine gute Strategie, die Größe des ursprünglichen Downloads für die Mehrheit der Nutzer zu reduzieren, indem die Funktionen zum Aufnehmen von Bildern, einschließlich einer Artikelbeschreibung und zum Verkaufen eines Artikels als On-Demand-Download verfügbar gemacht werden. Sie können das Funktionsmodul für die Verkaufsfunktion 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 einer bestimmten Zeit keine Artikel mehr verkauft, kann die App ihre installierte Größe reduzieren, indem sie die Deinstallation der Funktion anfordert.

Erstellen Sie ein Funktionsmodul und konfigurieren Sie die Auslieferung auf Anfrage. Ihre App kann dann über die Play Feature Delivery Library den Download des Moduls anfordern.
Bedingte Auslieferung Hier können Sie bestimmte Anforderungen an das Nutzergerät angeben, z. B. Hardwarefunktionen, Sprache und API-Mindestversion, um festzulegen, ob eine modulare Funktion bei der App-Installation heruntergeladen wird. Wenn die Marktplatz-App eine globale Reichweite hat, 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 diese bedingt auf dem Gerät eines Nutzers basierend auf seinem registrierten Gebietsschema installieren. Erstellen Sie ein Funktionsmodul und konfigurieren Sie die bedingte Auslieferung.
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 testen“ im Google Play Store oder über eine von Ihnen erstellte URL ausprobieren. Mit dieser Art der Bereitstellung von Inhalten können Sie die Interaktionen mit Ihrer App leichter steigern.

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

Angenommen, ein Spiel enthält die ersten Level in einem einfachen Funktionsmodul. Sie können dieses Modul sofort aktivieren, damit Nutzer das Spiel über einen URL-Link oder die Schaltfläche „Jetzt testen“ sofort ausprobieren können, ohne die App installieren zu müssen. Erstellen Sie ein Funktionsmodul und konfigurieren Sie die sofortige Auslieferung. Ihre App kann dann über die Play Feature Delivery Library den Download des Moduls anfordern.

Denken Sie daran, dass die Modularisierung Ihrer App-Funktionen mithilfe von Funktionsmodulen nur der erste Schritt ist. Damit Google Play Instant unterstützt werden kann, müssen die Downloadgröße des Basismoduls Ihrer App und einer bestimmten Instant-fähigen Funktion strenge Größenbeschränkungen einhalten. Weitere Informationen finden Sie unter Instant-Funktionen aktivieren, indem Sie die Größe von Apps oder Spielen reduzieren.

URI für eine Ressource erstellen

Wenn Sie über einen URI auf eine in einem Feature-Modul gespeicherte Ressource zugreifen möchten, können Sie mit Uri.Builder() einen URI für die Feature-Modulressource generieren. Gehen Sie dazu so vor:

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, damit der richtige Namespace generiert wird, nachdem die gesplitteten APKs geladen wurden.

Angenommen, Sie haben eine App und Feature-Module mit den folgenden Namen:

  • Name des App-Pakets: com.example.my_app_package
  • Name des Ressourcenpakets des Elements: com.example.my_app_package.my_dynamic_feature

Wenn sich resId im Code-Snippet oben auf eine Rohdateiressource mit dem Namen „my_video“ in deinem Feature-Modul bezieht, würde der Code Uri.Builder() oben 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.

Um die Pfade in Ihrem URI zu validieren, können Sie mit dem APK-Analysetool das APK Ihres Funktionsmoduls prüfen und den Paketnamen ermitteln:

Ein Screenshot des APK Analyzers, in dem der Inhalt einer kompilierten Ressourcendatei geprüft wird.
Abbildung 1. Verwenden Sie den APK-Analysator, um den Paketnamen in einer kompilierten Ressourcendatei zu 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-Auslieferung auf einem einzelnen Gerät installieren, kann dies zu Leistungsproblemen führen. Module, die zur Installationszeit hinzugefügt werden und nicht als entfernbar konfiguriert sind, werden automatisch in das Basismodul aufgenommen und zählen auf jedem Gerät nur als ein Funktionsmodul.
  • Begrenzen Sie die Anzahl der Module, die Sie für die Bereitstellung zur Installationszeit als entfernbar konfigurieren, auf maximal 10. Andernfalls kann es länger dauern, die App herunterzuladen und zu installieren.
  • Das On-Demand-Herunterladen und Installieren von Funktionen wird nur auf Geräten mit Android 5.0 (API-Level 21) und höher unterstützt. Wenn Sie Ihre Funktion für ältere Android-Versionen verfügbar machen möchten, aktivieren Sie beim Erstellen eines Funktionsmoduls die Fusing.
  • Aktivieren Sie SplitCompat, damit Ihre App auf heruntergeladene Funktionsmodule zugreifen kann, die auf Anfrage bereitgestellt werden.
  • In Funktionsmodulen dürfen keine Aktivitäten im Manifest angegeben werden, für die android:exported auf true festgelegt ist. Das liegt daran, dass nicht garantiert werden kann, dass das Gerät das Funktionsmodul heruntergeladen hat, wenn eine andere App versucht, die Aktivität zu starten. Außerdem sollte Ihre App prüfen, ob eine Funktion heruntergeladen wurde, bevor versucht wird, auf den Code und die Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Installierte Module verwalten.
  • Da Sie Ihre App für Play Feature Delivery mit einem App-Bundle veröffentlichen müssen, sollten Sie sich mit den bekannten Problemen mit App-Bundles vertraut machen.

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 Kompilierungszeit eingefügt, sodass Sie sie nicht selbst angeben oder ändern müssen. In der folgenden Tabelle werden die Manifest-Attribute beschrieben, die für Feature-Module 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 Ihr App-Bundle in Android Studio erstellt wird, wird dieses Attribut automatisch für Sie eingefügt. Sie sollten dieses Attribut also nicht selbst einfügen oder ändern.

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

So ermittelt Gradle den Wert für dieses Attribut:

Wenn Sie ein Feature-Modul mit Android Studio erstellen, verwendet die IDE standardmäßig den von Ihnen angegebenen Modulnamen, um das Modul als Gradle-Unterprojekt in Ihrer Gradle-Konfigurationsdatei 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 Modulnamen angeben, fügt die IDE ':features:dynamic_feature1' als Unterprojekt in die 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 Ihr App-Bundle in Android Studio erstellt wird, wird dieses Attribut automatisch für Sie eingefügt. Fügen Sie dieses Attribut also nicht manuell hinzu und ändern Sie es nicht manuell.

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 festlegen, 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 Instant-fähige Funktionsmodule enthält, müssen Sie auch das Basismodul für Instant-Apps aktivieren. Wenn Sie Android Studio 3.5 oder höher verwenden, wird dies von der IDE für Sie erledigt, wenn Sie ein sofort aktiviertes Funktionsmodul erstellen.

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

dist:title="@string/feature_name"> Gibt einen für Nutzer sichtbaren Titel für das Modul an. Beispielsweise kann der Titel auf dem Gerät angezeigt werden, wenn eine Bestätigung für den Download angefordert wird.

Sie müssen die Stringressource für diesen Titel in der module_root/src/source_set/res/values/strings.xml-Datei 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-Ebene 20) und niedriger ausgerichtet sind.

Wenn Sie bundletool verwenden, um APKs aus einem App-Bundle zu generieren, sind nur Funktionsmodule, für die diese Eigenschaft auf true festgelegt ist, im universellen APK enthalten. 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> Enthält Optionen, mit denen sich die Modulübermittlung anpassen lässt, wie unten dargestellt. Für jedes Funktionsmodul muss nur eine dieser benutzerdefinierten Auslieferungsoptionen konfiguriert werden.
<dist:install-time> Gibt an, dass das Modul zum Zeitpunkt der Installation verfügbar sein soll. Das ist das Standardverhalten für Funktionsmodule, für die keine andere Art von benutzerdefinierter Auslieferungsoption angegeben ist.

Weitere Informationen zu Downloads bei der Installation finden Sie unter Lieferung bei der Installation konfigurieren.

Mit 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, das Land des Nutzers oder die API-Mindestversion. Weitere Informationen finden Sie unter Konditionale Zustellung konfigurieren.

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

Wenn diese Option nicht festgelegt oder auf false gesetzt ist, verschmelzt Bundletool die Module zur Installationszeit mit dem Basismodul, wenn es gesplittete APKs aus dem Bundle generiert. Da es durch die Zusammenführung weniger gesplittete APKs gibt, kann diese Einstellung die Leistung Ihrer App verbessern.

Wenn removable auf true festgelegt ist, werden die Module zur Installationszeit nicht in das Basismodul eingefügt. Legen Sie true fest, wenn Sie Module später deinstallieren möchten. Wenn Sie jedoch zu viele Module als entfernbar konfigurieren, kann sich die Installationszeit Ihrer App verlängern.

Die Standardeinstellung ist false. Sie müssen diesen Wert nur im Manifest festlegen, wenn Sie die Fusion für ein Funktionsmodul deaktivieren möchten.

Hinweis:Diese Funktion ist nur verfügbar, wenn Sie das Android Gradle-Plug-in 4.2 oder das 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 zum Zeitpunkt der Installation nicht verfügbar, kann aber von Ihrer App später angefordert werden.

Weitere Informationen zu On-Demand-Downloads findest du unter On-Demand-Auslieferung konfigurieren.

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

Weitere Informationen

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 Software Development Kit zu. Bitte lesen Sie sich alle anwendbaren Nutzungsbedingungen und Richtlinien durch, bevor Sie auf die Bibliothek zugreifen.

Datensicherheit

Die Play Core-Bibliotheken sind die Laufzeitschnittstelle Ihrer App mit dem Google Play Store. Wenn Sie Play Core in Ihrer App verwenden, führt der Play Store eigene Prozesse aus, einschließlich der Verarbeitung von Daten gemäß den Google Play-Nutzungsbedingungen. Unten wird beschrieben, wie die Play Core-Bibliotheken mit Daten umgehen, um bestimmte Anfragen von Ihrer App zu verarbeiten.

API für zusätzliche Sprachen

Zur Nutzung erhobene Daten 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 sind verschlüsselt.
Teilen von Daten Die Daten werden nicht an Dritte weitergegeben.
Datenlöschung Die Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Play Feature Delivery

Zur Nutzung erhobene Daten Gerätemetadaten
Anwendungsversion
Zweck der Datenerhebung Die erfassten Daten werden verwendet, um das richtige Modul auf dem Gerät bereitzustellen und installierte Module nach einem Update sowie bei Sicherung und Wiederherstellung zu erhalten.
Datenverschlüsselung Die Daten sind verschlüsselt.
Teilen von Daten Die Daten werden nicht an Dritte weitergegeben.
Datenlöschung Die Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Wir möchten so transparent wie möglich sein. 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.