Riduzione dei costi dei dati per miliardi

In alcuni paesi, i piani di dati hanno un costo che può raggiungere il 10% del reddito mensile di un utente tipico. Ciò significa che ridurre a icona le dimensioni del download dell'app e permettere all'utente di controllare in che modo l'app utilizza i dati può avere un vantaggio tangibile e ampio per molti utenti. Ridurre al minimo le dimensioni di download consente anche di risparmiare spazio di archiviazione interna, che è una risorsa scarsa in alcuni dispositivi.

Qui puoi trovare alcune strategie per ottimizzare la quantità di dati utilizzati dalla tua app, sia sulla rete che nella memoria interna.

Ridurre le dimensioni delle app

La riduzione delle dimensioni dell'app è uno dei modi fondamentali per aiutare l'utente a consumare meno dati, sia in termini di dati di rete che di archiviazione interna. Questa sezione descrive diversi approcci per ridurre le dimensioni delle app.

Ridurre le dimensioni delle risorse grafiche APK

  • Le risorse grafiche sono spesso il fattore decisivo nella dimensione dell'APK. L'ottimizzazione di questi elementi può comportare una riduzione dei download e, di conseguenza, tempi di installazione più rapidi per gli utenti.
  • Per le risorse grafiche come le icone, utilizza il formato Scalable Vector Graphics (SVG). Le immagini SVG sono di dimensioni ridotte rispetto alla grafica bitmap e possono essere visualizzate in runtime a qualsiasi risoluzione. La libreria di assistenza Android fornisce un'implementazione compatibile con le versioni precedenti delle risorse vettoriali per Android 2.1 (livello API 7). Inizia a utilizzare i vettori con questo post per il mezzo.
  • Per le immagini non vettoriali, come le foto, utilizza WebP per ridurre i tempi di caricamento delle immagini e risparmiare larghezza di banda di rete. È stato dimostrato che WebP ha dimensioni file ridotte rispetto alle controparti PNG e JPG, con almeno la stessa qualità delle immagini. Anche in condizioni di perdita di dati, WebP può produrre un'immagine quasi identica all'originale. Android include il supporto WebP con perdita da Android 4.0 (livello API 14: Ice Cream Sandwich) e il supporto per WebP senza perdita di dati e trasparente da Android 4.2 (livello API 17: Jelly Bean).
  • Se hai molte immagini di grandi dimensioni in più densità, valuta la possibilità di utilizzare il supporto di più APK per suddividere l'APK in base alla densità. Ciò si traduce in build mirate a specifiche densità, il che significa che gli utenti con dispositivi a bassa densità non dovranno incorrere in penali per il download di asset ad alta densità inutilizzati.
  • Per ulteriori informazioni sulla riduzione delle dimensioni dell'APK, consulta Ridurre le dimensioni dell'APK e Ridurre il codice e le risorse. Inoltre, potete trovare una guida dettagliata su come ridurre le dimensioni degli APK in questa serie di post medi.

Ridurre le dimensioni del codice

  • Ogni libreria nel tuo progetto Android aggiunge codice potenzialmente inutilizzato all'APK. Presta particolare attenzione all'utilizzo di librerie esterne perché non tutte le librerie sono progettate per essere utilizzate nelle app per dispositivi mobili. Assicurati che le librerie utilizzate dalla tua app siano ottimizzate per l'uso mobile.
  • Valuta la possibilità di ottimizzare il codice compilato utilizzando uno strumento come ProGuard. ProGuard identifica il codice non utilizzato e lo rimuove dal tuo APK. Inoltre, abilita il ritiro delle risorse al momento della creazione impostando minifyEnabled=true, shrinkResources=true in build.gradle: verranno automaticamente rimosse le risorse inutilizzate da APK.
  • Quando utilizzi Google Play Services, dovresti selettivamente includere solo le API necessarie nel tuo APK.
  • Per ulteriori informazioni sulla riduzione delle dimensioni del codice nell'APK, consulta il corso di formazione Android su come evitare framework di inserimento di dipendenze.

Consenti il trasferimento di app nello spazio di archiviazione esterno (SD)

  • I dispositivi a basso costo spesso hanno poco spazio di archiviazione sul dispositivo. Gli utenti possono estendere questa funzionalità con le schede SD. Tuttavia, le app devono dichiarare esplicitamente che supportano l'installazione su dispositivi di archiviazione esterna prima che gli utenti possano spostarli.
  • Consenti l'installazione della tua app su unità di archiviazione esterna utilizzando il flag android:installLocation nel file AndroidManifest.xml. Per maggiori informazioni su come consentire il trasferimento della tua app su unità di archiviazione esterna, consulta la guida per Android sulla posizione di installazione dell'app.

Riduci l'utilizzo del disco dell'app post-installazione

  • Se il disco della tua app è esaurito, gli utenti sono meno propensi a disinstallare l'app quando lo spazio libero sul dispositivo è in esaurimento. È importante applicare limiti intorno alle cache: in questo modo l'utilizzo del disco dell'app non aumenta all'infinito. Assicurati di mettere i dati memorizzati nella cache in getCacheDir(): il sistema può eliminare i file inseriti qui secondo necessità, in modo che non vengano mostrati come spazio di archiviazione impegnato nell'app.

Offri l'utilizzo della rete configurabile

La piattaforma Android include diverse modalità per consentire all'utente di controllare l'utilizzo della rete della tua app, ottimizzandolo per le sue esigenze. Ad esempio, al primo utilizzo l'app può fornire agli utenti una serie di impostazioni relative alla rete. Puoi anche fornire una schermata di preferenze di rete dall'esterno dell'app.

Offri esperienze di onboarding per le scelte di rete degli utenti

  • Le app che consentono agli utenti di ridurre l'utilizzo dei dati sono ben accolte, anche quelle con requisiti elevati in termini di dati. Se la tua app utilizza una quantità considerevole di larghezza di banda (ad esempio, app di streaming video), puoi offrire agli utenti un'esperienza di onboarding per configurare l'utilizzo della rete. Ad esempio, potresti consentire all'utente di forzare la riproduzione in streaming dei video con velocità inferiore su reti mobili.
  • Le impostazioni aggiuntive che gli utenti possono utilizzare per controllare la sincronizzazione dei dati, il precaricamento e il comportamento di utilizzo della rete (ad esempio, precaricare tutte le categorie di notizie speciali solo sul Wi-Fi) possono anche aiutare gli utenti a personalizzare il comportamento della tua app in base alle loro esigenze.
  • Per scoprire di più sulla gestione dell'utilizzo della rete, consulta il corso di formazione Android su Gestione dell'utilizzo della rete.

Fornisci una schermata delle preferenze di rete

  • Puoi accedere alle impostazioni della rete dall'esterno dell'app tramite una schermata delle preferenze di rete. Puoi richiamare questa schermata dalla schermata delle impostazioni di sistema o dalla schermata di utilizzo dei dati di sistema.
  • Per fornire una schermata delle preferenze di rete a cui gli utenti possono accedere, sia dall'app che dalle impostazioni di sistema, includi un'attività che supporta l'azione ACTION_MANAGE_NETWORK_USAGE nella tua app.
  • Per ulteriori informazioni sull'aggiunta di una schermata delle preferenze di rete, consulta il corso di formazione Android su Implementare un'attività delle preferenze.

Risorse aggiuntive

Per saperne di più su questo argomento, consulta le seguenti risorse aggiuntive:

Post del blog