Crea un app bundle ad attivazione istantanea

Puoi creare un'esperienza Google Play Instant includendola come parte di Un Android App Bundle. Un bundle di questo tipo è noto come app bundle abilitato per le app istantanee. Questo documento illustra come configurare dell'ambiente di sviluppo per app bundle ad attivazione istantanea, nonché istruzioni configurare, creare, testare e pubblicare un app bundle ad attivazione istantanea.

Se hai già un progetto di app istantanea che utilizza la funzionalità deprecata (com.android.feature), scopri come eseguire la migrazione dell'app istantanea per supportare Android App Bundle.

Configura l'ambiente di sviluppo

Per offrire un'esperienza istantanea all'interno di un app bundle, devi accedere ai SDK di sviluppo istantaneo di Google Play. Puoi installare l'SDK utilizzando una uno dei seguenti metodi:

  • Installa Android Studio 3.6 o versioni successive. Dopo aver aperto Android Studio, Scarica l'SDK Google Play Instant Development dagli Strumenti SDK in SDK Manager.
  • Installa dalla riga di comando:

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

Inoltre, se vuoi testare la tua app istantanea localmente, ottieni l'accesso a un dispositivo fisico o virtuale.

Scopri di più sulle condizioni di esecuzione richieste

Google Play Instant esegue app bundle ad attivazione istantanea in un tipo speciale di Sandbox SELinux per una maggiore sicurezza. Questa sandbox consente a un sottoinsieme autorizzazioni, nonché tipi limitati di interazioni con altre app. La le sezioni seguenti spiegano in maggiore dettaglio le caratteristiche di questa sandbox.

Autorizzazioni e operazioni supportate

Gli app bundle ad attivazione istantanea possono utilizzare soltanto le autorizzazioni del seguente elenco:

Gestione di autorizzazioni comuni non supportate

Di seguito è riportato un elenco di autorizzazioni comuni non supportate che devi rimuovere. dalla tua applicazione e il percorso di migrazione consigliato per ciascuno di essi:

  • ACCESS_WIFI_STATE: utilizza ACCESS_NETWORK_STATE, che dovrebbe fornire informazioni simili a ACCESS_WIFI_STATE.
  • BILLING: questa autorizzazione è obsoleta. Utilizza la Libreria Fatturazione Google Play, che non richiede più l'autorizzazione com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: le app istantanee non hanno accesso a sorgenti archiviazione; la memoria interna.
  • com.google.android.c2dm.permission.RECEIVE e permission.C2D_MESSAGE: C2DM è deprecato. Esegui la migrazione a Firebase Cloud Messaging (FCM). FCM senza bisogno di autorizzazioni aggiuntive.

Inoltre, gli app bundle ad attivazione istantanea non possono:

Accesso alle app installate

Quando sviluppi un'esperienza istantanea, tieni presente che non può interagire con di app installate su un dispositivo, a meno che non si verifichi una delle seguenti condizioni:

  • In una o più attività all'interno di un'app installata è stata impostata la propria Elemento android:visibleToInstantApps per true - Questo elemento è disponibile per le app con Android 8.0 (livello API 26) o versioni successive.
  • Un'app installata contiene un filtro per intent che include CATEGORY_BROWSABLE
  • L'app istantanea invia un intent utilizzando ACTION_SEND, ACTION_SENDTO oppure ACTION_SEND_MULTIPLE un'azione.

Configura il progetto per le esperienze istantanee

Per la compatibilità con Google Play Instant, devi configurare diverse del tuo app bundle ad attivazione istantanea. Le seguenti sezioni a descrivere queste considerazioni.

Dichiara le dipendenze del progetto

Per utilizzare le API Google Play Instant nella tua app, includi quanto segue dichiarazione nel file di configurazione build.gradle del modulo dell'app:

Alla moda

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

Kotlin

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

Definisci i codici di versione corretti

Il codice di versione dell'app istantanea della tua app deve essere inferiore a dell'applicazione installabile. L'aspettativa è che gli utenti passino Google Play Instant per scaricare e installare l'app su il proprio dispositivo. Il framework Android considera questa transizione come un'app aggiornamento.

Per assicurarti di seguire lo schema di controllo delle versioni previsto dagli utenti, segui uno di queste strategie:

  • Riavvia i codici di versione per l'esperienza Google Play Instant da 1.
  • Aumenta di molto il codice di versione dell'APK installabile, ad esempio 1000, per assicurarti che ci sia spazio sufficiente per la versione dell'app istantanea. numero da aumentare.

L'app istantanea e l'app installabile possono essere sviluppate in due fasi separate progetti Android Studio. In questo caso, però, devi seguire questi passaggi per Pubblica la tua app su Google Play:

  1. Utilizza lo stesso nome di pacchetto in entrambi i progetti Android Studio.
  2. In Google Play Console, carica entrambe le varianti nella stessa applicazione.
di Gemini Advanced.

Per maggiori dettagli sull'impostazione della versione dell'app, vedi Eseguire il controllo della versione Google Cloud.

Aggiorna la versione sandbox di destinazione

Il file AndroidManifest.xml dell'app istantanea deve essere aggiornato per avere come target ambiente sandbox supportato da Google Play Instant. Puoi completare questo aggiornamento aggiungendo l'attributo android:targetSandboxVersion all'interfaccia utente Elemento <manifest>, come mostrato nel seguente snippet di codice:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Per ulteriori informazioni, consulta la documentazione sul targetSandboxVersion .

Dichiara i moduli dell'app ad attivazione istantanea

Puoi dichiarare che l'app bundle supporta le app istantanee utilizzando una delle utilizza i seguenti metodi:

  • Se disponi già di un app bundle che contiene solo una base modulo, puoi attivare immediatamente l'app bundle come segue:

    1. Apri il riquadro Progetto selezionando Visualizza > Finestre degli strumenti > Progetto dalla barra dei menu.
    2. Fai clic con il tasto destro del mouse sul modulo di base, in genere chiamato "app" e seleziona Esegui il refactoring > Attiva il supporto delle app istantanee.
    3. Nella finestra di dialogo visualizzata, seleziona il modulo base dal menu a discesa.
    4. Fai clic su OK.

    Android Studio aggiunge la seguente dichiarazione al file manifest del modulo:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Se disponi di un app bundle esistente che contiene più moduli, puoi: Creare una funzionalità ad attivazione istantanea modulo. Questo processo attiva inoltre immediatamente il modulo di base della tua app, dandoti la possibilità di supportare voce istantanea multipla punti di accesso all'interno dell'app.

di Gemini Advanced.

Aggiungere un supporto per l'accesso

Se l'app istantanea consente agli utenti di accedere, l'app ad attivazione istantanea il bundle deve supportare Smart Lock per password su Android. Se stai creando un'"Riproduzione istantanea" , dovresti utilizzare invece i servizi per i giochi di Google Play.

Supportare l'ambiente di esecuzione

Per la compatibilità con la sandbox SELinux in cui vengono eseguite le esperienze istantanee, mantieni tieni presente quanto segue durante la creazione dell'app bundle ad attivazione istantanea:

  • Non condividere il valore di myUid(), ovvero il kernel assegnato al processo dell'app UID.
  • Se la tua app ha come target Android 8.1 (livello API 27) o versioni precedenti, crea un Network Security Config e impostare il file cleartextTrafficPermitted a false. Le app istantanee non supportano HTTP per via del traffico. Per le app destinate ad Android 9 o versioni successive, il traffico con testo in chiaro è è disabilitata per impostazione predefinita.
  • Il download dell'app istantanea rimane sul dispositivo di un utente fino al la cache dell'app istantanea viene svuotata in uno dei seguenti modi situazioni seguenti:

    • La cache dell'app istantanea viene garbage collection perché il dispositivo sta esaurendo la memoria disponibile.
    • L'utente riavvia il dispositivo.

    In uno dei due casi, l'utente deve scaricare di nuovo l'app istantanea per interagire.

  • Se lo spazio di archiviazione del sistema sta per esaurirsi, è possibile che i dati utente dell'app istantanea vengono rimossi dalla memoria interna. Pertanto, di sincronizzare periodicamente i dati utente con il server dell'app, in modo che l'avanzamento dell'utente viene mantenuto.

Aggiungi logica per flussi di lavoro dell'esperienza istantanea

Dopo aver configurato l'app bundle in modo che supporti le app istantanee, aggiungi la logica mostrata nelle sezioni seguenti.

Controlla se l'app è in esecuzione nell'esperienza istantanea

Se parte della logica della tua app dipende dal fatto che l'utente sia coinvolto o meno nella tua istantanea, richiama isInstantApp() . Questo metodo restituisce true se il processo attualmente in esecuzione è un un'esperienza istantanea.

Mostrare una richiesta di installazione

Se stai creando una versione di prova della tua app o del tuo gioco, Google Play Instant ti consente di visualizzare un prompt all'interno l'app istantanea, invitando gli utenti a installare l'esperienza completa dispositivo. Per visualizzare questo prompt, utilizza InstantApps.showInstallPrompt() come mostrato nello snippet di codice riportato di seguito:

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);
    }
}

Trasferisci i dati a un'esperienza installata

Se l'utente apprezza l'app istantanea, potrebbe decidere di installare il tuo dell'app. Per offrire una buona esperienza utente, è importante che i dati dell'utente vengano trasferiti dall'app istantanea all'intera all'ultima versione dell'app.

Se l'utente utilizza un dispositivo con Android 8.0 (livello API 26) o versioni successive, e se la tua app specifica un targetSandboxVersion di 2, i dati dell'utente vengono trasferiti automaticamente alla versione completa dell'app. In caso contrario, dovrai trasferire manualmente i dati. Per farlo, utilizza una delle seguenti API:

  • Per gli utenti che utilizzano dispositivi con Android 8.0 (livello API 26) e versioni successive, usa l'API Cookie (app di esempio)
  • Se gli utenti possono interagire con la tua esperienza su dispositivi con Android 7.1 (livello API 25) e inferiore, aggiungi il supporto per l'API Storage. app di esempio

Creare l'app bundle

Per creare il tuo cluster, puoi utilizzare Android Studio o l'interfaccia a riga di comando app bundle ad attivazione istantanea.

Android Studio

Con Android Studio, puoi creare l'app bundle selezionando Crea > Crea bundle/APK > Creare bundle. Per ulteriori informazioni consulta l'articolo Creare il progetto.

Interfaccia a riga di comando

Puoi anche creare l'app bundle dal comando utilizzando Gradle.

Supporto di architetture a 64 bit

Le app pubblicate su Google Play devono supportare architetture a 64 bit. L'aggiunta di un La versione a 64 bit della tua app migliora le prestazioni e ti configura per i dispositivi con hardware solo a 64 bit. Scopri di più sul supporto del formato a 64 bit.

Testa l'app istantanea

Prima di pubblicare l'app bundle ad attivazione istantanea, puoi testare l'app istantanea esperienza da una delle seguenti posizioni per verificarne la funzionalità:

di Gemini Advanced.

Android Studio

Per testare l'app istantanea della tua app su un computer locale utilizzando Android Studio: completa i seguenti passaggi:

  1. Se hai una versione installata dell'app sul dispositivo di test, disinstalla li annotino.
  2. In Android Studio, dalle opzioni di installazione visualizzate nella Scheda General (Generale) delle configurazioni esecuzione/debug finestra di dialogo, abilita la funzionalità Esegui il deployment come istantaneo app.
  3. Seleziona Esegui > Esegui nella barra dei menu oppure fai clic su Esegui nella barra degli strumenti, poi scegli il dispositivo su cui vuoi testare l'app istantanea ed esperienze variegate. L'app istantanea dell'app viene caricata sul dispositivo di test su cui hai installato scelto.

Interfaccia a riga di comando

Per testare l'app istantanea della tua app su una macchina locale utilizzando la riga di comando: completa i seguenti passaggi:

  1. Se hai una versione installata dell'app sul dispositivo di test, disinstalla li annotino.
  2. Esegui il sideload ed esegui l'app istantanea sul dispositivo di test inserendo il parametro seguente comando:
ia run output-from-build-command

Canale di test interno

Per testare l'esperienza istantanea della tua app dal Play Store o tramite un banner sul tuo sito web, pubblica l'app per il test interno traccia su Play Console.

Per pubblicare l'app nel canale di test interno, completa i seguenti passaggi:

  1. Carica l'app bundle seguendo i passaggi descritti in Caricare l'app bundle alla guida di Play Console.
  2. Prepara il bundle caricato per una release del canale di test interno. Per ulteriori informazioni, consulta l'articolo di assistenza su come preparare e implementare di machine learning.
  3. Accedi a un account tester interno su un dispositivo, quindi avvia l'app istantanea da una delle seguenti piattaforme:

    • Il pulsante Prova ora nella scheda del Play Store della tua app.
    • Un link da un banner sul sito web della tua app.
di Gemini Advanced.

Pubblica l'app bundle per il canale di produzione

Per pubblicare l'app bundle ad attivazione istantanea, completa i seguenti passaggi:

  1. Se non l'hai ancora fatto, firma l'app bundle con una release chiave e carica l'app bundle nella Play Console.
  2. In Play Console, apri Gestione delle release > App istantanee Android, Vai al canale Produzione istantanea di app.
  3. Seleziona Aggiorna da raccolta, quindi l'app bundle ad attivazione istantanea. che hai caricato.

Scegli dove pubblicare l'app istantanea

Puoi avviare un'app istantanea in un sottoinsieme della paesi e regioni in cui gli utenti possono installare la tua app. Questa funzionalità è utile nei casi in cui vuoi promuovere l'app istantanea della tua app per che risiedono in un gruppo specifico di paesi e regioni.

Risorse aggiuntive

Per scoprire di più sulla creazione di app istantanee e Android App Bundle, vedi le seguenti risorse:

Video: raggruppamento di un'app in un istante
Scopri come aggiungere un'esperienza istantanea a un Android App Bundle in questo sessione dell'Android Dev Summit '18.
Video: pubblicare app più piccole con il formato Android App Bundle
Scopri in che modo gli app bundle ti aiutano a sviluppare la tua app più rapidamente e a creare APK più piccoli per i tuoi utenti.
Codelab: il tuo primo Android App Bundle
Una guida passo passo per la creazione di un Android App Bundle e l'aggiunta di funzionalità a li.
Formato Android App Bundle
Scopri di più su come il programma a riga di comando bundletool organizza un'app un bundle dal codice e dalle risorse della tua app.