Memoria de Android

En las siguientes páginas, se proporciona información para mejorar el uso de memoria de tu app.

Guía general sobre la memoria

Descripción general de la memoria
Se explica la arquitectura de memoria principal de Android, las restricciones de RAM y cómo el sistema operativo equilibra los procesos con el optimizador de poca memoria (LMK).
Administración de la memoria
Se describen las prácticas recomendadas para desarrolladores para liberar recursos en los ciclos de vida de los componentes, evitar pérdidas y administrar la memoria cuando se realiza la transición entre los estados de los procesos.
Información y solución de problemas de la memoria de Android
Se proporciona una descripción general completa de la arquitectura de memoria de Android, las herramientas disponibles para el análisis y ejercicios prácticos para ayudarte a identificar y resolver problemas relacionados con la memoria.

Optimizaciones específicas del área

Descripción general de la memoria de juegos
Se detallan la asignación de memoria, el manejo de la asignación nativa y la guía de administración de recursos gráficos diseñados específicamente para apps que usan motores de juegos.
Cómo optimizar imágenes de mapa de bits
Se muestra cómo dimensionar, decodificar y almacenar en caché recursos de mapa de bits de manera eficiente en las bibliotecas de imágenes.
Cómo administrar y diagnosticar la memoria de WebView
Se explica el modelo de memoria de varios procesos de WebView, se describe cómo administrar correctamente su ciclo de vida para evitar pérdidas y se proporcionan flujos de trabajo prácticos para diagnosticar problemas de memoria.
Optimización de código R8
Se explica cómo aprovechar R8 para reducir el tamaño del APK, la sobrecarga de metadatos y el consumo de memoria en el tiempo de ejecución.

Herramientas de depuración de memoria local

Herramientas de Android Studio
Proporciona inspección de montón en tiempo real, seguimiento de asignación de memoria y flujos de trabajo de detección de pérdidas directamente en el IDE.
Explorador de volcados de montón de Perfetto
Ofrece un análisis visual detallado de los volcados de montón nativos y de Java/Kotlin para aislar los árboles de objetos retenidos y las asignaciones de memoria anónimas.
Cómo capturar un registro del sistema en el dispositivo
Se muestra cómo registrar registros a nivel del sistema en el dispositivo para abordar errores relacionados con el rendimiento en tu app.
Cómo depurar el uso de memoria en Android
Se enseña a comprender la administración de memoria de Linux y a usar herramientas como dumpsys meminfo, Perfetto, perfiles de montón nativos y volcados de montón para hacer un seguimiento del uso de memoria y detectar pérdidas.

Herramientas de memoria a nivel de producción

Android vitals: Uso de memoria (RSS anónimo + intercambio)
Android vitals comparte el uso de memoria de producción de tu app desglosado por los estados de proceso en primer plano, servicio en primer plano y servicio en segundo plano.
Android vitals: Uso de memoria de mapa de bits
Android vitals proporciona métricas sobre el espacio en memoria de mapa de bits de una app mediante la agregación de datos de dispositivos Android.
Android vitals: Optimización de código DEX
Android vitals puede alertarte cuando los niveles de optimización de código DEX de tu app son bajos. Esto incluye la ofuscación, la reducción y la optimización para apps y juegos que usan R8.
Crashlytics
Muestra excepciones de memoria insuficiente (OOM) de producción y cierres de limitadores de memoria con contexto de diagnóstico para priorizar y corregir fallas de campo.
ProfilingManager
Es una API avanzada que permite que las apps recopilen y suban de forma programática volcados de montón y perfiles de montón de producción de sesiones de usuarios en vivo.

Recursos adicionales

Entradas de blog

Videos

Cómo diseñar apps para Android con un buen rendimiento de memoria