Avviso:Google Play Instant non sarà più disponibile. A partire da dicembre 2025, le app istantanee non potranno essere pubblicate tramite Google Play e tutte le API istantanee di Google Play Services non funzioneranno più. Gli utenti non riceveranno più app istantanee da Play utilizzando alcun meccanismo.
Stiamo apportando questa modifica in base al feedback degli sviluppatori e ai nostri continui investimenti per migliorare l'ecosistema dall'introduzione di Google Play Instant.
Per continuare a ottimizzare per la crescita degli utenti, invitiamo gli sviluppatori a indirizzare gli utenti alla loro app o al loro gioco normale utilizzando i deep link per reindirizzarli a percorsi o funzionalità specifici, se pertinenti.
Per creare un'app istantanea Google Play, devi includerla in un Android App Bundle. Un bundle di questo tipo è noto come app bundle ad attivazione istantanea. Questo documento mostra come configurare l'ambiente di sviluppo per gli app bundle ad attivazione istantanea, nonché come configurare, creare, testare e pubblicare un app bundle ad attivazione istantanea.
Se hai un progetto di app istantanea esistente che utilizza il plug-in della funzionalità deprecata (com.android.feature), scopri come
eseguire la migrazione dell'app istantanea per supportare Android App Bundle.
Configura l'ambiente di sviluppo
Per fornire un'app istantanea all'interno di un app bundle, devi accedere all'SDK Google Play Instant Development. Puoi installare l'SDK utilizzando uno dei seguenti metodi:
- Installa Android Studio 3.6 o versioni successive. Dopo aver aperto Android Studio, scarica l'SDK Google Play Instant Development dalla scheda Strumenti SDK in SDK Manager.
Installare dalla riga di comando:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Inoltre, se vuoi testare la tua app istantanea a livello locale, accedi a un dispositivo fisico o virtuale.
Scopri di più sulle condizioni di esecuzione richieste
Google Play Instant esegue gli app bundle ad attivazione istantanea in un tipo speciale di sandbox SELinux per una maggiore sicurezza. Questa sandbox consente un sottoinsieme di autorizzazioni, nonché tipi limitati di interazioni con altre app. Le sezioni seguenti spiegano in modo più dettagliato le caratteristiche di questo ambiente sandbox.
Autorizzazioni e operazioni supportate
Gli app bundle ad attivazione istantanea possono utilizzare solo le autorizzazioni del seguente elenco:
ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATIONACCESS_NETWORK_STATEBILLING– Deprecato a partire dalla libreria Play Billing 1.0.CAMERAINSTANT_APP_FOREGROUND_SERVICE– Solo in Android 8.0 (livello API 26) e versioni successive.INTERNETREAD_PHONE_NUMBERS– Solo in Android 8.0 (livello API 26) e versioni successive.RECORD_AUDIOVIBRATEWAKE_LOCK
Gestione delle autorizzazioni non supportate comuni
Di seguito è riportato un elenco di autorizzazioni comuni non supportate che devi rimuovere dalla tua applicazione e il percorso di migrazione consigliato per ciascuna:
ACCESS_WIFI_STATE: utilizzaACCESS_NETWORK_STATE, che dovrebbe fornire informazioni simili aACCESS_WIFI_STATE.BILLING: questa è un'autorizzazione deprecata. 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 all'archiviazione esterna; utilizza invece la memoria interna.com.google.android.c2dm.permission.RECEIVEepermission.C2D_MESSAGE: C2DM è deprecato. Esegui la migrazione a Firebase Cloud Messaging (FCM). FCM non richiede autorizzazioni aggiuntive per funzionare.
Inoltre, gli app bundle ad attivazione istantanea non possono:
- Utilizza i servizi in background.
- Invia notifiche quando l'app è in esecuzione in background.
Accesso alle app installate
Quando sviluppi un'app istantanea, tieni presente che non può interagire con le app installate su un dispositivo, a meno che non si verifichi una delle seguenti condizioni:
- Una o più attività all'interno di un'app installata hanno impostato l'elemento
android:visibleToInstantAppssutrue. Questo elemento è disponibile per le app che eseguono 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 l'azione
ACTION_SEND,ACTION_SENDTOoACTION_SEND_MULTIPLE.
Configurare il progetto per le app istantanee
Per essere compatibile con Google Play Instant, devi configurare con attenzione diversi aspetti del tuo app bundle ad attivazione istantanea. Le sezioni seguenti descrivono queste considerazioni.
Dichiarare le dipendenze del progetto
Per utilizzare le API Google Play Instant nella tua app, includi la seguente 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 deve essere inferiore al codice di versione dell'app installabile. L'aspettativa è che gli utenti passino dall'esperienza Google Play Instant al download e all'installazione dell'app sul proprio dispositivo. Il framework Android considera questa transizione come un aggiornamento dell'app.
Per assicurarti di seguire lo schema di controllo delle versioni previsto dagli utenti, segui una di queste strategie:
- Riavvia i codici versione per l'app istantanea Google Play a 1.
- Aumenta il codice di versione dell'APK installabile di un numero elevato, ad esempio 1000, per assicurarti che ci sia spazio sufficiente per aumentare il numero di versione dell'esperienza istantanea.
Puoi sviluppare l'app istantanea e l'app installabile in due progetti Android Studio separati. Se lo fai, tuttavia, devi eseguire le seguenti operazioni per pubblicare 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 dell'app.
Aggiorna la versione della sandbox di destinazione
Il file AndroidManifest.xml della tua app istantanea deve essere aggiornato in modo da avere come target l'ambiente sandbox supportato da Google Play Instant. Puoi completare
questo aggiornamento aggiungendo l'attributo android:targetSandboxVersion all'elemento
<manifest> della tua app, come mostrato nello snippet di codice seguente:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
Per saperne di più, consulta la documentazione relativa all'attributo
targetSandboxVersion.
Dichiarare i moduli delle app ad attivazione istantanea
Puoi dichiarare che il tuo app bundle supporta le app istantanee utilizzando uno dei seguenti metodi:
Se hai un app bundle esistente che contiene solo un modulo base, puoi attivare l'app bundle istantaneo nel seguente modo:
- 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 denominato "app", e seleziona Refactor > Enable Instant Apps Support.
- Nella finestra di dialogo visualizzata, seleziona il modulo di base dal menu a discesa.
- Fai clic su OK.
Android Studio aggiunge la seguente dichiarazione al manifest del modulo:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>Se hai un app bundle esistente che contiene più moduli, puoi creare un modulo delle funzionalità ad attivazione istantanea. Questo processo abilita immediatamente anche il modulo di base dell'app, offrendoti la possibilità di supportare più punti di ingresso istantanei all'interno dell'app.
Aggiungere il supporto per l'accesso
Se la tua app istantanea consente agli utenti di accedere, l'app bundle ad attivazione istantanea deve supportare Smart Lock per password su Android. Se stai creando un gioco istantaneo, devi utilizzare l'accesso ai servizi di Google Play Giochi.
Supporta l'ambiente di esecuzione
Per essere compatibile con la sandbox SELinux in cui vengono eseguite le app istantanee, tieni presente quanto segue quando crei l'app bundle ad attivazione istantanea:
- Non condividere il valore di
myUid(), che è l'UID assegnato al kernel del processo dell'app. - Se la tua app ha come target Android 8.1 (livello API 27) o versioni precedenti, crea un file
Network Security Config e imposta
cleartextTrafficPermittedsufalse. Le esperienze istantanee non supportano il traffico HTTP. Per le app che hanno come target Android 9 o versioni successive, il traffico in testo non crittografato è disattivato per impostazione predefinita. La tua app istantanea rimane scaricata sul dispositivo di un utente finché non viene svuotata la cache dell'app istantanea, il che si verifica in una delle seguenti situazioni:
- La cache dell'app istantanea viene sottoposta a garbage collection perché la memoria disponibile sul dispositivo è quasi esaurita.
- L'utente riavvia il dispositivo.
Se si verifica uno dei due processi, l'utente deve scaricare di nuovo la tua app istantanea per interagire con essa.
Se lo spazio di archiviazione del sistema è quasi esaurito, è possibile che i dati utente dell'esperienza istantanea vengano rimossi dalla memoria interna. Pertanto, è consigliabile sincronizzare periodicamente i dati utente con il server dell'app in modo che i progressi dell'utente vengano conservati.
Aggiungere la logica per i workflow delle app istantanee
Dopo aver configurato l'app bundle in modo che supporti le app istantanee, aggiungi la logica mostrata nelle sezioni seguenti.
Controllare se l'app esegue l'app istantanea
Se parte della logica della tua app dipende dal fatto che l'utente sia coinvolto nella tua
app istantanea, chiama il metodo
isInstantApp(). Questo metodo restituisce true se il processo attualmente in esecuzione è un'app istantanea.
Visualizzare 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 dell'app istantanea, invitando gli utenti a installare l'esperienza completa sul proprio dispositivo. Per visualizzare questo prompt, utilizza il metodo
InstantApps.showInstallPrompt(), come mostrato nello snippet di codice seguente:
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); } }
Trasferire i dati a un'esperienza installata
Se l'utente apprezza la tua app istantanea, potrebbe decidere di installare la tua app. Per offrire una buona esperienza utente, è importante che i dati dell'utente vengano trasferiti dall'app istantanea alla versione completa 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 della tua app. In caso contrario, devi trasferire i
dati manualmente. A tal fine, utilizza una delle seguenti API:
- Per gli utenti che utilizzano dispositivi con Android 8.0 (livello API 26) e versioni successive, utilizza 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 versioni precedenti, aggiungi il supporto per l'API Storage - app di esempio
Crea l'app bundle
Puoi utilizzare Android Studio o l'interfaccia a riga di comando per creare il bundle della tua app ad attivazione istantanea.
Android Studio
Utilizzando Android Studio, puoi creare il tuo app bundle selezionando Build (Crea) > Build Bundle(s) / APK(s) (Crea bundle/APK) > Build Bundle(s) (Crea bundle). Per saperne di più sulla creazione del progetto, consulta Creare il progetto.
Interfaccia a riga di comando
Puoi anche creare l'app bundle dalla riga di comando utilizzando Gradle.
Supportare architetture a 64 bit
Le app pubblicate su Google Play devono supportare le architetture a 64 bit. L'aggiunta di una versione a 64 bit della tua app offre miglioramenti delle prestazioni e ti prepara per i dispositivi con hardware solo a 64 bit. Scopri di più sul supporto a 64 bit.
Testare l'app istantanea
Prima di pubblicare l'app bundle ad attivazione istantanea, puoi testare l'app istantanea da una delle seguenti posizioni per verificarne la funzionalità:
- Installare su un dispositivo locale utilizzando Android Studio.
- Installare su un dispositivo locale utilizzando l'interfaccia a riga di comando.
- Pubblica nel canale di test interno su Google Play Console.
Android Studio
Per testare l'esperienza istantanea della tua app su una macchina locale utilizzando Android Studio, completa i seguenti passaggi:
- Se sul dispositivo di test è installata una versione della tua app, disinstallala.
- In Android Studio, tra le opzioni di installazione visualizzate nella scheda Generale della finestra di dialogo Esegui/Esegui il debug delle configurazioni, seleziona la casella di controllo Esegui il deployment come app istantanea.
- Seleziona Esegui > Esegui nella barra dei menu oppure fai clic su Esegui
nella barra degli strumenti, quindi scegli il dispositivo su cui vuoi testare le esperienze istantanee della tua app. L'app istantanea viene caricata sul dispositivo di test che hai
scelto.
Interfaccia a riga di comando
Per testare l'app istantanea su una macchina locale utilizzando la riga di comando, completa i seguenti passaggi:
- Se sul dispositivo di test è installata una versione della tua app, disinstallala.
- Carica ed esegui la tua app istantanea sul dispositivo di test inserendo il seguente comando:
ia run output-from-build-command
canale di test interno
Per testare l'app istantanea dal Play Store o da un banner sul tuo sito web, pubblica l'app nel canale di test interno su Play Console.
Per pubblicare la tua app nel canale di test interno, completa i seguenti passaggi:
- Carica l'app bundle seguendo i passaggi della guida Caricare l'app bundle su Play Console.
- Prepara il bundle caricato per una release nel canale di test interno. Per maggiori informazioni, consulta l'articolo del Centro assistenza su come preparare e implementare le release.
Accedi a un account tester interno su un dispositivo, quindi avvia l'esperienza istantanea da una delle seguenti piattaforme:
- Il pulsante Prova ora nella scheda dello Store della tua app.
- Un link da un banner sul sito web della tua app.
Pubblica l'app bundle nel canale di produzione
Per pubblicare il tuo app bundle ad attivazione istantanea, completa i seguenti passaggi:
- Se non l'hai ancora fatto, firma l'app bundle con una chiave di rilascio e caricalo su Play Console.
- In Play Console, apri Gestione delle release > App istantanee Android, poi vai al canale Produzione app istantanea.
- Seleziona Aggiorna dalla raccolta, quindi seleziona l'app bundle ad attivazione istantanea che hai caricato.
Scegliere dove pubblicare l'app istantanea
È possibile lanciare un'app istantanea in un sottoinsieme dei paesi e delle regioni in cui gli utenti possono installare la tua app. Questa funzionalità è utile nei casi in cui vuoi promuovere l'app istantanea presso gli utenti che risiedono in un insieme specifico di paesi e regioni.
Risorse aggiuntive
Per saperne di più sulla creazione di esperienze istantanee e Android App Bundle, consulta le seguenti risorse:
- Video: Raggruppare un'app in un'app istantanea
- Scopri come aggiungere un'app istantanea a un Android App Bundle in questa sessione dell'Android Dev Summit 2018.
- Video: Pubblicare app più piccole con Android App Bundle
- Scopri come gli app bundle ti aiutano a sviluppare più rapidamente la tua app e a creare APK più piccoli per i tuoi utenti.
- Codelab: il tuo primo Android App Bundle
- Una guida passo passo per creare un Android App Bundle e aggiungervi funzionalità.
- Formato Android App Bundle
- Scopri di più su come il programma a riga di comando
bundletoolorganizza un pacchetto dell'app a partire dal codice e dalle risorse dell'app.