3 votos

Android de serie siempre utiliza el 100% de la memoria física. Cómo liberarla con ADB?

Tengo un teléfono no rooteado. Acabo de darme cuenta de por qué Android es malo en la gestión de memoria. Estoy monitoreando el progreso de ejecución en ADB shell con top . Veo que la memoria está usada al 100%.

Imagen redimensionada. Haga clic para ver la imagen completa

¿Cómo puedo detener procesos innecesarios con ADB shell?

Además, no puedo desplazarme hacia abajo top mando. Muestra caracteres extraños ^[[b . Creo que es porque el shell utiliza sh en lugar de bash .

¿Alguna idea de cómo liberar memoria con ADB? Tal vez pkill o qué.

8voto

pr0nin Puntos 353

La gestión de memoria de Android funciona de forma diferente a los sistemas operativos tradicionales. El principio fundamental es mantener las aplicaciones en la RAM aunque no se utilicen en ese momento, ya que el sistema operativo nunca sabe cuándo el usuario vuelve a esa aplicación o ésta se activa en segundo plano por otros motivos (por ejemplo, si recibe un mensaje push). Por lo tanto, las aplicaciones se mantienen en la RAM a menos que otra aplicación realmente necesite esa RAM.

Desde la perspectiva de Android, tener RAM libre significa que la RAM no se utiliza y, por tanto, se desperdicia.

Esto se debe a que cuando una aplicación ha sido eliminada de la RAM, necesita ser cargada desde flash y luego realizar la fase de arranque. Esto siempre será más lento y consumirá más recursos de la CPU (-> más uso de la batería) que simplemente cambiar a una app que ya está cargada y presente en la RAM.

Sin embargo, la RAM siempre consume la misma batería, independientemente de si está libre o usada.

Si el sistema operativo Android necesita RAM, entonces simplemente cierra o mata la aplicación más antigua que no se utiliza (no estoy seguro de cómo la gestión de RAM del sistema operativo decide qué aplicación salir). Todas las aplicaciones de Android tienen que ser implementadas para ser resistentes a esta salida fuera de memoria. En detalle, el sistema operativo Android primero enviará una notificación a una aplicación que ha seleccionado para ser abandonada. Si una aplicación recibe esta notificación, tiene un periodo de tiempo muy pequeño para hacer limpieza. Si la aplicación no responde en un tiempo determinado, Android simplemente matará el proceso de la aplicación y así recuperará la RAM necesaria.

Como puedes ver, tener un sistema con unos 60-100 MB de RAM libre es lo normal en Android.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X