Un'esperienza utente ottimale è fondamentale per la missione di Android e per mantenere la promessa di offrire dispositivi veloci, reattivi e affidabili. Ecco perché l'ottimizzazione della memoria è più importante che mai. In tutto l'ecosistema, i nuovi dispositivi mantengono o addirittura riducono la capacità di memoria fisica in risposta agli aumenti di prezzo della memoria, ma gli utenti continuano ad aspettarsi la stessa esperienza fluida e ad alte prestazioni delle app.
In Android 17, abbiamo introdotto limiti di memoria per app, a partire dai dispositivi Pixel, per contribuire a proteggere l'esperienza utente complessiva dalle applicazioni che utilizzano memoria in eccesso e causano rallentamenti a livello di sistema. Nel corso del prossimo anno, un numero crescente di produttori sfrutterà i limiti di memoria per app di Android nel proprio portafoglio di configurazioni di RAM dei dispositivi, dai dispositivi con 4 GB a quelli con 16 GB e oltre. Se la tua app supera questi limiti, verrà rallentata e potrebbe essere terminata. L'ottimizzazione del footprint della memoria dell'app è essenziale per evitare la limitazione del sistema operativo e mantenere un'esperienza utente fluida.
In questo post, esamineremo come funzionano questi limiti, come misurare il footprint della memoria utilizzando le nuove metriche Android vitals e i passaggi pratici per ottimizzare la tua app o il tuo gioco.
Informazioni sui limiti di memoria
Quando la tua app supera il budget di memoria, Android adotta misure progressive per proteggere la reattività del dispositivo:
- Scambio zRAM: se la tua app raggiunge il limite allocato, il sistema forza le pagine dell'app in zRAM (RAM compressa). Sebbene zRAM impedisca l'espulsione immediata, la compressione e la decompressione delle pagine aggiungono un sovraccarico della CPU, che può causare un evidente rallentamento dell'esperienza utente.
- Terminazione del processo: se l'app continua ad aumentare la memoria utilizzata oltre la soglia di zRAM, verrà terminata dal sistema. Per determinare se la sessione dell'app è stata interessata da questi vincoli sul campo, puoi chiamare
getDescription()entroApplicationExitInfo. Se il sistema ha applicato un limite, il motivo dell'uscita viene segnalato comeREASON_OTHERe la stringa di descrizione conterrà "MemoryLimiter:AnonSwap". Puoi anche sfruttare la profilazione basata su trigger utilizzandoTRIGGER_TYPE_ANOMALYper acquisire automaticamente i dump dell'heap quando viene raggiunto il limite di memoria.
Per scoprire di più sui limiti di memoria per app e sull'applicazione del sistema, consulta la documentazione sui limiti di memoria delle app di Android 17. Per testare l'applicazione su diverse configurazioni del dispositivo, utilizza i comandi adb Memory Limiter.
Monitoraggio e diagnosi dei problemi di memoria
Non puoi ottimizzare ciò che non puoi misurare. L'identificazione di perdite di memoria, allocazioni heap eccessive e arresti anomali per memoria insufficiente (OOM) nell'ecosistema Android richiede l'utilizzo di strumenti di monitoraggio complementari:
- Stato a livello macro con Android vitals:per una visibilità ampia a livello di popolazione senza sovraccarico aggiuntivo, Android vitals di Google Play Console fornisce metriche essenziali come Memoria utilizzata (RSS anonimo + swap) e Memoria utilizzata dalla bitmap. In questo modo, puoi avere un'istantanea chiara della distribuzione della memoria nei diversi stati del processo (in primo piano, in background, servizi percepiti dall'utente e memorizzati nella cache) e negli intervalli di classi RAM, il che ti aiuta a individuare i valori anomali della memoria.
- Uscite di Memory Limiter e monitoraggio degli errori OutOfMemory con Firebase Crashlytics:per rimanere informato sul grave degrado della memoria prima che influisca sulle tue metriche chiave, Crashlytics versione 20.1.0 introduce dati di debug aggiuntivi per aiutarti a rilevare, dare la priorità e correggere le eccezioni OutOfMemory e le interruzioni di Memory Limiter. Il monitoraggio di questi eventi insieme ai log personalizzati e ai metadati coppia chiave-valore ti fornisce un contesto immediato sullo stato del processo quando si verifica un errore di memoria.
- Tracce sul campo con ProfilingManager:per i team in grado di gestire un framework di osservabilità delle prestazioni, l'API
ProfilingManagerintrodotta in Android 15 (livello API 35) consente alla tua app di richiedere e raccogliere in modo programmatico artefatti di debug della memoria dettagliati, come dump dell'heap Java e profili dell'heap, direttamente dai dispositivi di produzione. Puoi anche attivare l'acquisizione di dump dell'heap in base a indicatori di sistema specifici, ad esempioTRIGGER_TYPE_OOMeTRIGGER_TYPE_ANOMALY.
Per saperne di più su altre tecniche di monitoraggio della memoria, leggi la nostra documentazione.
Riepilogo e prossimi passi
Con l'ampliamento dei limiti di memoria per app in tutte le classi di RAM, è il momento di controllare il footprint della memoria:
- Dai la priorità alle ottimizzazioni della memoria: impedisci che la tua app sia interessata dai limiti di memoria delle app utilizzando le best practice.
- Monitora l'utilizzo della memoria: monitora il comportamento della memoria della tua app per rilevare e risolvere comportamenti anomali.
- Ottimizza il gioco: segui le indicazioni più recenti per i giochi e le app multimediali complesse per massimizzare il risparmio di memoria negli stati di elaborazione.
Risorse e riferimenti utili
- Modifiche al comportamento di Android 17: Limiti di memoria delle app
- Android Vitals: Memoria utilizzata (metrica RSS + swap) e Memoria utilizzata dalla bitmap
- Blog per sviluppatori Android: Prioritizing memory efficiency steps for Android 17
- Guida per gli sviluppatori: Gestire la memoria dell'app
-
Novità sul prodottoOggi rilasciamo Android 17 e lo rendiamo disponibile sulla maggior parte dei dispositivi Pixel supportati. Nei prossimi mesi saranno disponibili nuovi dispositivi con Android 17.
Matthew McCullough • Lettura di 13 minuti -
Novità sul prodottoA Google I/O 2026, abbiamo mostrato come gli ultimi progressi nell'ecosistema Android possono aiutarti a migliorare la qualità della tua app e massimizzare l'efficienza dello sviluppo.
Ataul Munim • Lettura di 3 minuti -
Novità sul prodottoUn pilastro dell'ecosistema Android è il nostro impegno condiviso per la fiducia degli utenti. Con l'evoluzione del panorama mobile, si è evoluto anche il nostro approccio alla protezione delle informazioni sensibili.
Robert Clifford • Lettura di 3 minuti
Ricevi gli ultimi approfondimenti sullo sviluppo per Android direttamente nella tua casella di posta ogni settimana.