Memoria di Android

Le pagine seguenti forniscono informazioni su come migliorare l'utilizzo della memoria da parte della tua app.

Indicazioni generali sulla memoria

Panoramica della memoria
Spiega l'architettura di base della memoria Android, i vincoli della RAM e come il sistema operativo bilancia i processi utilizzando Low Memory Killer (LMK).
Gestione della memoria
Descrive le best practice per gli sviluppatori per il rilascio di risorse nei cicli di vita dei componenti, evitando perdite e gestendo la memoria durante la transizione tra gli stati del processo.
Informazioni sulla memoria Android e risoluzione dei problemi
Fornisce una panoramica completa dell'architettura della memoria di Android, degli strumenti disponibili per l'analisi e di esercizi pratici per aiutarti a identificare e risolvere i problemi relativi alla memoria.
Impostare budget di memoria per le app
Spiega come dichiarare e gestire i budget di memoria delle applicazioni per ridurre l'utilizzo della memoria al working set attivo della tua app.

Ottimizzazioni specifiche per area

Panoramica della memoria dei giochi
Descrive in dettaglio la gestione del budget di memoria, la gestione dell'allocazione nativa e le indicazioni per la gestione degli asset grafici personalizzate in modo specifico per le app che utilizzano motori di gioco.
Ottimizzazione delle immagini bitmap
Mostra come dimensionare, decodificare e memorizzare nella cache gli asset bitmap in modo efficiente all'interno delle librerie di immagini.
Gestire e diagnosticare la memoria WebView
Spiega il modello di memoria multiprocesso di WebView, descrive come gestire correttamente il suo ciclo di vita per evitare perdite e fornisce flussi di lavoro pratici per diagnosticare i problemi di memoria.
Ottimizzazione del codice R8
Spiega come utilizzare R8 per ridurre le dimensioni dell'APK, l'overhead dei metadati e il consumo di memoria di runtime.

Strumenti di debug della memoria locale

Strumenti di Android Studio
Fornisce flussi di lavoro di ispezione dell'heap in tempo reale, monitoraggio dell'allocazione della memoria e rilevamento delle perdite direttamente all'interno dell'IDE.
Perfetto Heap Dump Explorer
Offre un'analisi visiva approfondita dei dump dell'heap nativi e Java o Kotlin per isolare gli alberi di oggetti conservati e le allocazioni di memoria anonima.
Acquisire una traccia di sistema sul dispositivo
Mostra come registrare tracce a livello di sistema sul dispositivo per risolvere i bug relativi alle prestazioni della tua app.
Eseguire il debug della memoria utilizzata su Android
Spiega come comprendere la gestione della memoria di Linux e utilizzare strumenti come dumpsys meminfo, Perfetto, profili heap nativi e dump dell'heap per monitorare l'utilizzo della memoria e identificare le perdite.

Strumenti di memoria a livello di produzione

Android vitals: Memoria utilizzata (RSS anonimo + swap)
Android vitals mostra l'utilizzo della memoria di produzione della tua app suddiviso per stati del processo servizio in primo piano, servizio in primo piano e servizio in background.
Android vitals: memoria utilizzata dalle bitmap
Android vitals fornisce metriche sull'impronta della memoria bitmap di un'app aggregando i dati dei dispositivi Android.
Android vitals: ottimizzazione del codice DEX
Android vitals può avvisarti quando i livelli di ottimizzazione del codice DEX della tua app sono bassi. Sono inclusi l'offuscamento, la riduzione e l'ottimizzazione per app e giochi che utilizzano R8.
Crashlytics 20.1.0
Mostra eccezioni di esaurimento della memoria (OOM) e interruzioni del limitatore di memoria con contesto diagnostico per dare la priorità e correggere gli arresti anomali sul campo.
ProfilingManager
API avanzata che consente alle app di raccogliere e caricare in modo programmatico dump dell'heap e profili dell'heap di produzione dalle sessioni utente attive.

Risorse aggiuntive

Per saperne di più sulla memoria, consulta le seguenti risorse aggiuntive:

Post del blog

Video