Play Feature Delivery

Das App-Bereitstellungsmodell von Google Play verwendet Android-Apps Sets zum Generieren und Bereitstellen optimierter APKs für die Gerätekonfiguration, sodass Nutzer nur den Code und die Ressourcen herunterladen, die sie benötigen, die App ausführen.

Play Feature Delivery nutzt die erweiterten Funktionen von App Bundles, unter bestimmten Bedingungen bereitgestellt oder on demand heruntergeladen werden können. Dazu müssen Sie diese Funktionen zuerst in Funktionsmodule.

Build-Konfiguration für Funktionsmodul

Wenn Sie mit Android Studio ein neues Funktionsmodul erstellen, wendet das folgende Gradle-Plug-in auf die Datei build.gradle 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 verfügbaren Unterkünfte Standard-Anwendungs-Plug-in sind auch für Ihr Funktionsmodul verfügbar. Die folgenden Abschnitte beschreiben Sie die Eigenschaften, die Sie in Ihren Build-Konfiguration des Funktionsmoduls.

Was nicht in der Build-Konfiguration des Feature-Moduls enthalten ist

Da jedes Funktionsmodul vom Basismodul abhängt, übernimmt bestimmte Konfigurationen. Daher sollten Sie Folgendes im Feld Datei build.gradle des Funktionsmoduls:

  • Signierungskonfigurationen:App-Bundles werden mithilfe von Signaturen signiert. Konfigurationen, die Sie im Basismodul angeben.
  • Die Property minifyEnabled: Du kannst Folgendes tun: Codekomprimierung aktivieren für Ihr gesamtes App-Projekt nur aus dem Build des Basismoduls Konfiguration. Deshalb sollten Sie diese Eigenschaft Funktionsmodule. Sie können jedoch zusätzliche ProGuard-Regeln angeben für jedes Funktionsmodul.
  • versionCode und versionName: Beim Erstellen deines App Bundles: Gradle verwendet Informationen zur App-Version, die vom Basismodul bereitgestellt werden. Du solltest diese Eigenschaften in den build.gradle-Datei.

Beziehung zum Basismodul herstellen

Wenn Android Studio dein Funktionsmodul erstellt, wird es sichtbar dem Basismodul hinzu, indem Sie die Eigenschaft android.dynamicFeatures zum build.gradle-Datei des Basismoduls, wie unten gezeigt:

// 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"]
}

Darüber hinaus 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 ermöglichen kann können Sie für jedes App-Projekt benutzerdefinierte ProGuard-Regeln festlegen, mithilfe der Funktion proguardFiles 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'
     }
}

Beachte, dass diese ProGuard-Regeln mit denen aus anderen Modulen zusammengeführt werden (einschließlich des Basismoduls) zur Build-Erstellung. Obwohl jede Funktion neue Regeln angeben, gelten diese Regeln für alle Module im App-Projekt

Anwendung bereitstellen

Während du deine App mit Unterstützung für Funktionsmodule entwickelst, kannst du Stellen Sie Ihre App wie gewohnt auf einem verbundenen Gerät bereit, indem Sie Ausführen > Ausführen über die Menüleiste (oder durch Klicken auf Ausführen in in der Symbolleiste).

Wenn Ihr App-Projekt ein oder mehrere Funktionsmodule enthält, können Sie Wählen Sie aus, welche Features bei der Bereitstellung Ihrer App berücksichtigt werden sollen, indem Sie Ihre vorhandene Ausführungs-/Fehlerbehebungskonfiguration als folgt:

  1. Wählen Sie Ausführen > Edit Configurations (Konfigurationen bearbeiten) aus.
  2. Wählen Sie im linken Bereich des Dialogfelds Run/Debug Configurations die gewünschte Konfiguration für die Android-App.
  3. Klicken Sie auf dem Tab General (Allgemein) unter Dynamic features to deploy (Bereitstellung mit dynamischen Funktionen) das Kästchen neben neben jedem Funktionsmodul, das Sie einfügen möchten, der Bereitstellung Ihrer App.
  4. Klicken Sie auf OK.

Standardmäßig wird Ihre App von Android Studio nicht mithilfe von App Bundles bereitgestellt. für Ihre App. Stattdessen gibt die IDE für Ihr Gerät APKs, die für die Bereitstellungsgeschwindigkeit optimiert sind, statt auf die APK-Größe. Um Android Studio für die Erstellung und Bereitstellung zu konfigurieren APKs und Instant-Versionen aus einem App Bundle, Ausführungs-/Debugging-Einstellungen ändern Konfiguration.

Funktionsmodule für benutzerdefinierte Zustellung verwenden

Ein besonderer Vorteil von Funktionsmodulen ist die Möglichkeit, individuell anzupassen, wie und wann verschiedene Funktionen deiner App auf Geräte mit Android 5.0 heruntergeladen werden, (API-Level 21) oder höher. Um beispielsweise die anfängliche Downloadgröße können Sie bestimmte Funktionen so konfigurieren, dass sie nach Bedarf oder nur für Geräte, die bestimmte Funktionen unterstützen, Fotos aufnehmen oder Augmented Reality-Funktionen unterstützen.

Auch wenn die Downloads beim Hochladen Ihrer App standardmäßig optimiert sind, als App Bundle sind die erweiterten und anpassbaren Optionen für die Funktionsbereitstellung erfordern eine zusätzliche Konfiguration und Modularisierung der Funktionen Ihrer App. Funktionsmodule. Funktionsmodule stellen also die zum Erstellen modularer Funktionen, die Sie jeweils nach Bedarf heruntergeladen.

Stellen Sie sich eine App vor, mit der Nutzer Waren online kaufen und verkaufen können. -Markt. Sie können jede der folgenden Funktionen sinnvoll modularisieren. der App in separate Funktionsmodule:

  • Kontoanmeldung und Kontoerstellung
  • Marketplace durchsuchen
  • Einen Artikel zum Verkauf anbieten
  • Zahlungen werden verarbeitet

In der folgenden Tabelle werden die verschiedenen Zustellungsoptionen beschrieben, die diese Funktion bietet. Unterstützung von Modulen und wie sie zur Optimierung des anfänglichen Downloads verwendet werden können Beispielgröße der Marketplace-App.

Lieferoption Verhalten Beispielanwendungsfall Erste Schritte
Installationszeitpunkt Funktionsmodule, für die keine Auslieferungsoptionen konfiguriert sind wie oben beschrieben, werden standardmäßig bei der App-Installation heruntergeladen. Dies ist ein ist wichtig, weil Sie so die erweiterte Auslieferung nach und nach anpassen. Sie profitieren beispielsweise von der Modularisierung App-Funktionen zu aktivieren und die On-Demand-Auslieferung erst zu aktivieren, wenn Sie On-Demand-Downloads über die Play Feature Delivery Library implementiert.

Außerdem kann die Deinstallation von Funktionen durch Ihre App zu einem späteren Zeitpunkt angefordert werden. Wenn Sie bestimmte Funktionen bei der App-Installation benötigen, können Sie die Installationsgröße reduzieren, indem Sie beantragen, das Feature aus der .

Ob die App über bestimmte Trainingsaktivitäten verfügt, z. B. eine interaktive Anleitung zum Kaufen und Verkaufen von Artikeln auf dem Marktplatz, können Sie diese bei der App-Installation.

Um die installierte Größe der App zu reduzieren, kann die App jedoch Folgendes anfordern: die Funktion nach Abschluss der Schulung wieder zu löschen.

App mithilfe von Funktionen modularisieren Module, die keine erweiterten Zustellungsoptionen konfigurieren.

Um zu erfahren, wie du die installierte Größe deiner App reduzieren kannst, indem du bestimmte Funktionsmodule, die Nutzende unter Umständen nicht mehr benötigen, lesen Verwalten installierte Module.

On-Demand-Auslieferung Ermöglicht deiner App, Funktionsmodule bei Bedarf anzufordern und herunterzuladen. Wenn nur 20% der Nutzer der Marketplace-App Artikel zum Verkauf anbieten, gute Strategie zur Reduzierung der anfänglichen Downloadgröße für die Mehrheit der Nutzer die Funktionalität zum Aufnehmen von Fotos und ein Objekt und einen Artikel zum Verkauf anbieten, der on demand verfügbar ist. herunterladen. Das heißt, Sie können das Funktionsmodul für die Die Verkaufsfunktion der App darf nur heruntergeladen werden, wenn der Nutzer am Verkauf von Artikeln auf dem Markt interessiert sind.

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

Ein Funktionsmodul erstellen und on demand konfigurieren Auslieferung. Ihre App kann dann das Play Feature Delivery Library für die Anfrage können Sie das Modul on demand herunterladen.
Bedingte Auslieferung Ermöglicht die Angabe bestimmter Anforderungen an Nutzergeräte, z. B. Hardware Funktionen, Sprache und Mindest-API-Level, um zu bestimmen, wird bei der Installation der App heruntergeladen. Wenn die Marketplace-App eine globale Reichweite hat, müssen Sie möglicherweise Zahlungsmethoden, die nur in bestimmten Regionen oder vor Ort beliebt sind. In Um die anfängliche Downloadgröße der App zu reduzieren, können Sie Funktionsmodule für die Verarbeitung bestimmter Arten von Zahlungsmethoden eine bedingte Installation auf dem Gerät des Nutzers registrierten Gebietsschema. Ein Funktionsmodul erstellen und Bedingte Auslieferung konfigurieren
Sofortige Lieferung Google Play Instant ermöglicht es Nutzern, mit deiner App zu interagieren, ohne sie installieren zu müssen auf ihrem Gerät. Stattdessen können sie Ihre App über die Schaltfläche Jetzt“ im Google Play Store oder über eine von Ihnen erstellte URL klicken. Diese Form von können Sie mit Inhalten leichter das Interesse an Ihrer Website steigern,

Bei der sofortigen Übermittlung können Sie Google Play Instant nutzen, um Ihre bestimmte Funktionen Ihrer App sofort nutzen können, Installation.

Nehmen wir ein Spiel, bei dem die ersten Level des Spiels schlankes Funktionsmodul. Sie können dieses Modul sofort aktivieren, damit die Nutzer das Spiel sofort über einen URL-Link oder „Teste Jetzt“ ohne App-Installation. Ein Funktionsmodul erstellen und konfigurieren sofortige Zustellung. Ihre App kann dann das Play Feature Delivery Library für die Anfrage können Sie das Modul on demand herunterladen.

Sie können Ihre App-Funktionen mithilfe von Funktionen modularisieren, ist nur der erste Schritt. Zur Unterstützung von Google Play Instant Downloadgröße des Basismoduls deiner App und eines bestimmten Instant-fähigen muss strenge Größenbeschränkungen erfüllen. Weitere Informationen Lesen Sie Aktivieren Instant-Apps durch Reduzieren der App- oder Spielgröße.

URI für eine Ressource erstellen

Wenn Sie auf eine in einem Funktionsmodul gespeicherte Ressource mithilfe eines URI erstellen, einen Ressourcen-URI für Funktionsmodul mit Uri.Builder():

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 Pfades zur Ressource wird während der Laufzeit erstellt. Dadurch wird sichergestellt, dass nach dem Laden der unterteilten APKs der richtige Namespace generiert wird.

Als Beispiel für die Generierung des URI nehmen wir an, Sie haben eine App und Funktionsmodule mit diesen Namen:

  • App-Paketname: com.example.my_app_package
  • Paketname der Featureressourcen: 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 ein, würde der obige Uri.Builder()-Code Geben Sie Folgendes aus:

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

Mit diesem URI kann deine App dann auf die Ressource des Funktionsmoduls zugreifen.

Mit dem APK Analyzer können Sie die Pfade in Ihrem URI validieren. um dein APK für dein Funktionsmodul zu prüfen und den Paketnamen zu ermitteln:

Screenshot des APK Analyzers, in dem der Inhalt einer kompilierten Ressourcendatei untersucht wird

Abbildung 2: Verwende das APK Analyzer, um den Paketnamen in einer kompilierten Ressourcendatei zu überprüfen.

Überlegungen zu Funktionsmodulen

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

  • Installation von mindestens 50 Funktionsmodulen auf einem einzigen Gerät über bedingte oder On-Demand-Auslieferung zu verhindern, kann dies zu Leistungsproblemen führen. der Installationszeitmodule, sind nicht als abnehmbar konfiguriert, sind automatisch in der Basis enthalten. und zählen nur als ein Funktionsmodul auf jedem Gerät.
  • Begrenzen Sie die Anzahl der Module, die Sie während der Installation als austauschbar konfigurieren Auslieferung auf 10 oder weniger. Andernfalls wird der die Download- und Installationszeit Ihrer App erhöhen können.
  • Support nur auf Geräten mit Android 5.0 (API-Level 21) oder höher können Funktionen bei Bedarf heruntergeladen und installiert werden. So machen Sie Ihre Funktion verfügbar: auf früheren Android-Versionen Fusion beim Erstellen eines Funktionsmoduls.
  • Aktivieren Sie SplitCompat. damit deine App Zugriff auf heruntergeladene Funktionsmodule hat, Nachfrage.
  • Funktionsmodule sollten in ihrem Manifest keine Aktivitäten mit android:exported festgelegt auf true. Das liegt daran, dass es keine Garantie dafür gibt, das Funktionsmodul heruntergeladen hat, als eine andere App versucht, Aktivitäten. Außerdem sollte Ihre App bestätigen, dass eine Funktion bevor Sie versuchen, auf den Code und die Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Installierte Module verwalten.
  • Da du deine App für Play Feature Delivery mit einem App Bundle veröffentlichen musst, sollten Sie das App Bundle kennen, bekannten Problemen.

Manifestreferenz für Funktionsmodul

Beim Erstellen eines neuen Funktionsmoduls mit Android Studio enthält die meisten Manifestattribute, die für das Verhalten des Moduls erforderlich sind. wie ein Funktionsmodul. Außerdem werden einige Attribute vom beim Kompilieren des Systems, sodass Sie sie nicht selbst angeben oder ändern müssen. In der folgenden Tabelle werden die Manifestattribute beschrieben, die für Funktionsmodule.

Attribut Beschreibung
<manifest
...
Das ist Ihr typischer <ph type="x-smartling-placeholder"></ph> <manifest>-Block.
xmlns:dist="http://schemas.android.com/apk/distribution" Gibt einen neuen dist:-XML-Namespace an, der wie unten beschrieben.
split="split_name" Wenn dein App Bundle in Android Studio erstellt wird, ist Folgendes enthalten: für Sie. Daher sollten Sie keine Änderungen vornehmen, Sie selbst dieses Attribut.

Definiert den Namen des Moduls, den Ihre App angibt wenn ein On-Demand-Modul mithilfe der Play Feature Delivery Library angefordert wird.

So bestimmt Gradle den Wert für dieses Attribut:

Wenn Sie ein Funktionsmodul mit Android Studio verwendet die IDE Ihre Angaben als Module name zum Identifizieren des Moduls als Gradle-Unterprojekt in Ihrem Gradle-Einstellungsdatei.

Beim Erstellen Ihres App Bundles verwendet Gradle das letzte Element von den Unterprojektpfad zum Einfügen dieses Manifestattributs in die Manifests. Wenn Sie z. B. ein neues Funktionsmodul das Verzeichnis MyAppProject/features/ und angegebene „dynamic_feature1“ als Modulname verwendet, fügt die IDE ':features:dynamic_feature1' als Unterprojekt in Ihrem settings.gradle-Datei. Stellen Sie beim Erstellen Ihres App Bundles Gradle fügt dann <manifest split="dynamic_feature1"> im Manifest des Moduls.

android:isFeatureSplit="true | false"> Wenn Android Studio dein App Bundle erstellt, enthält es Folgendes: dieses Attribut für Sie. Daher sollten Sie keine oder ändern Sie dieses Attribut manuell.

Gibt an, dass dieses Modul ein Funktionsmodul ist. Manifeste in den Basismodul- und Konfigurations-APKs lassen Sie dieses Attribut weg oder legen es auf false fest.

<dist:module Dieses neue XML-Element definiert Attribute, die bestimmen, wie die Modul wird als APKs gepackt und verteilt.
dist:instant="true | false" Gibt an, ob das Modul über Google Play Instant als eine Instant-Version.

Wenn Ihre App mindestens eine Instant-Funktion enthält Module, müssen Sie auch das Basismodul sofort aktivieren. Bei Verwendung Android Studio 3.5 oder höher wird dies von der IDE erledigt, wenn Sie erstellen Sie eine Instant-Version Funktionsmodul

Sie können dieses XML-Element nicht auf true festlegen, während Sie gleichzeitig <dist:on-demand/>. Sie können aber auch On-Demand-Downloads deiner Instant-Funktionsmodule als Instant-Version über die Play Feature Delivery Library. Wenn ein Nutzer Ihre App herunterlädt und installiert, wird das Gerät die Instant-fähigen Funktionsmodule Ihrer App herunterlädt und installiert, zusammen mit dem Basis-APK.

dist:title="@string/feature_name" Gibt einen für den Nutzer sichtbaren Titel für das Modul an. Beispiel: Das Gerät zeigt diesen Titel möglicherweise an, wenn es einen Download anfordert bestätigen.

Sie müssen die Stringressource für diesen Titel angeben im module_root/src/source_set/res/values/strings.xml des Basismoduls -Datei.

<dist:fusing dist:include="true | false" />
</dist:module>
Gibt an, ob das Modul in Multi-APKs enthalten ist, die Zielgeräte mit Android 4.4 (API-Level 20) und niedriger an.

Wenn Sie Verwende bundletool, um APKs aus einem App Bundle zu generieren, Nur Funktionsmodule, die diese Eigenschaft auf true setzen sind im universellen APK enthalten, einem monolithischen APK mit Code und Ressourcen für alle Gerätekonfigurationen, die deine App unterstützt.

<dist:delivery> Kapselt Optionen zum Anpassen der Modulübermittlung, wie unten gezeigt. Beachten Sie, dass für jedes Funktionsmodul nur ein Typ von für diese benutzerdefinierten Versandoptionen.
<dist:install-time> Gibt an, dass das Modul zum Zeitpunkt der Installation verfügbar sein soll. Dies ist die Standardverhalten für Funktionsmodule, die keine andere Angabe die Art der benutzerdefinierten Zustellungsoption.

Weitere Informationen zu Downloads bei der Installation findest du hier: <ph type="x-smartling-placeholder"></ph> Konfigurieren Sie die Installation bei der Installation.

Dieser Knoten kann auch Bedingungen angeben, die das Modul auf Geräte, die bestimmte Anforderungen erfüllen, z. B. Gerätefunktionen, oder das minimale API-Level. Weitere Informationen finden Sie unter <ph type="x-smartling-placeholder"></ph> Konfigurieren Sie die bedingte Auslieferung.

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

Wenn die Richtlinie nicht konfiguriert oder auf „false“ gesetzt ist, führt „bundletool“ die Module bei der Installation zusammen in das Basismodul übertragen, wenn geteilte APKs aus dem Bundle generiert werden. Da durch die Zusammenführung weniger unterteilte APKs entstehen, können Sie die Leistung Ihrer App verbessern.

Wenn removable auf true gesetzt ist: Installationszeit werden die Module nicht mit dem Basismodul zusammengeführt. Festlegen auf true, wenn du Module später deinstallieren möchtest. Wenn zu viele Module konfiguriert werden, sodass sie nicht entfernt werden können, kann dies jedoch die Installationszeit Ihrer App.

Die Standardeinstellung ist false. Es ist nur erforderlich, diese im Manifest, wenn Sie die Zusammenführung für eine Funktionsmodul.

Hinweis:Diese Funktion ist nur verfügbar, wenn Sie Android-Gradle verwenden. Plug-in 4.2 oder bei Verwendung von Bundletool v1.0 über die Befehlszeile

</dist:install-time>  
<dist:on-demand/> Gibt an, dass das Modul als On demand verfügbar sein soll herunterladen. Das heißt, das Modul ist bei der Installation nicht verfügbar, aber Ihr App kann später einen Download anfordern.

Weitere Informationen zu On-Demand-Downloads finden Sie unter <ph type="x-smartling-placeholder"></ph> On-Demand-Auslieferung konfigurieren

</dist:delivery>
<application
android:hasCode="true | false">
...
</application>
Wenn das Funktionsmodul keine DEX-Dateien erzeugt, d. h., es enthält keinen Code, der später in das DEX-Dateiformat kompiliert wird. Sie müssen (andernfalls können Laufzeitfehler auftreten): <ph type="x-smartling-placeholder">
    </ph>
  1. Setzen Sie android:hasCode auf "false" in der Manifest des Funktionsmoduls.
  2. Fügen Sie dem Manifest Ihres base-Moduls Folgendes hinzu:
    <application
      android:hasCode="true"
      tools:replace="android:hasCode">
      ...
    </application>
    

Weitere Informationen

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

Blogposts

Videos

Nutzungsbedingungen und Datensicherheit

Durch den Zugriff auf die Play Feature Delivery Library oder deren Verwendung erklärst du dich mit den Nutzungsbedingungen für das Play Core Software Development Kit. Bitte lesen und sich mit allen geltenden Nutzungsbedingungen und Richtlinien vertraut machen, bevor Sie auf die Bibliothek zugreifen.

Datensicherheit

Die Play Core-Bibliotheken sind die Schnittstelle zwischen Ihrer App und dem Google Play Store. Wenn Sie Play Core in Ihrer App verwenden, wird der Play Store daher wie die Verarbeitung von Daten gemäß den Google Play-Nutzungsbedingungen Im Folgenden wird beschrieben, wie die Play Core-Bibliotheken Daten verarbeiten, um bestimmte Anfragen aus Ihrer App zu verarbeiten.

API für zusätzliche Sprachen

Im Rahmen der Nutzung erhobene Daten Liste der installierten Sprachen
Zweck der Datenerhebung Die erhobenen Daten werden verwendet, um verschiedene Sprachversionen der App bereitzustellen und die installierten Sprachen nach einem App-Update beizubehalten.
Datenverschlüsselung Daten sind verschlüsselt.
Teilen von Daten Es werden keine Daten an Dritte weitergegeben.
Datenlöschung Die Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Play Feature Delivery

Im Rahmen der Nutzung erhobene Daten Gerätemetadaten
App-Version
Zweck der Datenerhebung Die erfassten Daten werden verwendet, um dem Gerät das richtige Modul bereitzustellen und die installierten Module nach einer Aktualisierung und Sicherung und Wiederherstellung beizubehalten.
Datenverschlüsselung Daten sind verschlüsselt.
Teilen von Daten Es werden keine Daten an Dritte weitergegeben.
Datenlöschung Die Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Wir möchten Ihnen zwar so transparent wie möglich sein, aber Sie tragen die alleinige Verantwortung wie du das Formular für den Abschnitt zur Datensicherheit von Google Play ausfüllen sollst in Bezug auf die Erhebung, Weitergabe und Sicherheit von Nutzerdaten in Ihrer App.