Beim App-Auslieferungsmodell von Google Play werden mit 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
undversionName
: Beim Erstellen Ihres App-Bundles verwendet Gradle Informationen zur App-Version, die vom Basismodul bereitgestellt werden. Sie sollten diese Properties aus derbuild.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 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:
- Wählen Sie in der Menüleiste Ausführen > Konfigurationen bearbeiten aus.
- Wählen Sie im linken Bereich des Dialogfelds Run/Debug Configurations die gewünschte Android-App-Konfiguration aus.
- 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.
- 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 der APK-Größe, sondern nach der Bereitstellungsgeschwindigkeit optimiert sind. Wenn Sie Android Studio so konfigurieren möchten, dass stattdessen 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:
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
auftrue
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 im Verzeichnis |
android:isFeatureSplit="true | false"> |
Wenn Ihr App-Bundle in Android Studio erstellt wird, wird dieses Attribut automatisch für Sie eingefügt. Sie sollten dieses Attribut daher 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 |
<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, erledigt die IDE dies für Sie, wenn Sie ein sofort aktiviertes Funktionsmodul erstellen. Sie können dieses XML-Element nicht auf |
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 |
<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
|
<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 Wenn Die Standardeinstellung ist 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 Funktionsmodul 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:
|
... </manifest> |
Weitere Informationen
Weitere Informationen zur Verwendung von Funktionsmodulen finden Sie in den folgenden Ressourcen.
Blogposts
- Neue Funktionen für die Entwicklung und Veröffentlichung von Apps sowie für den Ausbau Ihres Geschäfts bei Google Play
- Die neuesten Android App Bundle-Updates, einschließlich der Additional Languages API
- Patchwork Plaid – die Geschichte einer Modularisierung
Videos
- Anpassbare Bereitstellung mit App-Bundle und einfache Freigabe von Test-Builds
- Neue Tools zur Optimierung der Größe Ihrer App und zur Steigerung der Installationen bei Google Play
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.