Ridurre le dimensioni dell'app

Le dimensioni ridotte dell'app sono direttamente correlate al successo dei download, in particolare nelle mercati emergenti con connessioni di rete di scarsa qualità o rete scarsa velocità effettiva. Ciò può comportare tassi di utilizzo dell'app inferiori, il che a sua volta riduce il l'ambito e la copertura del tuo pubblico. Esistono però diversi modi per aiutarti riduci le dimensioni della tua app.

Best practice

Carica l'app come Android App Bundle

Il modo più semplice per risparmiare immediatamente le dimensioni dell'app quando pubblichi su Google Play consiste nel caricare l'app come Android App Bundle, , un nuovo formato di pubblicazione che include tutto il codice compilato della tua app e le risorse e rimanda la generazione e l'accesso a Google Play.

Riduci le dimensioni del codice di runtime

Controlla il codice che l'app non utilizza in fase di runtime, ad esempio qualsiasi codice o codice generato automaticamente. Ottimizzatori di codice come R8 può aiutare a ottimizzare e ridurre le dimensioni del codice, ma non possono gestire codice protetto dalle costanti di runtime. Sostituisci il controllo con costanti di tempo di compilazione, per sfruttare al meglio le varie i nostri strumenti. Puoi abilitare la riduzione di codice e risorse nel file di configurazione di Gradle:

android {
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true
            isShrinkResources = true
        }
    }
}

Rimuovi i layout non necessari

Unisci i layout non utilizzati con piccole modifiche all'interfaccia utente e rimuovi quelli non necessari per ridurre le dimensioni complessive del codice dell'app. Inoltre, puoi scegliere dinamicamente quando possibile, esegui il rendering di layout e visualizzazioni. In questo modo, puoi evitare di disegnare modelli e applicare layout alternativi senza l'overhead tecnico.

Rivalutare le funzionalità usate di rado

Eseguire l'ottimizzazione in particolare per Android Go disattivando le funzionalità che hanno metriche relative agli utenti attivi giornalieri (DAU) basse. Alcuni esempi includono la rimozione animazioni complesse, file GIF di grandi dimensioni o qualsiasi altra aggiunta estetica, non necessarie per il successo dell'app.

Utilizza la pubblicazione dinamica

Play Feature Delivery utilizza le funzionalità avanzate funzionalità degli app bundle, permettendo di utilizzare determinate funzionalità dell'app pubblicati in modo condizionale o scaricati on demand. Puoi usare i moduli delle funzionalità per una consegna personalizzata. Un vantaggio unico dei moduli delle caratteristiche è la possibilità di personalizza come e quando vengono scaricate le diverse funzionalità dell'app dispositivi con Android 5.0 (livello API 21) o versioni successive.

Riduci le dimensioni delle stringhe traducibili

Puoi utilizzare la proprietà Android Gradle resConfigs per rimuovere di risorse alternative di cui la tua app non ha bisogno. Se utilizzi un libreria che include risorse linguistiche (come AppCompat o Google Play Services), la tua app includerà tutte le stringhe della lingua tradotte per la raccolta indipendentemente dalla traduzione dell'app. Se vuoi mantenere solo lingue supportate ufficialmente dalla tua app, puoi specificare le lingue utilizzando la proprietà resConfig. Le eventuali risorse per le lingue non specificate sono rimosso.

Per limitare le risorse linguistiche solo all'inglese e al francese, puoi modificare defaultConfig come mostrato di seguito:


android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

Usa la traduzione selettiva

Se una determinata stringa non è visibile nell'interfaccia utente dell'app, non è necessario traducilo. Stringhe a scopo di debug, messaggi di eccezione, o gli URL devono essere valori letterali di stringa nel codice, non risorse.

Ad esempio, non tradurre gli URL.

<string name="car_frx_device_incompatible_sol_message">
  This device doesn\'t support Android Auto.\n
  &lt;a href="https://support.google.com/androidauto/answer/6395843"&gt;Learn more&lt;/a&gt;
</string>

È possibile riconoscere &lt; e &gt, poiché si tratta di caratteri di escape per < e >. Sono necessari qui perché se inserisci un tag <a> all'interno di un tag <string>, il compilatore di risorse Android li elimina non riconosce il tag. Tuttavia, ciò significa che stai traducendo il codice HTML e l'URL a 78 lingue. Puoi, però, rimuovere il codice HTML:

<string name="car_frx_device_incompatible_sol_message">
         This device doesn\'t support Android Auto.
</string>

Combinare programmi binari nativi con dipendenze comuni

Se la tua app ha implementazioni diverse di Java Native Interface (JNI) con dipendenze sottostanti comuni, i vari file binari stanno aumentando le dimensioni dell'APK con componenti ridondanti. Puoi combinare diversi file binari JNI in un unico file binario JNI, mantenendo separati i file Java e JNI. Questo può ridurre notevolmente le dimensioni dell'APK.