Instant-fähiges App Bundle erstellen

Warnung:Google Play Instant ist nicht mehr verfügbar. Ab Dezember 2025 können Instant Apps nicht mehr über Google Play veröffentlicht werden und alle Google Play-Dienste-Instant-APIs funktionieren nicht mehr. Nutzer erhalten keine Instant Apps mehr von Play.

Wir nehmen diese Änderung aufgrund von Entwicklerfeedback und unserer kontinuierlichen Investitionen zur Verbesserung des Ökosystems seit der Einführung von Google Play Instant vor.

Damit Sie Ihre App weiter optimieren und noch mehr Nutzer gewinnen können, empfehlen wir, Nutzer über Deeplinks zu Ihrer regulären App oder Ihrem regulären Spiel weiterzuleiten und so ihr Interesse für bestimmte Inhalte zu wecken.

Sie erstellen eine Google Play Instant-Version, indem Sie sie als Teil eines Android App Bundle einfügen. Ein solches Bundle wird als App Bundle mit aktivierter Instant-Version bezeichnet. In diesem Dokument erfahren Sie, wie Sie Ihre Entwicklungsumgebung für App-Bundles mit Sofort-Apps einrichten und wie Sie ein App-Bundle mit Sofort-Apps konfigurieren, erstellen, testen und veröffentlichen.

Wenn Sie ein vorhandenes Instant-App-Projekt haben, in dem das eingestellte Feature-Plugin (com.android.feature) verwendet wird, erfahren Sie hier, wie Sie Ihre Instant-App migrieren, um Android App Bundles zu unterstützen.

Entwicklungsumgebung einrichten

Wenn Sie eine Instant-Version in einem App Bundle bereitstellen möchten, benötigen Sie Zugriff auf das Google Play Instant Development SDK. Sie können das SDK mit einer der folgenden Methoden installieren:

  • Installieren Sie Android Studio 3.6 oder höher. Laden Sie nach dem Öffnen von Android Studio das Google Play Instant Development SDK über den Tab SDK Tools im SDK-Manager herunter.
  • Über die Befehlszeile installieren:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

Wenn Sie Ihre Instant-Erfahrung lokal testen möchten, benötigen Sie außerdem Zugriff auf ein physisches oder virtuelles Gerät.

Informationen zu den erforderlichen Ausführungsbedingungen

Bei Google Play Instant werden Instant-fähige App-Pakete in einer speziellen Art von SELinux-Sandbox ausgeführt, um die Sicherheit zu erhöhen. In dieser Sandbox ist nur eine Teilmenge von Berechtigungen zulässig und die Interaktion mit anderen Apps ist eingeschränkt. In den folgenden Abschnitten werden die Merkmale dieser Sandbox genauer erläutert.

Unterstützte Berechtigungen und Vorgänge

In App-Bundles mit Instant-Version dürfen nur Berechtigungen aus der folgenden Liste verwendet werden:

Häufige nicht unterstützte Berechtigungen

Im Folgenden finden Sie eine Liste häufiger, nicht unterstützter Berechtigungen, die Sie aus Ihrer Anwendung entfernen müssen, sowie den empfohlenen Migrationspfad für jede Berechtigung:

  • ACCESS_WIFI_STATE: Verwenden Sie ACCESS_NETWORK_STATE, die ähnliche Informationen wie ACCESS_WIFI_STATE enthalten sollte.
  • BILLING: Diese Berechtigung ist veraltet. Verwenden Sie die Google Play Billing Library, für die die Berechtigung com.android.vending.BILLING nicht mehr erforderlich ist.
  • READ/WRITE_EXTERNAL_STORAGE: Instant Apps haben keinen Zugriff auf externen Speicher. Verwenden Sie stattdessen internen Speicher.
  • com.google.android.c2dm.permission.RECEIVE und permission.C2D_MESSAGE: C2DM wird nicht mehr unterstützt. Migration zu Firebase Cloud Messaging (FCM) Für FCM sind keine zusätzlichen Berechtigungen erforderlich.

Außerdem können Instant-fähige App-Bundles Folgendes nicht:

Zugriff auf installierte Apps

Beachten Sie bei der Entwicklung einer Instant-Version, dass sie nur dann mit installierten Apps auf einem Gerät interagieren kann, wenn eine der folgenden Bedingungen erfüllt ist:

  • Für eine oder mehrere Aktivitäten in einer installierten App wurde das android:visibleToInstantApps-Element auf true festgelegt. Dieses Element ist für Apps mit Android 8.0 (API-Level 26) oder höher verfügbar.
  • Eine installierte App enthält einen Intent-Filter, der CATEGORY_BROWSABLE enthält.
  • Bei der Sofortaktion wird ein Intent über die Aktion ACTION_SEND, ACTION_SENDTO oder ACTION_SEND_MULTIPLE gesendet.

Projekt für Instant-Versionen konfigurieren

Damit Ihr App Bundle für Instant Apps mit Google Play Instant kompatibel ist, müssen Sie mehrere Aspekte sorgfältig konfigurieren. In den folgenden Abschnitten werden diese Überlegungen beschrieben.

Projektabhängigkeiten deklarieren

Wenn Sie die Google Play Instant-APIs in Ihrer App verwenden möchten, fügen Sie die folgende Deklaration in die Konfigurationsdatei build.gradle Ihres App-Moduls ein:

Groovy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

Richtige Versionscodes definieren

Der Versionscode der Instant-Funktion Ihrer App muss niedriger sein als der Versionscode der installierbaren App. Nutzer sollen von der Google Play Instant-Funktion zur heruntergeladenen und auf ihrem Gerät installierten App wechseln. Das Android-Framework betrachtet diesen Übergang als App-Update.

Damit Sie das von den Nutzern erwartete Versionsverwaltungsschema einhalten, können Sie eine der folgenden Strategien anwenden:

  • Setzen Sie die Versionscodes für die Google Play Instant-Version auf 1 zurück.
  • Erhöhen Sie den Versionscode des installierbaren APKs um eine große Zahl, z. B. 1.000, damit genügend Spielraum für die Erhöhung der Versionsnummer Ihrer Instant-Funktion vorhanden ist.

Sie können Ihre Instant-App und Ihre installierbare App in zwei separaten Android Studio-Projekten entwickeln. Wenn Sie dies tun, müssen Sie jedoch Folgendes tun, um Ihre App bei Google Play zu veröffentlichen:

  1. Verwenden Sie in beiden Android Studio-Projekten denselben Paketnamen.
  2. Laden Sie in der Google Play Console beide Varianten in dieselbe Anwendung hoch.

Weitere Informationen zum Festlegen der Version Ihrer App finden Sie unter App versionieren.

Ziel-Sandbox-Version aktualisieren

Die Datei AndroidManifest.xml Ihrer Instant-App muss aktualisiert werden, damit sie auf die Sandbox-Umgebung ausgerichtet ist, die von Google Play Instant unterstützt wird. Sie können dieses Update abschließen, indem Sie das Attribut android:targetSandboxVersion dem Element <manifest> Ihrer App hinzufügen, 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 Attribut targetSandboxVersion.

Instant-fähige App-Module deklarieren

Sie können deklarieren, dass Ihr App-Bundle Instant Apps unterstützt, indem Sie eine der folgenden Methoden verwenden:

  • Wenn Sie ein vorhandenes App-Bundle mit nur einem Basismodul haben, können Sie das App-Bundle so für Instant Apps aktivieren:

    1. Öffnen Sie den Bereich Project (Projekt), indem Sie in der Menüleiste View > Tool Windows > Project (Ansicht > Tool-Fenster > Projekt) auswählen.
    2. Klicken Sie mit der rechten Maustaste auf Ihr Basismodul, das in der Regel „app“ heißt, und wählen Sie Refactor > Enable Instant Apps Support (Umgestalten > Unterstützung für Instant Apps aktivieren) aus.
    3. Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Drop-down-Menü aus.
    4. 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 Sie ein vorhandenes App Bundle mit mehreren Modulen haben, können Sie ein Instant-fähiges Funktionsmodul erstellen. Bei diesem Vorgang wird auch das Basismodul Ihrer App sofort aktiviert, sodass Sie mehrere Einstiegspunkte in Ihrer App unterstützen können.

Unterstützung für die Anmeldung hinzufügen

Wenn Nutzer sich in Ihrer Instant-Version anmelden können, muss Ihr App-Bundle mit Instant-Version Smart Lock für Passwörter unter Android unterstützen. Wenn Sie ein Instant Play-Spiel entwickeln, sollten Sie stattdessen die Anmeldung über die Google Play-Spieldienste verwenden.

Ausführungsumgebung unterstützen

Damit Ihr App Bundle mit aktivierter Instant-Version mit der SELinux-Sandbox kompatibel ist, in der Instant-Versionen ausgeführt werden, beachten Sie Folgendes:

  • Geben Sie den Wert von myUid() nicht weiter. Das ist die vom Kernel zugewiesene UID Ihres App-Prozesses.
  • Wenn Ihre App auf Android 8.1 (API‑Level 27) oder niedriger ausgerichtet ist, erstellen Sie eine Network Security Config-Datei und legen Sie cleartextTrafficPermitted auf false fest. HTTP-Traffic wird bei Instant-Apps nicht unterstützt. Bei Apps, die auf Android 9 oder höher ausgerichtet sind, ist der Cleartext-Traffic standardmäßig deaktiviert.
  • Ihre Instant-Funktion bleibt auf dem Gerät eines Nutzers heruntergeladen, bis der Cache der Instant-Funktion geleert wird. Das geschieht in einer der folgenden Situationen:

    • Der Cache der Instant-Version wird geleert, weil auf dem Gerät nur noch wenig Speicherplatz verfügbar ist.
    • Der Nutzer startet sein Gerät neu.

    Wenn einer dieser Vorgänge eintritt, muss der Nutzer Ihre Instant Experience noch einmal herunterladen, um damit interagieren zu können.

  • Wenn das System nur noch sehr wenig Speicherplatz hat, werden die Nutzerdaten Ihrer Instant-App möglicherweise aus dem internen Speicher entfernt. Daher empfiehlt es sich, Nutzerdaten regelmäßig mit dem Server Ihrer App zu synchronisieren, damit der Fortschritt des Nutzers erhalten bleibt.

Logik für Sofort-Erlebnis-Workflows hinzufügen

Nachdem Sie Ihr App-Bundle so konfiguriert haben, dass es Instant-Funktionen unterstützt, fügen Sie die Logik hinzu, die in den folgenden Abschnitten beschrieben wird.

Prüfen, ob die App eine Instant-Experience ausführt

Wenn ein Teil der Logik Ihrer App davon abhängt, ob der Nutzer mit Ihrer Instant Experience interagiert, rufen Sie die Methode isInstantApp() auf. Diese Methode gibt true zurück, wenn der aktuell ausgeführte Prozess eine Instant Experience ist.

Installationsaufforderung anzeigen

Wenn Sie eine Testversion Ihrer App oder Ihres Spiels entwickeln, können Sie mit Google Play Instant in Ihrer Instant-Funktion eine Aufforderung einblenden, in der Nutzer aufgefordert werden, die Vollversion auf ihrem Gerät zu installieren. Verwenden Sie die Methode InstantApps.showInstallPrompt(), um diesen Prompt anzuzeigen, 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 an eine installierte App übertragen

Wenn der Nutzer Ihre Instant-App mag, entscheidet er sich möglicherweise, Ihre App zu installieren. Damit die Nutzerfreundlichkeit nicht beeinträchtigt wird, ist es wichtig, dass die Daten des Nutzers von Ihrer Instant-App in die Vollversion Ihrer App übertragen werden.

Wenn der Nutzer ein Gerät mit Android 8.0 (API-Level 26) oder höher verwendet und Ihre App einen targetSandboxVersion von 2 angibt, werden die Daten des Nutzers automatisch in die Vollversion Ihrer App übertragen. Andernfalls müssen Sie die Daten manuell übertragen. Verwenden Sie dazu eine der folgenden APIs:

  • Nutzer, die Geräte mit Android 8.0 (API-Level 26) und höher verwenden, sollten die Cookie API nutzen. Beispiel-App
  • Wenn Nutzer auf Geräten mit Android 7.1 (API-Ebene 25) und niedriger mit Ihrer App interagieren können, fügen Sie Unterstützung für die Storage API hinzu – Beispiel-App

App-Bundle erstellen

Sie können Ihr App Bundle für Sofort-Apps entweder mit Android Studio oder über die Befehlszeile erstellen.

Android Studio

In Android Studio können Sie Ihr App-Bundle erstellen, indem Sie Build > Build Bundle(s) / APK(s) > Build Bundle(s) auswählen. Weitere Informationen zum Erstellen Ihres Projekts finden Sie unter Projekt erstellen.

Befehlszeile

Sie können das App-Bundle auch über die Befehlszeile mit Gradle erstellen.

64-Bit-Architekturen unterstützen

Bei Google Play veröffentlichte Apps müssen 64‑Bit-Architekturen unterstützen. Wenn Sie eine 64‑Bit-Version Ihrer App hinzufügen, können Sie die Leistung verbessern und sich auf Geräte mit reiner 64‑Bit-Hardware vorbereiten. 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-App an einem der folgenden Orte testen, um die Funktionalität zu überprüfen:

Android Studio

So testen Sie die Instant-Funktion Ihrer App auf einem lokalen Computer mit Android Studio:

  1. Wenn auf Ihrem Testgerät eine Version Ihrer App installiert ist, deinstallieren Sie sie.
  2. Aktivieren Sie in Android Studio in den Installationsoptionen, die auf dem Tab General des Dialogfelds „Run/Debug Configurations“ angezeigt werden, das Kästchen Deploy as instant app.
  3. Wählen Sie in der Menüleiste Ausführen > Ausführen aus oder klicken Sie in der Symbolleiste auf Ausführen und wählen Sie dann das Gerät aus, auf dem Sie die Instant-Experiences Ihrer App testen möchten. Die Instant-Version Ihrer App wird auf dem ausgewählten Testgerät geladen.

Befehlszeile

So testen Sie die Sofort-App Ihrer App auf einem lokalen Computer über die Befehlszeile:

  1. Wenn auf Ihrem Testgerät eine Version Ihrer App installiert ist, deinstallieren Sie sie.
  2. Führen Sie einen Sideload Ihrer Instant-App auf Ihrem Testgerät durch und starten Sie sie, indem Sie den folgenden Befehl eingeben:
ia run output-from-build-command

Interner-Test-Track

Wenn Sie die Instant-App Ihrer App über den Play Store oder ein Banner auf Ihrer Website testen möchten, veröffentlichen Sie die App in der Play Console im internen Test-Track.

So veröffentlichen Sie Ihre App im internen Test-Track:

  1. Laden Sie Ihr App Bundle hoch. Folgen Sie dazu der Anleitung unter App Bundle in die Play Console hochladen.
  2. Bereiten Sie das hochgeladene Bundle für einen Release im internen Test-Track vor. Weitere Informationen finden Sie im Hilfeartikel Releases vorbereiten und freigeben.
  3. Melden Sie sich auf einem Gerät in einem Konto für interne Tester an und starten Sie die Instant-Funktion dann über eine der folgenden Oberflächen:

    • Die Schaltfläche Jetzt testen im Play Store-Eintrag Ihrer App.
    • Ein Link aus einem Banner auf der Website Ihrer App.

App-Bundle im Produktions-Track veröffentlichen

Führen Sie die folgenden Schritte aus, um Ihr App-Bundle mit Sofort-Apps zu veröffentlichen:

  1. Signieren Sie Ihr App Bundle mit einem Releaseschlüssel, sofern noch nicht geschehen, und laden Sie das App Bundle in die Play Console hoch.
  2. Öffnen Sie in der Play Console Release-Verwaltung > Android-Sofort-Apps und rufen Sie den Produktions-Track für Sofort-Apps auf.
  3. Wählen Sie Aus der Bibliothek aktualisieren und dann das hochgeladene instant-fähige App-Bundle aus.

Auswählen, wo Ihre App als Instant-Version veröffentlicht werden soll

Sie können eine Instant-Version Ihrer App in einer Teilmenge der Länder und Regionen starten, in denen Nutzer Ihre App installieren können. Das ist nützlich, wenn Sie die Instant-Version Ihrer App bei Nutzern in bestimmten Ländern und Regionen bewerben möchten.

Zusätzliche Ressourcen

Weitere Informationen zum Erstellen von Instant-Funktionen und Android App Bundles finden Sie in den folgenden Ressourcen:

Video: Sofort verfügbare App Bundles
In dieser Session vom Android Dev Summit 2018 erfährst du, wie du einem Android App Bundle eine Instant-Funktion hinzufügst.
Video: Mit dem Android App Bundle kleinere Apps veröffentlichen
Informationen dazu, wie Sie mit App Bundles Ihre App schneller entwickeln und kleinere APKs für Ihre Nutzer erstellen können
Codelab: Dein erstes Android App Bundle
Schritt-für-Schritt-Anleitung zum Erstellen eines Android App Bundle und zum Hinzufügen von Funktionen.
Das Android App Bundle-Format
Weitere Informationen dazu, wie das Befehlszeilenprogramm bundletool ein App-Bundle aus dem Code und den Ressourcen Ihrer App erstellt.