Riduci le dimensioni dell'app istantanea

Google Play Instant offre esperienze native e avanzate con il semplice tocco di un sito web . Gli utenti possono provare la tua app senza installarla preventivamente, attivando una un livello superiore e una qualità del coinvolgimento. Per fare in modo che un'app istantanea si carichi velocemente come fa una tipica pagina web per dispositivi mobili, però, devi creare un ambiente ben strutturato, app istantanea efficiente. Più piccolo è il file binario della tua app istantanea, più veloce sarà viene caricato e più fluida sarà l'esperienza utente.

Questo documento presenta le best practice per gestire la struttura dell'app e dimensioni binarie per consentire un'esperienza fluida con l'app istantanea. Puoi applicare queste regole a vantaggio anche della tua app installabile.

Esegui il refactoring in più moduli di funzionalità

Il maggiore miglioramento alle dimensioni binarie dell'app si verifica quando esegui il refactoring dell'app in più moduli di funzionalità. Inizia con una funzionalità di base modulo, ed estrarre flussi di lavoro correlati al tema nei propri moduli delle caratteristiche. Assegna un'attività iniziale e un URL univoco a ogni modulo di funzionalità in modo che gli utenti sia in grado di completare il flusso di lavoro del modulo.

Quando crei moduli delle caratteristiche, mantieni il modulo delle caratteristiche di base piccolo quanto possibile. In particolare, presta particolare attenzione alle parti della tua app che richiedono l'accesso alle librerie dipendenti. Se solo un modulo di funzionalità utilizza un una data libreria, importala nel modulo delle funzionalità stesso, non nella base modulo delle funzionalità. Tieni presente che per poter rilasciare un'app istantanea per un un particolare modulo della funzionalità, la dimensione totale della caratteristica e il modulo della funzionalità di base devono essere inferiori a 15 MB.

Best practice

Quando esegui il refactoring della tua app, tieni presente le seguenti best practice:

Usa lo stesso codebase per entrambi i tipi di app
Puoi semplificare il processo di project management della tua app usando lo stesso codebase modulare per creare sia la tua app installata che le tue app istantanee.
Progettare per più moduli di funzionalità
Anche se l'app ha un solo flusso di lavoro e richiede una sola funzionalità per ora, è comunque una buona idea progettare per più moduli di funzionalità. In questo modo, puoi aggiungere moduli esistenti alla tua app senza influire sulle dimensioni del modulo delle funzionalità originale.
Non concentrarti sul limite delle dimensioni del modulo delle funzionalità all'inizio
I limiti delle dimensioni dei moduli delle funzionalità non si applicano ai file binari creati localmente. Puoi anche rilasciare un'app istantanea tramite il canale di test interno, che applica in modo forzato un limite di 15 MB per le dimensioni dei moduli delle funzionalità. Solo le versioni alpha e Le tracce di produzione prevedono il limite di 15 MB.

Aggiorna risorse dell'app

Alcune app, in particolare quelle con cronologie codebase più lunghe, contengono risorse che non vengono più usate dai programmi binari della tua app. Quando cerchi modi per rendere dei moduli dell'app più piccoli, considera le seguenti fonti comuni di le API nel tuo codice.

Riduci le dimensioni dei file delle immagini

Puoi ridurre in modo significativo le dimensioni totali dei drawable della tua app utilizzando il WebP anziché PNG. Google Play Instant offre assistenza completa per WebP, tra cui trasparenza e compressione senza perdita di dati, in modo che la qualità delle immagini rimane la stessa.

Se possibile, rimuovi tutti i requisiti di compatibilità con le versioni precedenti per l'utilizzo di altri file PNG in formato Docker. Se devi utilizzare immagini PNG, inseriscile nel modulo utilizzato per creare e installare l'app.

Rimuovi le lingue inutilizzate

Se la tua app supporta più lingue, riduci il numero di risorse localizzate possibile è possibile. Questo passaggio è particolarmente utile se utilizzi un'etichetta "app compat" raccolta, ad esempio android.support.v7.appcompat. Questa raccolta include messaggi in molte lingue, alcune delle quali la tua app potrebbe non è supportato.

Per scoprire di più, scopri come rimuovere l'alternativa inutilizzata Google Cloud, in particolare lingue inutilizzate.

Rimuovere i file aggiuntivi

La tua app potrebbe non utilizzare più alcune risorse che hai importato del progetto. Per aiutarti a rimuovere queste risorse, Android Studio ha un controllo Lint. per questa situazione specifica. Per utilizzare lo strumento, completa i seguenti passaggi:

  1. Premi Ctrl+Alt+Maiusc+I (Comando+Alt+Maiusc+I su Mac OS).
  2. Nella finestra di dialogo visualizzata, digita "unused resources".
  3. Seleziona l'opzione Risorse inutilizzate per avviare l'utilizzo delle risorse durante il processo di ispezione.

Se nella tua app rimangono risorse di grandi dimensioni, valuta se è possibile rimuovili dalla tua app e scaricali come file autonomi dopo il l'utente inizia a interagire con la tua app. Questo tipo di rinvio del caricamento richiede in genere una modifica al codice, ma può ridurre notevolmente le probabilità di dimensioni del file dell'app scaricando solo le risorse che un utente ha esplicitamente richieste.

Rimuovi le librerie inutilizzate

Man mano che un'app cresce, può assumere un numero sorprendente di dipendenze, in particolare uno dei seguenti tipi:

  • Librerie native: librerie che contengono codice nativo che puoi utilizzare l'app non viene mai eseguita.
  • Dipendenze temporanee: librerie da cui viene importata l'app di Google Cloud.

Android Studio dispone di diversi strumenti utili per identificare di Compute Engine nel progetto della tua app:

Librerie esterne

La visualizzazione Progetto di Android Studio include una sezione Librerie esterne.

Questa sezione contiene tutte le librerie utilizzate dalla tua app, incluse quelle native e tutte le dipendenze transitive. In questa visualizzazione, cerca la parola "Inutilizzato" o "Duplicato" non richieste dalla tua app.

Strumento di analisi APK

Puoi utilizzare lo Strumento di analisi APK per confrontare diverse build, incluse quelle di app istantanee.

Dopo aver stabilito quali librerie non sono necessarie per la tua app, escludile entro aggiungendo al file di build Gradle righe simili alle seguenti:

<modulo_funzionalità>/build.gradle

Alla moda

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

Kotlin

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

Per ulteriori informazioni su come ridurre le dimensioni totali di importazione di dipendenze, consulta la guida di Gradle relativa alle dipendenze Gestione.

Implementa la distribuzione degli asset su cloud

Se devi ridurre ulteriormente le dimensioni, potresti dover fare affidamento sulla distribuzione degli asset su cloud.