Sie erstellen eine Google Play Instant-Funktion, indem Sie sie in den ein Android App Bundle Ein solches Bundle wird als Instant-fähiges App Bundle zur Verfügung. In diesem Dokument erfahren Sie, wie Sie Entwicklungsumgebung für Instant-fähige App-Bundles und wie Sie ein App Bundle mit Instant-Version konfigurieren, erstellen, testen und veröffentlichen.
Wenn Sie bereits ein Instant App-Projekt haben, in dem die eingestellte Funktion verwendet wird
Plug-in (com.android.feature
) erhalten Sie hier Informationen zum
migriere deine Instant App, damit sie Android App Bundles unterstützt.
Entwicklungsumgebung einrichten
Um eine Instant-Funktion in einem App Bundle bereitzustellen, benötigst du Zugriff auf die Google Play Instant Development SDK Sie können das SDK mit einer der folgenden Methoden verwenden:
- Installieren Sie Android Studio 3.6 oder höher. Nach dem Öffnen von Android Studio Laden Sie das Google Play Instant Development SDK aus den SDK-Tools herunter. im SDK-Manager.
Installation über die Befehlszeile:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Wenn Sie Ihre Instant-Funktion lokal testen möchten, erhalten Sie Zugriff auf entweder ein physisches oder ein virtuelles Gerät.
Informationen zu den erforderlichen Ausführungsbedingungen
Google Play Instant führt App Bundles mit Instant-Version in einer speziellen SELinux-Sandbox für zusätzliche Sicherheit Diese Sandbox ermöglicht eine Teilmenge von Berechtigungen sowie eingeschränkte Arten der Interaktionen mit anderen Apps. Die In den folgenden Abschnitten werden die Eigenschaften dieser Sandbox ausführlicher erläutert.
Unterstützte Berechtigungen und Vorgänge
Für App-Bundles mit Instant-Version können nur Berechtigungen aus der folgenden Liste verwendet werden:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Ab Google Play nicht mehr verfügbar Billing Library 1.0CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– Nur ab Android 8.0 (API-Level 26).INTERNET
READ_PHONE_NUMBERS
– Nur in Android 8.0 (API-Level 26) und höher.RECORD_AUDIO
VIBRATE
WAKE_LOCK
Umgang mit allgemeinen nicht unterstützten Berechtigungen
Im Folgenden finden Sie eine Liste allgemeiner, nicht unterstützter Berechtigungen, die Sie entfernen müssen aus Ihrer Anwendung und dem jeweils empfohlenen Migrationspfad:
ACCESS_WIFI_STATE
: Verwenden SieACCESS_NETWORK_STATE
. Dies sollte Folgendes bieten: ähnliche Informationen wieACCESS_WIFI_STATE
.BILLING
: Dies ist eine verworfene Berechtigung. Verwenden Sie die Methode Google Play Billing Library, für die die Berechtigungcom.android.vending.BILLING
nicht mehr erforderlich ist.READ/WRITE_EXTERNAL_STORAGE
: Instant-Apps haben keinen Zugriff auf externe Elemente Speicher; verwenden Sie stattdessen internen Speicher.com.google.android.c2dm.permission.RECEIVE
undpermission.C2D_MESSAGE
: C2DM wurde eingestellt. Migrieren Sie zu Firebase Cloud Messaging (FCM). FCM tut brauchen Sie keine weiteren Berechtigungen.
Darüber hinaus ist in App Bundles mit aktivierter Instant-Version Folgendes nicht möglich:
- Hintergrunddienste verwenden
- Benachrichtigungen senden, wenn in im Hintergrund.
Zugriff auf installierte Apps
Denken Sie bei der Entwicklung einer Instant-Version daran, dass sie nicht mit auf einem Gerät installierte Apps, sofern eine der folgenden Bedingungen nicht zutrifft:
- Für mindestens eine Aktivität in einer installierten App wurde die
android:visibleToInstantApps
-Element fürtrue
– Dieses Element ist verfügbar für Apps mit Android 8.0 (API-Level 26) oder höher. - Eine installierte App enthält einen Intent-Filter, der Folgendes enthält:
CATEGORY_BROWSABLE
- Die Instant-Funktion sendet einen Intent mithilfe des
ACTION_SEND
,ACTION_SENDTO
oderACTION_SEND_MULTIPLE
Aktion ausführen.
Projekt für Instant-Funktionen konfigurieren
Für die Kompatibilität mit Google Play Instant müssen Sie mehrere Ihres Instant-fähigen App Bundles. Die folgenden Abschnitte werden diese Überlegungen beschrieben.
Projektabhängigkeiten deklarieren
Um die Google Play Instant APIs in deiner App zu verwenden, musst du Folgendes angeben:
in der Konfigurationsdatei build.gradle
deines App-Moduls an:
Cool
implementation "com.google.android.gms:play-services-instantapps:17.0.0"
Kotlin
implementation("com.google.android.gms:play-services-instantapps:17.0.0")
Die richtigen Versionscodes definieren
Der Versionscode der Instant-Funktion deiner App muss kleiner sein als der Versionscode der installierbaren App Die Erwartung ist, dass die Nutzenden über Google Play Instant bis zum Herunterladen und Installieren der App auf auf ihrem Gerät. Das Android-Framework betrachtet diese Umstellung als App aktualisieren.
Um sicherzustellen, dass Sie dem von den Nutzern erwarteten Versionierungsschema folgen, dieser Strategien:
- Starte die Versionscodes für Google Play Instant unter 1 neu.
- Erhöhen Sie den Versionscode des installierbaren APK um einen größeren Wert, zum Beispiel: 1.000, damit genügend Speicherplatz für die Version der Instant-Funktion vorhanden ist um die Zahl zu erhöhen.
Sie können Ihre Instant-App und Ihre installierbare App in zwei separaten Android Studio-Projekte In diesem Fall müssen Sie jedoch wie folgt vorgehen, um Veröffentlichen Sie Ihre App bei Google Play:
- Verwenden Sie in beiden Android Studio-Projekten denselben Paketnamen.
- Laden Sie in der Google Play Console beide Varianten in dieselbe App hoch.
Weitere Informationen zum Festlegen der App-Version finden Sie unter Version Ihrer App-Version App.
Sandbox-Zielversion aktualisieren
Die Datei AndroidManifest.xml
deiner Instant App muss für das Targeting auf
Sandbox-Umgebung, die Google Play Instant unterstützt. Sie können
dieses Update, indem du das Attribut android:targetSandboxVersion
zum
<manifest>
, wie im folgenden Code-Snippet gezeigt:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
Weitere Informationen finden Sie in der Dokumentation zum
targetSandboxVersion
.
App-Module mit Instant-Version deklarieren
Du kannst mit einer der folgenden Methoden erklären, dass dein App Bundle Instant-Funktionen unterstützt die folgenden Methoden verwenden:
Wenn Sie bereits ein App Bundle haben, das nur eine base Modul haben, können Sie die Instant-Version App Bundle so:
- Öffnen Sie den Bereich Projekt, indem Sie View > Tool-Fenster > Projekt aus.
- Klicken Sie mit der rechten Maustaste auf Ihr Basismodul, normalerweise mit dem Namen „app“, und wählen Sie Refaktorieren > Unterstützung für Instant Apps aktivieren
- Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Drop-down-Menü aus.
- Klicken Sie auf OK.
Android Studio fügt dem Manifest des Moduls die folgende Deklaration hinzu:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Wenn du bereits ein App-Bundle hast, das mehrere Module enthält, kannst du Funktion mit Instant-Version erstellen Modul Dieser Prozess aktiviert auch das Basismodul Ihrer App sofort, sodass Sie die Möglichkeit haben, Unterstützung von mehrere sofortige Eingabe Punkte in der
Unterstützung für die Anmeldung hinzufügen
Wenn Nutzer sich in Ihrer Instant-Version anmelden können, wird Ihre Instant-App Set muss Smart Lock für Passwörter unterstützen auf Android-Geräte Wenn Sie ein „Sofort spielen“ Spiel, sollten Sie sich stattdessen über die Google Play-Spieldienste anmelden.
Ausführungsumgebung unterstützen
Um mit der SELinux-Sandbox kompatibel zu sein, in der Instant-Erlebnisse ausgeführt werden, Beachten Sie beim Erstellen Ihres Instant-fähigen App-Bundles Folgendes:
- Teilen Sie nicht den Wert von
myUid()
, Das ist der dem Kernel zugewiesen UID: - Wenn deine App auf Android 8.1 (API-Level 27) oder niedriger ausgerichtet ist, erstelle ein
Network Security Config-Datei hinzu und legen Sie
cleartextTrafficPermitted
bisfalse
. Instant-Versionen unterstützen kein HTTP Zugriffe. Für Apps, die auf Android 9 oder höher ausgerichtet sind, wird ist standardmäßig deaktiviert. Die Instant-Version bleibt auf das Gerät eines Nutzers heruntergeladen, bis der Instant Experience-Cache wird geleert. Dies geschieht in einem der folgenden Ereignisse: Situationen:
- Der Cache der Instant-Version wird automatisch bereinigt, weil das Gerät nicht genügend Arbeitsspeicher zur Verfügung.
- Der Nutzer startet sein Gerät neu.
In beiden Fällen muss der Nutzer die Instant-Version noch einmal herunterladen um damit zu interagieren.
Wenn nur noch wenig Speicherplatz verfügbar ist, kann es sein, dass Ihr Die Nutzerdaten der Instant-Funktion werden aus dem internen Speicher entfernt. Daher ist es wird empfohlen, Nutzerdaten regelmäßig mit dem Server Ihrer App zu synchronisieren, damit der der Fortschritt des Nutzers bleibt erhalten.
Logik für Instant-Workflows hinzufügen
Nachdem Sie Ihr App Bundle so konfiguriert haben, dass es Instant-Funktionen unterstützt, fügen Sie die in den folgenden Abschnitten gezeigt wird.
Prüfen, ob die Instant-Version der App ausgeführt wird
Wenn ein Teil der Logik Ihrer App davon abhängt, ob der Nutzer
Instant-Version verwenden, nennen Sie die
isInstantApp()
. Diese Methode gibt true
zurück, wenn der derzeit ausgeführte Prozess ein
Instant-Funktion.
Aufforderung zur Installation anzeigen
Wenn Sie eine Testversion Ihrer App oder Ihres Spiels erstellen, können Sie mit Google Play Instant
eine Aufforderung in Ihrem
Instant-Version verwenden, mit der Nutzende die vollständige Erfahrung auf ihrem
. Verwenden Sie zum Anzeigen dieser Aufforderung die
InstantApps.showInstallPrompt()
an, wie im folgenden Code-Snippet gezeigt:
Kotlin
class MyInstantExperienceActivity : AppCompatActivity { // ... private fun showInstallPrompt() { val postInstall = Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_DEFAULT) .setPackage(your-installed-experience-package-name) // The request code is passed to startActivityForResult(). InstantApps.showInstallPrompt(this@MyInstantExperienceActivity, postInstall, request-code, /* referrer= */ null) } }
Java
public class MyInstantExperienceActivity extends AppCompatActivity { // ... private void showInstallPrompt() { Intent postInstall = new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_DEFAULT) .setPackage(your-installed-experience-package-name); // The request code is passed to startActivityForResult(). InstantApps.showInstallPrompt(MyInstantExperienceActivity.this, postInstall, request-code, /* referrer= */ null); } }
Daten in eine installierte Websitevariante übertragen
Wenn dem Nutzer die Instant-Funktion gefällt, könnte er deine App installieren. Für eine gute User Experience ist es wichtig, dass die Daten des Nutzers von der Instant-Version Version Ihrer App.
Wenn der Nutzer ein Gerät mit Android 8.0 (API-Level 26) oder höher verwendet:
und wenn Ihre App ein targetSandboxVersion
angibt,
von 2
, werden die Daten des Nutzers übertragen.
automatisch auf die Vollversion deiner App um. Andernfalls müssen Sie den
manuell erstellen. Verwenden Sie dazu eine der folgenden APIs:
- Für Nutzer mit Geräten mit Android 8.0 (API-Level 26) und höher: Cookie API verwenden – Beispiel-App
- Ob Nutzer auf Geräten mit Android 7.1 mit Ihrer Erfahrung interagieren können (API-Level 25) und niedriger, fügen Sie Unterstützung für die Storage API hinzu: Beispiel-App
App Bundle erstellen
Sie können entweder Android Studio oder die Befehlszeile verwenden, um Ihren Instant-fähiges App Bundle.
Android Studio
In Android Studio können Sie ein App Bundle erstellen, indem Sie Erstellen > Build-Bundle(s) / APK(s) > Build-Bundle(s). Weitere Informationen Informationen zum Erstellen eines Projekts finden Sie unter Projekt erstellen.
Befehlszeile
Sie können das App Bundle auch über den Befehl Line mit Gradle.
64-Bit-Architekturen unterstützen
Apps, die bei Google Play veröffentlicht werden, müssen 64-Bit-Architekturen unterstützen. Hinzufügen eines Die 64-Bit-Version deiner App bietet Leistungsverbesserungen und ermöglicht dir für Geräte mit reiner 64-Bit-Hardware. Weitere Informationen zur 64-Bit-Unterstützung
Instant-Version testen
Bevor Sie Ihr Instant-fähiges App-Bundle veröffentlichen, können Sie die Instant-Version testen von einem der folgenden Standorte aus, um die Funktionalität zu überprüfen:
- Installieren Sie die App mithilfe von Android Studio auf einem lokalen Gerät.
- Installation auf einem lokalen Gerät über die Befehlszeile .
- Im internen Test-Track veröffentlichen auf der Google Play Console
Android Studio
So testen Sie die Instant-Funktion Ihrer App auf einem lokalen Computer mit Android Studio: führen Sie die folgenden Schritte aus:
- Wenn auf deinem Testgerät eine Version deiner App installiert ist, deinstalliere sie .
- In Android Studio können Sie aus den Installationsoptionen auf der Tab General (Allgemein) unter Run/Debug Configurations (Ausführungs-/Fehlerbehebungskonfigurationen) Dialogfeld, aktiviere die Option Als Instant- App.
- Wählen Sie Ausführen > Ausführen oder klicken Sie im Menü auf Ausführen und wählen Sie das Gerät aus, auf dem Sie die Instant- User Experiences. Die Instant-Funktion Ihrer App wird auf dem Testgerät geladen, das Sie installiert haben. ausgewählt.
Befehlszeile
So testen Sie die Instant-Funktion Ihrer App auf einem lokalen Computer über die Befehlszeile: führen Sie die folgenden Schritte aus:
- Wenn auf deinem Testgerät eine Version deiner App installiert ist, deinstalliere sie .
- Übertrage deine Instant App auf dein Testgerät und führe sie aus, indem du die folgenden Befehl:
ia run output-from-build-command
Interner Test-Track
Um die Instant-Funktion Ihrer App im Play Store oder ein Banner auf Ihrem können Sie die App im Rahmen des internen Tests verfolgen in der Play Console.
So veröffentlichen Sie Ihre App im internen Test-Track:
- Laden Sie Ihr App Bundle hoch, indem Sie die Schritte unter App Bundle hochladen in der Play Console-Anleitung.
- Bereiten Sie das hochgeladene Bundle für einen Release im Interner-Test-Track vor. Für Weitere Informationen finden Sie im Hilfeartikel Vorbereitung und einführen Releases.
Melden Sie sich auf einem Gerät in einem Konto für interne Tester an und starten Sie Ihre Instant-App von einer der folgenden Oberflächen aus:
- Über die Schaltfläche Jetzt testen im Play Store-Eintrag Ihrer App
- Ein Link von einem Banner auf der Website Ihrer App.
App Bundle im Produktions-Track veröffentlichen
Führen Sie die folgenden Schritte aus, um das App Bundle mit aktivierter Instant-Version zu veröffentlichen:
- Falls noch nicht geschehen, signieren Sie Ihr App Bundle mit einem Release Schlüssel und laden Sie das App Bundle Play Console
- Öffnen Sie in der Play Console Release-Verwaltung > Android Instant Apps und dann Rufen Sie den Track Instant App-Produktion auf.
- Wählen Sie Von Bibliothek aktualisieren und dann das App Bundle mit aktivierter Instant-Version aus. die Sie hochgeladen haben.
Auswählen, wo die Instant-Version veröffentlicht werden soll
Es ist möglich, eine Instant-Version Ihrer App in einer Teilmenge der Länder und Regionen, in denen Nutzer Ihre App installieren können. Diese Funktion ist nützlich, wenn Sie die Instant-Funktion Ihrer App Nutzer in bestimmten Ländern und Regionen
Weitere Informationen
Weitere Informationen zum Erstellen von Instant-Funktionen und Android App Bundles findest du unter in den folgenden Ressourcen:
- Video: Eine App sofort bündeln
- In diesem Video erfährst du, wie du einem Android App Bundle eine Instant-Funktion hinzufügen kannst vom Android Dev Summit 2018.
- Video: Mit dem Android App Bundle kleinere Apps veröffentlichen
- Hier erfährst du, wie du mit App Bundles deine App schneller entwickeln und kleinere APKs für Ihre Nutzer bereitzustellen.
- Codelab: Dein erstes Android App Bundle
- Eine detaillierte Anleitung zum Erstellen eines Android App Bundles und zum Hinzufügen von Funktionen zu
- Das Android App Bundle-Format
- Weitere Informationen zum Organisieren einer App mit dem
bundletool
-Befehlszeilentool aus dem Code und den Ressourcen Ihrer App.