Instant-fähiges App Bundle erstellen

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:

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 Sie ACCESS_NETWORK_STATE. Dies sollte Folgendes bieten: ähnliche Informationen wie ACCESS_WIFI_STATE.
  • BILLING: Dies ist eine verworfene Berechtigung. Verwenden Sie die Methode 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 externe Elemente Speicher; verwenden Sie stattdessen internen Speicher.
  • com.google.android.c2dm.permission.RECEIVE und permission.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:

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ür trueDieses 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 oder ACTION_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:

  1. Verwenden Sie in beiden Android Studio-Projekten denselben Paketnamen.
  2. 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:

    1. Öffnen Sie den Bereich Projekt, indem Sie View > Tool-Fenster > Projekt aus.
    2. 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
    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 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 bis false. 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:

Android Studio

So testen Sie die Instant-Funktion Ihrer App auf einem lokalen Computer mit Android Studio: führen Sie die folgenden Schritte aus:

  1. Wenn auf deinem Testgerät eine Version deiner App installiert ist, deinstalliere sie .
  2. 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.
  3. 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:

  1. Wenn auf deinem Testgerät eine Version deiner App installiert ist, deinstalliere sie .
  2. Ü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:

  1. Laden Sie Ihr App Bundle hoch, indem Sie die Schritte unter App Bundle hochladen in der Play Console-Anleitung.
  2. 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.
  3. 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:

  1. Falls noch nicht geschehen, signieren Sie Ihr App Bundle mit einem Release Schlüssel und laden Sie das App Bundle Play Console
  2. Öffnen Sie in der Play Console Release-Verwaltung > Android Instant Apps und dann Rufen Sie den Track Instant App-Produktion auf.
  3. 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.