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:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
- Ritirato a partire da Play Libreria Fatturazione 1.0.CAMERA
INSTANT_APP_FOREGROUND_SERVICE
- Solo su Android 8.0 (livello API 26) e versioni successive.INTERNET
READ_PHONE_NUMBERS
– Solo su Android 8.0 (livello API 26) e versioni successive.RECORD_AUDIO
VIBRATE
WAKE_LOCK
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
: utilizzaACCESS_NETWORK_STATE
, che dovrebbe fornire informazioni simili aACCESS_WIFI_STATE
.BILLING
: questa autorizzazione è obsoleta. Utilizza la Libreria Fatturazione Google Play, che non richiede più l'autorizzazionecom.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
epermission.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:
- Utilizzare servizi in background.
- Invia notifiche durante l'esecuzione in sullo sfondo.
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
pertrue
- 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
oppureACTION_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:
- Utilizza lo stesso nome di pacchetto in entrambi i progetti Android Studio.
- In Google Play Console, carica entrambe le varianti nella stessa applicazione.
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:
- Apri il riquadro Progetto selezionando Visualizza > Finestre degli strumenti > Progetto dalla barra dei menu.
- 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.
- Nella finestra di dialogo visualizzata, seleziona il modulo base dal menu a discesa.
- 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.
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
afalse
. 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à:
- Installa l'app su un dispositivo locale utilizzando Android Studio.
- Eseguire l'installazione su un dispositivo locale utilizzando la riga di comando a riga di comando.
- Pubblica per il canale di test interno nella Google Play Console.
Android Studio
Per testare l'app istantanea della tua app su un computer locale utilizzando Android Studio: completa i seguenti passaggi:
- Se hai una versione installata dell'app sul dispositivo di test, disinstalla li annotino.
- 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.
- 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:
- Se hai una versione installata dell'app sul dispositivo di test, disinstalla li annotino.
- 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:
- Carica l'app bundle seguendo i passaggi descritti in Caricare l'app bundle alla guida di Play Console.
- 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.
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.
Pubblica l'app bundle per il canale di produzione
Per pubblicare l'app bundle ad attivazione istantanea, completa i seguenti passaggi:
- Se non l'hai ancora fatto, firma l'app bundle con una release chiave e carica l'app bundle nella Play Console.
- In Play Console, apri Gestione delle release > App istantanee Android, Vai al canale Produzione istantanea di app.
- 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.