Play Feature Delivery

Im App-Bereitstellungsmodell von Google Play werden Android App Bundles verwendet, um optimierte APKs für die Gerätekonfiguration jedes Nutzers zu generieren und bereitzustellen. Dadurch 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, damit bestimmte Funktionen Ihrer App unter bestimmten Bedingungen bereitgestellt oder bei Bedarf heruntergeladen werden können. Dazu müssen Sie diese Features zuerst von Ihrer Basis-App in Feature-Module unterteilen.

Build-Konfiguration des Featuremoduls

Wenn du mit Android Studio ein neues Funktionsmodul erstellst, 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 Attribute, die für das Standardanwendungs-Plug-in verfügbar sind, sind auch für das Funktionsmodul verfügbar. In den folgenden Abschnitten werden die Attribute beschrieben, die Sie in der Build-Konfiguration eines Feature-Moduls aufnehmen und nicht verwenden sollten.

Was nicht in der Build-Konfiguration des Feature-Moduls enthalten sein darf

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

  • Signierkonfigurationen:App-Bundles werden mit Signaturkonfigurationen signiert, die Sie im Basismodul angeben.
  • Das Attribut minifyEnabled: Sie können für Ihr gesamtes Anwendungsprojekt das Reduzieren des Codes nur aus der Build-Konfiguration des Basismoduls aktivieren. Daher sollten Sie dieses Attribut in den Featuremodulen weglassen. Sie können jedoch für jedes Funktionsmodul zusätzliche ProGuard-Regeln angeben.
  • versionCode und versionName: Beim Erstellen Ihres App-Bundles verwendet Gradle die App-Versionsinformationen, die das Basismodul bereitstellt. Sie sollten diese Attribute in der Datei build.gradle des Feature-Moduls weglassen.

Verbindung zum Basismodul herstellen

Wenn Android Studio ein Funktionsmodul erstellt, wird es für das Basismodul sichtbar. 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"]
}

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 die Codereduzierung für Ihr App-Projekt ermöglicht, können Sie mit dem Attribut proguardFiles benutzerdefinierte ProGuard-Regeln für jedes Featuremodul bereitstellen, 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 bei der Erstellung mit denen aus anderen Modulen (einschließlich des Basismoduls) zusammengeführt werden. Obwohl jedes Featuremodul einen neuen Regelsatz enthalten kann, 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 sie wie gewohnt auf einem verbundenen Gerät bereitstellen. Wähle dazu in der Menüleiste Ausführen > Ausführen aus oder klicke in der Symbolleiste auf Ausführen .

Wenn Ihr Anwendungsprojekt ein oder mehrere Funktionsmodule enthält, können Sie die Features auswählen, die beim Bereitstellen der Anwendung enthalten sein sollen. Ändern Sie dazu die vorhandene Ausführungs-/Fehlerbehebungskonfiguration so:

  1. Wählen Sie in der Menüleiste Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten) aus.
  2. Wählen Sie im linken Bereich des Dialogfelds Run/Debug Configurations die gewünschte Konfiguration der Android-App aus.
  3. Klicken Sie auf dem Tab Allgemein unter Dynamische Features zum Bereitstellen auf das Kästchen neben jedem Featuremodul, das Sie bei der Bereitstellung Ihrer Anwendung einbinden möchten.
  4. Klicke auf OK.

Standardmäßig wird Ihre App in Android Studio nicht mithilfe von App Bundles bereitgestellt. Stattdessen werden von der IDE APKs erstellt und auf Ihrem Gerät installiert, die statt der APK-Größe für eine Bereitstellungsgeschwindigkeit 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 Ihre Ausführungs-/Fehlerbehebungskonfiguration.

Funktionsmodule für benutzerdefinierte Bereitstellung verwenden

Ein einzigartiger Vorteil von Funktionsmodulen ist die Möglichkeit, anzupassen, wie und wann verschiedene Funktionen deiner App auf Geräte mit Android 5.0 (API-Level 21) oder höher heruntergeladen werden. Um beispielsweise die anfängliche Downloadgröße deiner App zu reduzieren, kannst du bestimmte Funktionen so konfigurieren, dass sie entweder bei Bedarf bei Bedarf heruntergeladen werden oder nur von Geräten, 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 hochoptimierte Downloads. Die komplexeren und anpassbaren Optionen zur Featurebereitstellung erfordern jedoch eine zusätzliche Konfiguration und Modularisierung der Features Ihrer App mithilfe von Funktionsmodulen. Funktionsmodule stellen also die Bausteine zum Erstellen modularer Funktionen bereit, die Sie für den jeweiligen Download konfigurieren können.

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

  • Anmeldung und Erstellung des Kontos
  • Im Marketplace stöbern
  • Einen Artikel zum Verkauf anbieten
  • Zahlungen werden verarbeitet

In der folgenden Tabelle werden die verschiedenen Übermittlungsoptionen beschrieben, die von den Modulen unterstützt werden. Außerdem erfahren Sie, wie Sie damit die anfängliche Downloadgröße der Marketplace-Beispielanwendung optimieren können.

Lieferoption Verhalten Beispielanwendungsfall Erste Schritte
Installationszeitpunkt-Lieferung Funktionsmodule, für die keine der oben beschriebenen Bereitstellungsoptionen konfiguriert werden, werden standardmäßig bei der App-Installation heruntergeladen. Dies ist ein wichtiges Verhalten, weil Sie damit erweiterte Zustellungsoptionen schrittweise implementieren können. Du kannst beispielsweise von der Modularisierung der Funktionen deiner App profitieren und die On-Demand-Bereitstellung erst aktivieren, nachdem du On-Demand-Downloads mit der Play Feature Delivery Library vollständig implementiert hast.

Außerdem kann Ihre App die Deinstallation von Funktionen auch später anfordern. Wenn du also bestimmte Funktionen für die App-Installation benötigst, aber nicht danach, kannst du die Installationsgröße reduzieren. Fordere dazu das Entfernen der Funktion an.

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

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

Modularisieren Sie Ihre Anwendung mithilfe von Funktionsmodulen, die keine erweiterten Bereitstellungsoptionen konfigurieren.

Unter Installierte Module verwalten erfährst du, wie du die installierte Größe deiner App reduzieren kannst, indem du bestimmte Funktionsmodule entfernst, die der Nutzer möglicherweise nicht mehr benötigt.

On-Demand-Auslieferung Ermöglicht deiner App, bei Bedarf Funktionsmodule anzufordern und herunterzuladen. Wenn nur 20% derjenigen, die die Marketplace-App verwenden, Artikel zum Verkauf anbieten, ist es eine gute Strategie, die anfängliche Downloadgröße für die meisten Nutzer zu reduzieren, indem die Funktion zum Fotografieren, einschließlich einer Artikelbeschreibung, und zum Platzieren eines zum Verkauf angebotenen Artikels als On-Demand-Download zur Verfügung gestellt wird. Das heißt, du kannst das Funktionsmodul so konfigurieren, dass die Verkaufsfunktion der App nur dann heruntergeladen wird, wenn ein Nutzer Interesse daran zeigt, Artikel zum Verkauf auf dem Marktplatz zu platzieren.

Wenn der Nutzer nach einem bestimmten Zeitraum keine Artikel mehr verkauft, kann die Installationsgröße der App verringert werden, indem die Deinstallation der Funktion angefordert wird.

Erstellen Sie ein Funktionsmodul und konfigurieren Sie die On-Demand-Bereitstellung. Deine App kann dann über die Play Feature Delivery Library bei Bedarf den Download des Moduls anfordern.
Bedingte Auslieferung Sie können bestimmte Geräteanforderungen von Nutzern angeben, z. B. Hardwarefunktionen, Sprache und Mindest-API-Level. So lässt sich bestimmen, ob eine modulare Funktion bei der App-Installation heruntergeladen wird. Wenn die Marketplace-App eine globale Reichweite hat, müssen Sie möglicherweise Zahlungsmethoden unterstützen, die nur in bestimmten Regionen oder vor Ort beliebt sind. Um die anfängliche Downloadgröße der App zu reduzieren, kannst du separate Funktionsmodule zur Verarbeitung bestimmter Arten von Zahlungsmethoden erstellen und diese basierend auf der registrierten Sprache des Nutzers bedingt auf dem Gerät eines Nutzers installieren lassen. Erstellen Sie ein Funktionsmodul und konfigurieren Sie die bedingte Zustellung.
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 Ihre App über die Schaltfläche „Jetzt testen“ im Google Play Store oder über eine von Ihnen erstellte URL aufrufen. Diese Art der Bereitstellung von Inhalten erleichtert es dir, die Interaktion mit deiner App zu steigern.

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

Nehmen wir ein Spiel, bei dem die ersten Level des Spiels in einem einfachen Funktionsmodul enthalten sind. Du kannst dieses Modul sofort aktivieren, sodass Nutzer das Spiel sofort über einen URL-Link oder die Schaltfläche „Jetzt testen“ ohne App-Installation erleben können. Erstellen Sie ein Funktionsmodul und konfigurieren Sie die sofortige Bereitstellung. Deine App kann dann über die Play Feature Delivery Library bei Bedarf den Download des Moduls anfordern.

Die Modularisierung der App-Features mithilfe von Featuremodulen ist nur der erste Schritt. Zur Unterstützung von Google Play Instant müssen die Downloadgröße des Basismoduls deiner App sowie eine bestimmte Instant-Funktion aktivierte Funktion strengen Größenbeschränkungen entsprechen. Weitere Informationen finden Sie unter Instant-Funktionen durch Reduzieren der App- oder Spielgröße ermöglichen.

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() den Ressourcen-URI für das Feature-Modul folgendermaßen 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. Dadurch wird sichergestellt, dass der richtige Namespace generiert wird, nachdem die unterteilten APKs geladen wurden.

Angenommen, Sie haben eine Anwendung und Funktionsmodule mit folgenden Namen, um ein Beispiel für die Generierung des URI zu sehen:

  • App-Paketname: com.example.my_app_package
  • Paketname der Feature-Ressourcen: 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 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

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

Wenn Sie die Pfade in Ihrem URI validieren möchten, können Sie das APK Analyzer verwenden, um das APK des Feature-Moduls zu prüfen und den Paketnamen zu ermitteln:

Screenshot des APK Analyzer, das den Inhalt einer kompilierten Ressourcendatei untersucht

Abbildung 2: Verwenden Sie das APK Analyzer, um den Paketnamen in einer kompilierten Ressourcendatei zu prüfen.

Überlegungen zu Funktionsmodulen

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

  • Die Installation von 50 oder mehr Funktionsmodulen auf einem einzelnen Gerät per bedingter oder On-Demand-Bereitstellung kann zu Leistungsproblemen führen. Module mit der Installationszeit, die nicht als austauschbar 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 während der Installation als entfernbar konfigurieren möchten, auf maximal 10. Andernfalls kann sich die Download- und Installationszeit Ihrer Anwendung verlängern.
  • 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 Ihr Feature für frühere Android-Versionen verfügbar machen möchten, aktivieren Sie beim Erstellen eines Feature-Moduls Fusing.
  • Aktivieren Sie SplitCompat, damit Ihre Anwendung Zugriff auf heruntergeladene Funktionsmodule hat, die on demand bereitgestellt werden.
  • Featuremodule sollten in ihrem Manifest keine Aktivitäten angeben, wenn android:exported auf true festgelegt ist. Das liegt daran, dass es keine Garantie dafür gibt, dass das Funktionsmodul auf das Gerät 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 versucht wird, auf den Code und die Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Installierte Module verwalten.
  • Da Sie für Play Feature Delivery Ihre App mit einem App Bundle veröffentlichen müssen, sollten Sie sich über die bekannten Probleme im App Bundle informieren.

Manifest-Referenz für Funktionsmodul

Beim Erstellen eines neuen Funktionsmoduls mit Android Studio 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 bei der Kompilierung eingeschleust, sodass Sie sie nicht selbst angeben oder ändern müssen. In der folgenden Tabelle werden die Manifestattribute beschrieben, die für Featuremodule wichtig sind.

Attribut Beschreibung
<manifest
...
Das ist der typische <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" Dieses Attribut wird beim Erstellen Ihres App-Bundles in Android Studio angegeben. Sie sollten dieses Attribut also nicht selbst hinzufügen oder ändern.

Definiert den Namen des Moduls, den deine App angibt, wenn ein On-Demand-Modul über die Play Feature Delivery Library angefordert wird.

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 Featuremodul 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 <manifest split="dynamic_feature1"> in das Manifest des Moduls ein.

android:isFeatureSplit="true | false"> Dieses Attribut wird beim Erstellen Ihres App-Bundles in Android Studio angegeben. Sie sollten dieses Attribut daher nicht manuell einfügen oder ändern.

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

<dist:module Dieses neue XML-Element definiert Attribute, die bestimmen, wie das Modul als APKs verpackt und vertrieben 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 instanziieren. 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.

Sie können dieses XML-Element nicht auf true festlegen und gleichzeitig <dist:on-demand/> festlegen. Sie können jedoch weiterhin On-Demand-Downloads Ihrer Feature-Module mit Instant-Version als Instant-Funktionen über die Play Feature Delivery Library anfordern. Wenn ein Nutzer deine App herunterlädt und installiert, lädt und installiert das Gerät standardmäßig die sofort aktivierten Funktionsmodule der App sowie das Basis-APK.

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

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

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

Wenn du bundletool zum Generieren von APKs aus einem App-Bundle verwendest, werden außerdem nur Featuremodule, für die diese Eigenschaft auf true festgelegt ist, im universellen APK enthalten. Dabei handelt es sich um ein monolithisches APK, das Code und Ressourcen für alle von deiner App unterstützten Gerätekonfigurationen enthält.

<dist:delivery> Kapselt Optionen zum Anpassen der Modulbereitstellung, wie unten dargestellt. Beachten Sie, dass in jedem Featuremodul nur ein Typ dieser benutzerdefinierten Übermittlungsoptionen konfiguriert werden darf.
<dist:install-time> Gibt an, dass das Modul bei der Installation verfügbar sein soll. Dies ist das Standardverhalten für Featuremodule, für die keine andere Art von benutzerdefinierten Übermittlungsoption angegeben ist.

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

Dieser Knoten kann auch Bedingungen angeben, die das Modul auf Geräte beschränken, die bestimmte Anforderungen erfüllen, z. B. Gerätefunktionen, das Land des Nutzers oder das Mindest-API-Level. Weitere Informationen finden Sie unter Bedingte Zustellung konfigurieren.

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

Wenn die Richtlinie nicht konfiguriert oder auf false gesetzt ist, führt „bundletool“ beim Generieren von unterteilten APKs aus dem Bundle Module zur Installationszeit mit dem Basismodul zusammen. Da durch die Zusammenführung weniger unterteilte APKs angezeigt werden, kann diese Einstellung die Leistung Ihrer App verbessern.

Wenn removable auf true gesetzt ist, werden Module zur Installationszeit nicht in das Basismodul zusammengeführt. Legen Sie true fest, wenn Sie Module in Zukunft deinstallieren möchten. Wenn Sie jedoch zu viele Module konfigurieren, die entfernt werden können, kann die Installationszeit Ihrer Anwendung länger werden.

Die Standardeinstellung ist false. Du musst diesen Wert nur im Manifest festlegen, wenn du die Zusammenführung für ein Feature-Modul deaktivieren möchtest.

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 Ihre App fordert möglicherweise später den Download an.

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

</dist:delivery>
<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 (ansonsten können Laufzeitfehler auftreten):
  1. Setze android:hasCode im Manifest des Funktionsmoduls auf "false".
  2. Fügen Sie dem Manifest des 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 oder die Verwendung der Play Feature Delivery Library stimmen Sie den Nutzungsbedingungen des Play Core Software Development Kit zu. Bitte lies dir die geltenden Nutzungsbedingungen und Richtlinien durch, bevor du auf die Bibliothek zugreifen kannst.

Datensicherheit

Die Play Core-Bibliotheken bilden die Benutzeroberfläche für die Laufzeit Ihrer App im Google Play Store. Wenn Sie Play Core in Ihrer App verwenden, führt der Play Store seine eigenen Prozesse aus, einschließlich der Verarbeitung von Daten gemäß den Google Play-Nutzungsbedingungen. Im Folgenden wird beschrieben, wie die Play Core-Bibliotheken Daten verarbeiten, um bestimmte Anfragen von deiner App zu verarbeiten.

API für weitere Sprachen

Zur 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 Die Daten werden verschlüsselt.
Teilen von Daten Die Daten werden nicht an Dritte übertragen.
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 erhobenen Daten werden verwendet, um das richtige Modul auf dem Gerät bereitzustellen und die installierten Module nach einer Aktualisierung sowie Sicherung und Wiederherstellung beizubehalten.
Datenverschlüsselung Die Daten werden verschlüsselt.
Teilen von Daten Die Daten werden nicht an Dritte übertragen.
Datenlöschung Die Daten werden nach einer festen Aufbewahrungsdauer gelöscht.

Wir möchten so transparent wie möglich sein. Sie entscheiden aber selbst, wie Sie im Formular des Abschnitts zur Datensicherheit von Google Play hinsichtlich der Erhebung, Weitergabe und Sicherheit von Nutzerdaten in Ihrer App vorgehen müssen.