Mejorar el rendimiento de Android modificando el manejo de memoria RAM
Nota: a pesar que este hack sea seguro, no me hago responsable que tu Android se convierta en un hermoso pisapapeles o explote en mil pedazos. Para aplicar este hack debes tener acceso root en Android.
A diferencia del iPhone OS, Android es un sistema operativo multitarea, lo que implica que puede haber varias aplicaciones y procesos ejecutándose al mismo tiempo. Si utilizan Android habrán notado que a medida que abren y cierran aplicaciones la interfaz se puede ralentizar. Uno de los motivos es que ciertas aplicaciones no tienen una opción para que las cerremos explícitamente y quedan corriendo en segundo plano hasta que Android decida matarlas para liberar RAM. Esto es molesto ya que obliga a los usuarios a instalar aplicaciones que permitan finalizar manualmente estos procesos “colgados” para que el rendimiento del celular no decaiga.
El tema reside en cómo Android gestiona la memoria RAM. Mientras haya disponible memoria RAM, Android hará lo posible por mantener dichas aplicaciones y procesos en ella. Si en algún momento iniciamos una aplicación y Android detecta que sólo hay disponible cierta cantidad de RAM, procederá a matar algún proceso o aplicación que esté residente en memoria en base a ciertos parámetros y un algoritmo.
La explicación sencilla de como Android decide matar los procesos se basa en que existen 6 niveles de procesos (1-primer plano, 2-visible, 3-segundo plano, 4-oculto, 5-proveedor de contenidos y 6-vacío) que determina la importancia de cada uno al momento de decidir si matarlo o no. Los de nivel 1 son las más importantes y los de nivel 6 son los primeros que se pueden terminar. Además para cada uno de estos niveles hay un límite mínimo de memoria a partir del cual Android comenzará a matar procesos de dicho nivel. Por ejemplo, podemos especificar que las aplicaciones o procesor de nivel 6 se deben empezar a liberar cuando haya menos de 26MB de RAM libres.
Para ver los valores que por defecto trae Android ejecuten el siguiente comando desde una terminal en Android. Pueden usar la aplicación “Better Terminal” o “Terminal Emulator”:
# cat /sys/module/lowmemorykiller/parameters/minfree
Con lo que obtendrán los valores de páginas 1536,2048,4096,5120,5632,6144 que corresponde a los niveles 1,2,3,4,5,6
Gracias a la apertura de Android, podemos modificar estos parámetros y jugar con ellos hasta obtener el mejor rendimiento para nuestro celular. Estos parámetros se especifican en el archivo /sys/module/lowmemorykiller/parameters/minfree y los valores corresponden a páginas. Como 1 página = 4KB, entonces un valor de 6656 equivale a 26MB (6656*4/1024). Tomando como referencia los valores por defecto del HTC Magic “1536,2048,4096,5120,5632,6144″, creo que son demasiados permisivos y hacen que queden muchas aplicaciones en memoria consumiendo recursos. Por lo tanto, podemos modificarlos para que Android adopte una postura más agresiva en cuanto al cierre de aplicaciones que no usamos.
Para conocer que valores aplicar, me basé en la memoria libre promedio del Magic, que durante varios meses noté que estaba entre 26-30MB. Pueden saber cuanta memoria tienen libre ejecutando el comando cat /proc/meminfo. Allí sumen los valores de los campos MemFree y Cached para obtener el total de RAM disponible para aplicaciones.
Por lo tanto decidí probar con los siguientes valores “1536,2048,4096,6144,6656,7168″ y la mejora en el rendimiento fue notoria. Las aplicaciones se abren y cierran mucho más rápido, y el desplazamiento por la interfaz es mucho más fluído. Al volver a Home desde una aplicación, sobre todo el navegador que suele consumir bastante memoria, no estoy 2 horas esperando que me muestre los iconos.
Para probar y aplicar temporalmente los nuevos valores deben ejecutar el siguiente comando:
# su echo "1536,2048,4096,6144,6656,7168" > /sys/module/lowmemorykiller/parameters/minfree
Tengan presente que al reiniciar el teléfono perderán este cambio, por lo tanto no tienen nada de que preocuparse si meten la pata o si no quieren mantenerlo.
Finalmente, una vez que encontraron los valores adecuados para su modelo de celular en particular, existen aplicaciones en el Android Market que nos permiten establecer estos valores de manera permanente.
AutoKiller

Auto Memory Manager

MinFreeManager

Si quieren leer la explicación detallada acerca del gestor interno de baja memoria de Android pueden leer este post en xda-developers.
Me olvidaba! Lo mejor de esto es que se pueden olvidar para siempre de los “task killers” para Android.
Si te gustó el post, podés dejar tu comentario o suscribirte al feed para recibir los últimos artículos en tu email.
Comentarios
Ningún comentario.
Deja tu comentario