Play Feature Delivery

Das App-Bereitstellungsmodell von Google Play verwendet Android App Bundles, um optimierte APKs für die Gerätekonfiguration 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 on demand heruntergeladen werden können. Dazu müssen Sie diese Funktionen zuerst von Ihrer Basis-App trennen und in Funktionsmodule aufteilen.

Build-Konfiguration für Funktionsmodule

Wenn Sie mit Android Studio ein neues Funktionsmodul erstellen, wendet die IDE 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 für das Standard-Anwendungs-Plug-in verfügbaren Properties 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, übernimmt es auch bestimmte Konfigurationen. Daher sollten Sie Folgendes in der build.gradle-Datei des Funktionsmoduls weglassen:

  • Signaturkonfigurationen:App-Bundles werden mit Signaturkonfigurationen signiert, die Sie im Basismodul angeben.
  • Das Attribut minifyEnabled: Du kannst die Codekomprimierung für dein gesamtes App-Projekt nur über die Build-Konfiguration des Basismoduls aktivieren. Sie sollten dieses Attribut daher in Funktionsmodulen weglassen. Sie können jedoch für jedes Funktionsmodul zusätzliche ProGuard-Regeln angeben.
  • versionCode und versionName: Beim Erstellen des App-Bundles verwendet Gradle die vom Basismodul bereitgestellten Informationen zur App-Version. Diese Properties sollten Sie in der Datei build.gradle Ihres Funktionsmoduls weglassen.

Beziehung zum Basismodul herstellen

Wenn Android Studio Ihr Funktionsmodul erstellt, wird es für das Basismodul sichtbar gemacht. Dazu wird das Attribut android.dynamicFeatures in die Datei build.gradle des Basismoduls eingefügt, 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"]
}

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 die Codekomprimierung für Ihr App-Projekt nur in der Build-Konfiguration des Basismoduls aktiviert werden kann, können Sie für jedes Funktionsmodul benutzerdefinierte ProGuard-Regeln mit der Property proguardFiles 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 beim Erstellen mit denen aus anderen Modulen (einschließlich des Basismoduls) zusammengeführt werden. Auch wenn jedes Funktionsmodul einen neuen Satz von Regeln angibt, gelten diese Regeln für alle Module im App-Projekt.

Anwendung bereitstellen

Wenn 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 bei der Bereitstellung Ihrer App enthalten sein sollen. Ändern Sie dazu Ihre vorhandene Konfiguration ausführen/debuggen so:

  1. Wählen Sie in der Menüleiste Ausführen > Konfigurationen bearbeiten aus.
  2. Wählen Sie im linken Bereich des Dialogfelds Konfigurationen ausführen/debuggen die gewünschte Android-App-Konfiguration aus.
  3. Klicken Sie auf dem Tab Allgemein unter Bereitzustellende dynamische Funktionen das Kästchen neben jedem Funktionsmodul an, das Sie bei der Bereitstellung Ihrer App einbeziehen möchten.
  4. Klicken Sie auf OK.

Standardmäßig stellt Android Studio Ihre App nicht mithilfe von App-Bundles bereit. Stattdessen werden in der IDE APKs erstellt und auf Ihrem Gerät installiert, die für die Bereitstellungsgeschwindigkeit und nicht für die APK-Größe optimiert sind. Wenn Sie Android Studio so konfigurieren möchten, dass stattdessen APKs und Instant-Versionen aus einem App-Bundle erstellt und bereitgestellt werden, ändern Sie die Konfiguration ausführen/debuggen.

Funktionsmodule für die benutzerdefinierte 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. Beispielsweise können Sie die anfängliche Downloadgröße Ihrer App reduzieren, indem Sie bestimmte Funktionen so konfigurieren, dass sie entweder bei Bedarf heruntergeladen werden oder nur von Geräten, die bestimmte Funktionen unterstützen, z. B. die Möglichkeit, Bilder 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 zur Bereitstellung von Funktionen sind jedoch zusätzliche Konfigurationen und die Modularisierung der Funktionen Ihrer App mithilfe von Funktionsmodulen erforderlich. Funktionsmodule sind also die Bausteine für die Erstellung 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 modularisieren:

  • Kontoanmeldung und -erstellung
  • Marketplace durchsuchen
  • Artikel zum Verkauf anbieten
  • Zahlungsabwicklung

In der folgenden Tabelle werden die verschiedenen Bereitstellungsoptionen beschrieben, die von Funktionsmodulen unterstützt werden, und wie sie zur Optimierung der anfänglichen Downloadgröße der Beispiel-Marktplatz-App verwendet werden können.

Lieferoption Verhalten Beispielanwendungsfall Erste Schritte
Bereitstellung bei der Installation Funktionsmodule, für die keine der oben beschriebenen Bereitstellungsoptionen konfiguriert ist, werden standardmäßig bei der App-Installation heruntergeladen. Dies ist ein wichtiges Verhalten, da Sie erweiterte Bereitstellungsoptionen schrittweise übernehmen können. Sie können beispielsweise von der Modularisierung der Funktionen Ihrer App profitieren und die On-Demand-Bereitstellung erst dann aktivieren, wenn Sie On-Demand-Downloads mithilfe der Play Feature Delivery-Bibliothek vollständig implementiert haben.

Außerdem kann Ihre App zu einem späteren Zeitpunkt die Deinstallation von Funktionen anfordern. Wenn du also bestimmte Funktionen bei der App-Installation benötigst, aber danach nicht mehr, kannst du die Installationsgröße reduzieren, indem du das Entfernen der Funktion vom Gerät anforderst.

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 einbeziehen.

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

Modularisieren Sie Ihre App mithilfe von Funktionsmodulen, für die keine erweiterten Bereitstellungsoptionen konfiguriert sind.

Informationen dazu, wie du die Installationsgröße deiner App reduzieren kannst, indem du bestimmte Funktionsmodule entfernst, die der Nutzer möglicherweise nicht mehr benötigt, findest du unter Installierte Module verwalten.

On-Demand-Lieferung Ermöglicht Ihrer App, Funktionsmodule nach Bedarf anzufordern und herunterzuladen. Wenn nur 20% der Nutzer der Marktplatz-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, zum Hinzufügen einer Artikelbeschreibung und zum Anbieten eines Artikels zum Verkauf als On-Demand-Download verfügbar gemacht werden. Du kannst das Funktionsmodul für die Verkaufsfunktion der App also 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 außerdem die installierte Größe reduzieren, indem sie die Deinstallation der Funktion anfordert.

Erstelle ein Funktionsmodul und konfiguriere die On-Demand-Auslieferung. Ihre App kann dann die Play Feature Delivery-Bibliothek verwenden, um das Modul bei Bedarf herunterzuladen.
Bedingte Auslieferung Ermöglicht es dir, bestimmte Anforderungen an Nutzergeräte anzugeben, z. B. Hardwarefunktionen, Sprache und Mindest-API-Level, um festzulegen, ob eine modularisierte 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 Orten beliebt sind. Um die Größe des ersten App-Downloads zu reduzieren, kannst du separate Funktionsmodule für die Verarbeitung bestimmter Arten von Zahlungsmethoden erstellen und sie je nach registrierter Sprache des Nutzers bedingt auf seinem Gerät installieren lassen. Erstelle ein Funktionsmodul und konfiguriere die bedingte Bereitstellung.
Sofortige Lieferung Mit Google Play Instant können Nutzer mit deiner App interagieren, ohne sie auf ihrem Gerät installieren zu müssen. Stattdessen können sie deine App über die Schaltfläche „Jetzt testen“ im Google Play Store oder über eine von dir erstellte URL ausprobieren. Diese Form der Bereitstellung von Inhalten erleichtert es dir, die Interaktion mit deiner App zu steigern.

Mit der Sofortbereitstellung kannst du Google Play Instant nutzen, damit deine Nutzer bestimmte Funktionen deiner 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 Instant-fähig machen, 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. Erstelle ein Funktionsmodul und konfiguriere die sofortige Bereitstellung. Ihre App kann dann die Play Feature Delivery-Bibliothek verwenden, um das Modul bei Bedarf herunterzuladen.

Die Modularisierung der 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-fähigen Funktion strengen Größenbeschränkungen entsprechen. Weitere Informationen finden Sie unter Instant-Apps durch Reduzieren der App- oder Spielgröße aktivieren.

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 Ressourcen-URI für das Funktionsmodul 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 unterteilten APKs geladen wurden.

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 mit dem APK Analyzer das APK Ihres Funktionsmoduls prüfen und den Paketnamen ermitteln:

Ein Screenshot des APK Analyzers, der den Inhalt einer kompilierten Ressourcendatei prüft.
Abbildung 1. Verwenden Sie den APK Analyzer, um den Paketnamen in einer kompilierten Ressourcendatei zu prüfen.

Überlegungen 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 reduzieren. Bei der Verwendung von Funktionsmodulen sind jedoch einige Einschränkungen und Grenzfälle zu beachten:

  • Wenn Sie 50 oder mehr Funktionsmodule auf einem einzelnen Gerät installieren, kann dies zu Leistungsproblemen führen. Module, die bei der Installation geladen 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 Auslieferung bei der Installation als entfernbar konfigurieren, auf maximal 10. Andernfalls kann sich die Download- und Installationszeit Ihrer App erhöhen.
  • Nur Geräte mit Android 5.0 (API-Level 21) und höher unterstützen das Herunterladen und Installieren von Funktionen bei Bedarf. Wenn Sie Ihre Funktion für frühere Android-Versionen verfügbar machen möchten, aktivieren Sie beim Erstellen eines Funktionsmoduls die Option Zusammenführen.
  • Aktiviere SplitCompat, damit deine App Zugriff auf heruntergeladene Funktionsmodule hat, die on demand bereitgestellt werden.
  • In Funktionsmodulen sollten keine Aktivitäten im Manifest angegeben werden, bei denen android:exported auf true festgelegt ist. Das liegt daran, dass es keine Garantie dafür gibt, dass das Gerät das Funktionsmodul heruntergeladen hat, wenn eine andere App versucht, die Aktivität zu starten. Außerdem sollte Ihre App bestätigen, dass 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 bei Play Feature Delivery mit einem App-Bundle veröffentlichen müssen, sollten Sie sich über die bekannten Probleme mit App-Bundles informieren.

Referenz zum Manifest für Funktionsmodule

Wenn Sie ein neues Funktionsmodul mit Android Studio 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 für Sie 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-Bibliothek anfordert.

So bestimmt Gradle den Wert für dieses Attribut:

Wenn Sie ein Funktionsmodul mit Android Studio erstellen, verwendet die IDE standardmäßig den von Ihnen angegebenen Modulnamen, um das Modul in Ihrer Gradle-Einstellungsdatei als Gradle-Unterprojekt 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 Ihre settings.gradle-Datei 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 für Sie 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 gesetzt.

<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 mit Instant-Version enthält, müssen Sie auch das Basismodul mit Instant-Version aktivieren. Wenn Sie Android Studio 3.5 oder höher verwenden, übernimmt die IDE dies für Sie, wenn Sie ein Instant-fähiges Funktionsmodul erstellen.

Du kannst dieses XML-Element nicht auf true setzen, wenn du gleichzeitig <dist:on-demand/> festlegst. Sie können jedoch weiterhin On-Demand-Downloads Ihrer Instant-fähigen Funktionsmodule als Instant-Versionen über die Play Feature Delivery-Bibliothek anfordern. Wenn ein Nutzer deine App herunterlädt und installiert, werden die Instant-fähigen Funktionsmodule deiner App zusammen mit dem Basis-APK standardmäßig 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 Downloadbestätigung anfordert.

Du musst 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 für Geräte mit Android 4.4 (API-Level 20) und niedriger enthalten sein soll.

Wenn du bundletool verwendest, um APKs aus einem App-Bundle zu generieren, werden außerdem nur Funktionsmodule, für die diese Property 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 deine App unterstützt.

<dist:delivery> Kapselt Optionen, mit denen die Modulbereitstellung angepasst wird, wie unten gezeigt. Beachte, dass für jedes Funktionsmodul nur eine Art dieser benutzerdefinierten Bereitstellungsoptionen konfiguriert werden darf.
<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 bei der Installation findest du unter Bereitstellung bei 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, Land des Nutzers oder Mindest-API-Level. Weitere Informationen finden Sie unter Bedingte Auslieferung konfigurieren.

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

Wenn die Option nicht festgelegt oder auf false gesetzt ist, führt bundletool bei der Generierung von unterteilten APKs aus dem Bundle die Module für die Installation mit dem Basismodul zusammen. Da durch die Zusammenführung weniger unterteilte APKs vorhanden sind, kann diese Einstellung die Leistung deiner App verbessern.

Wenn removable auf true festgelegt ist, werden Module, die bei der Installation geladen werden, nicht mit dem Basismodul zusammengeführt. Legen Sie true fest, wenn Sie Module in Zukunft deinstallieren möchten. Wenn du jedoch zu viele Module als entfernbar konfigurierst, kann sich die Installationszeit deiner App verlängern.

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

Hinweis:Diese Funktion ist nur verfügbar, wenn Sie das Android-Gradle-Plug-in 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 heißt, das Modul ist bei der Installation nicht verfügbar, aber deine App kann es später herunterladen.

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 Funktionsmodul keine DEX-Dateien generiert, also keinen Code enthält, der später in das DEX-Dateiformat kompiliert wird, müssen Sie Folgendes tun. Andernfalls können Laufzeitfehler auftreten:
  1. Setze im Manifest des Funktionsmoduls android:hasCode auf "false".
  2. Fügen Sie dem Manifest des Basismoduls Folgendes hinzu:
    <application
      android:hasCode="true"
      tools:replace="android:hasCode">
      ...
    </application>
...
</manifest>

Zusätzliche Ressourcen

Weitere Informationen zur Verwendung von Funktionsmodulen findest du in den folgenden Ressourcen.

Blogposts

Videos

Nutzungsbedingungen und Datensicherheit

Wenn Sie auf die Play Feature Delivery-Bibliothek zugreifen oder sie verwenden, stimmen Sie den Nutzungsbedingungen für das Play Core Software Development Kit zu. Bitte lesen und verstehen Sie alle anwendbaren Bedingungen und Richtlinien, bevor Sie auf die Bibliothek zugreifen.

Datensicherheit

Die Play Core-Bibliotheken sind die Laufzeitschnittstelle Ihrer App zum Google Play Store. Wenn du Play Core in deiner App verwendest, führt der Google Play Store eigene Prozesse aus, einschließlich der Verarbeitung von Daten, die den Google Play-Nutzungsbedingungen unterliegt. Im Folgenden wird beschrieben, wie die Play Core-Bibliotheken Daten verarbeiten, um bestimmte Anfragen von deiner App zu bearbeiten.

API für zusätzliche Sprachen

Datenerhebung zur Nutzung 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.
Datenweitergabe Daten werden nicht an Dritte übertragen.
Datenlöschung Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Play Feature Delivery

Datenerhebung zur Nutzung Gerätemetadaten
Anwendungsversion
Zweck der Datenerhebung Die erhobenen Daten werden verwendet, um das richtige Modul für das Gerät bereitzustellen und installierte Module nach einem Update, einer Sicherung und einer Wiederherstellung beizubehalten.
Datenverschlüsselung Die Daten werden verschlüsselt.
Datenweitergabe Daten werden nicht an Dritte übertragen.
Datenlöschung Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Wir möchten so transparent wie möglich sein, Sie entscheiden jedoch selbstverantwortlich, wie Sie das Formular für den Abschnitt zur Datensicherheit in Google Play im Hinblick auf die Datenerhebung, Weitergabe und den Schutz von Nutzerdaten ausfüllen.