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ù. Play non fornirà più app istantanee agli utenti tramite alcun meccanismo.
Stiamo apportando questa modifica in base al feedback degli sviluppatori e ai nostri investimenti continui 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.
I passaggi per configurare le app in modo che vengano eseguite su Google Play Instant, come spiegato in Creare la prima app istantanea, si applicano anche ai giochi. Questa guida sottolinea alcuni passaggi di configurazione specifici per i giochi.
Puoi sviluppare giochi per Google Play Instant utilizzando Unity (con o senza il plug-in Unity di Google Play Instant ), Cocos2D, Android Studio, o il tuo motore personalizzato.
Questa guida presuppone che tu conosca già il tipo di esperienza di gioco che vuoi offrire. Se vuoi vedere idee e best practice per creare giochi di alta qualità, leggi le best practice per l'esperienza utente per i giochi su Google Play Instant.
Inoltre, prima di pubblicare un gioco che può essere eseguito su Google Play Instant, devi esaminare la checklist dei requisiti tecnici.
Specificare un punto di ingresso
Un'Activity che include il seguente filtro per intent diventa il punto di ingresso per l'app istantanea di Google Play:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Questa attività viene avviata quando un utente tocca il pulsante Prova ora nel Play Store o il pulsante Riproduzione istantanea nell'app Google Play Games. Puoi anche avviare questa attività direttamente utilizzando l'API dei deep link.
Definire i codici di versione corretti
Il codice di versione dell'app istantanea del tuo gioco deve essere inferiore al codice di versione del gioco installabile. La gestione delle versioni dell'app in questo modo consente ai giocatori di passare dall'esperienza Google Play Instant al download e all'installazione del gioco sul proprio dispositivo. Il framework Android considera questa transizione come un aggiornamento dell'app.
Per assicurarti di seguire lo schema di controllo delle versioni consigliato, segui una di queste strategie:
- Riavvia i codici di versione per l'esperienza Google Play Instant a 1.
- Aumenta il codice di versione dell'app 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 il gioco istantaneo e il gioco installabile in due progetti Android Studio separati. Tuttavia, se lo fai, devi eseguire le seguenti operazioni per pubblicare il gioco 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 del gioco, consulta la sezione Gestire le versioni dell' app.
Supportare l'ambiente di esecuzione
Come altre app, i giochi su Google Play Instant vengono eseguiti in una sandbox limitata sul dispositivo. Per supportare questo ambiente di esecuzione, completa i passaggi illustrati nelle sezioni seguenti.
Disattivare il traffico con testo in chiaro
I giochi su Google Play Instant non supportano il traffico HTTP. Se il tuo gioco ha come target Android 9 (livello API 28) o versioni successive, Android disattiva il supporto dei dati in chiaro nel gioco per impostazione predefinita.
Tuttavia, se il tuo gioco ha come target Android 8.1 (livello API 27) o versioni precedenti, devi
creare un file di configurazione della sicurezza di rete.
In questo file, imposta cleartextTrafficPermitted su false, come mostrato nel seguente snippet di codice:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
Aggiornare la versione della sandbox di destinazione
Aggiorna il file AndroidManifest.xml del gioco istantaneo in modo che abbia come target l'ambiente sandbox supportato da Google Play Instant. Puoi completare
questo aggiornamento aggiungendo l'attributo android:targetSandboxVersion all'<manifest> dei giochi, 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 sull'
targetSandboxVersion
attributo.
Non fare affidamento sulla presenza di una cache o di dati dell'app
La tua app istantanea rimane scaricata sul dispositivo di un utente finché la cache dell'app istantanea non viene svuotata, il che si verifica in una delle seguenti situazioni:
- La cache dell'app istantanea viene sottoposta a garbage collection perché il dispositivo ha poca memoria disponibile.
- L'utente riavvia il dispositivo.
Se si verifica uno di questi processi, l'utente deve scaricare di nuovo l'app istantanea per interagire con essa.
Se il sistema ha pochissimo spazio di archiviazione, è possibile che i dati utente dell'esperienza istantanea vengano rimossi dalla memoria interna. Pertanto, ti consigliamo di sincronizzare periodicamente i dati utente con il server del gioco in modo che i progressi dell'utente vengano conservati.
Ridurre le dimensioni dell'app
A differenza di altri tipi di app, i giochi su Google Play Instant hanno un limite di dimensioni di download di 15 MB. Per creare un gioco di queste dimensioni, potrebbe essere necessario eseguire il refactoring della logica del gioco. Questa sezione descrive alcuni strumenti e tecniche per ottimizzare le dimensioni del gioco.
Strumenti
Il seguente elenco di strumenti può aiutarti a determinare cosa contribuisce alle dimensioni del gioco:
- Strumento di analisi APK: fornisce una visione olistica dei contenuti di un APK compilato. Utilizzando questa visualizzazione, puoi determinare il numero di byte che ogni elemento contribuisce alle dimensioni complessive. Utilizza questo strumento per controllare rapidamente le dimensioni di risorse, asset, logica e librerie native utilizzate dal gioco.
- Bloaty McBloatface: mostra il profilo delle dimensioni dei file binari.
- Android GPU Inspector: visualizza l'effetto delle dimensioni dei file della riduzione delle dimensioni delle texture senza dover ricompilare il gioco.
Tecniche
Di seguito è riportato un elenco di tecniche che puoi utilizzare per ridurre le dimensioni del gioco:
- Estrai parte della logica del gioco e inseriscila in uno o più moduli di funzionalità, che non vengono conteggiati nel limite di dimensioni.
- Riduci la risoluzione delle texture del gioco.
- Valuta la possibilità di utilizzare il formato WebP, soprattutto se utilizzi texture non compresse sulla GPU. Il formato WebP crea immagini della stessa qualità delle immagini JPEG, ma più piccole del 15-30%. Sebbene la decompressione delle immagini WebP richieda più tempo, questo tempo di decompressione è comunque significativamente inferiore al tempo di download delle texture del gioco. Google ha anche integrato il formato in un motore di gioco open source.
- Comprimi o riutilizza suoni e musica.
- Utilizza diversi flag di compilazione per ridurre le dimensioni del file binario:
-fvisibility=hidden: il più importante. Incmake, puoi specificarlo come segue:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz: importante anche per ridurre le dimensioni. Se compili utilizzandogcc, utilizza-Os.-flto: a volte riduce le dimensioni dei file.- Flag del linker: utilizza
--gc-sectionsinsieme ai flag del compilatore, come-ffunction-sectionse-fdata-sections.
- Utilizza Proguard per ridurre le dimensioni del codice e delle risorse.
- Utilizza Gradle 4.4 o versioni successive per generare file DEX più piccoli.
- Implementa la distribuzione degli asset nel cloud .
Dividere un gioco di grandi dimensioni in più APK
Può essere difficile ottimizzare l'esperienza Google Play Instant per fare in modo che il gioco rientri in un singolo APK da 15 MB, anche dopo aver applicato i consigli per ridurre le dimensioni dell'APK. Per risolvere questa sfida, puoi dividere il gioco in più APK. I giocatori iniziano scaricando l'APK di base principale; mentre giocano, gli altri APK divisi vengono resi disponibili al gioco in background.
Ad esempio, l'APK di base può contenere il motore grafico principale e gli asset necessari per visualizzare una schermata di caricamento. Quando l'APK di base viene avviato, visualizza la schermata di caricamento e richiede immediatamente un APK diviso aggiuntivo che contiene i dati del gioco e del livello. Una volta che l'APK diviso è disponibile, può caricare i suoi asset nel motore grafico e fornire al giocatore i contenuti di cui ha bisogno per iniziare il gioco.
Adottare le best practice per l'esperienza utente
Dopo aver configurato il gioco in modo che supporti le esperienze istantanee, aggiungi la logica mostrata nelle sezioni seguenti per offrire una buona esperienza utente.
Supportare le 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 dell'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.
Verificare se il gioco sta eseguendo l'app istantanea
Se parte della logica del gioco dipende dal fatto che l'utente sia coinvolto nella tua app istantanea, chiama il
isInstantApp()
metodo. Questo metodo restituisce true se il processo in esecuzione è un'app istantanea.
Eseguendo questo controllo, puoi determinare se l'app deve essere eseguita in un ambiente di esecuzione limitato o se può sfruttare le funzionalità della piattaforma.
Visualizzare una richiesta di installazione
Se hai creato un'app istantanea di Google Play Instant, a un certo punto il gioco dovrebbe chiedere al giocatore di installare la versione completa sul proprio dispositivo. Per farlo, utilizza il
showInstallPrompt()
metodo nelle API di Google per Android.
Per scoprire di più su come e quando chiedere al giocatore di installare il gioco, consulta le best practice per l'esperienza utente per i giochi su Google Play Instant.
Trasferire i dati a un'esperienza installata
Se un giocatore apprezza la tua esperienza di prova, potrebbe decidere di installare la versione completa del gioco. Per offrire una buona esperienza utente, è importante che i progressi del giocatore vengano trasferiti dalla tua app istantanea alla versione completa del gioco.
Se il gioco specifica un valore targetSandboxVersion
di 2, i progressi del giocatore vengono trasferiti
automaticamente alla versione completa del gioco. In caso contrario, devi trasferire manualmente i dati relativi ai progressi del giocatore. Per farlo, utilizza l'app di esempio dell'API Cookie.
Risorse aggiuntive
Scopri di più su Google Play Instant da queste risorse aggiuntive:
- Codelab: creare la prima app istantanea
- Aggiungere il supporto per Google Play Instant in un'app esistente.
- Codelab: creare un'app istantanea con più funzionalità
- Modularizzare un'app con più funzionalità.