Android Lento: Solución de Raíz, Fácil y Sin Usar Trucos

Android Lento: Solución de Raíz, Fácil y Sin Usar Trucos

El tema de cómo solucionar un Android lento podría extenderse por horas, con cientos de soluciones que van desde la instalación de launchers livianos hasta la restauración de fábrica. Y no es que no sean soluciones válidas, pero son mitigaciones o -como a nosotros, los programadores, nos gusta decirles- workarounds. ¿Qué significa esto? Que al corto o mediano plazo (más corto que mediano) los problemas reaparecen, traduciéndose nuevamente en un Android lento. En este artículo prefiero enfocarme más en cómo identificar el problema y solucionarlo de raíz, es decir, eliminando las aplicaciones que generan dicha lentitud. “No es ninguna novedad” o “no es ningún truco” podrán decirme, entonces yo les diré que los problemas de rendimiento en un teléfono no envuelven ningún misterio qué resolver. Empecemos por el principio.

Un Smartphone es una computadora de bolsillo

Conceptual y arquitecturalmente, los teléfonos inteligentes (o smartphones) y las computadoras de escritorio son iguales. Ambos constan de: una unidad de almacenamiento de datos, una memoria de lectoescritura rápida (RAM) y una unidad de procesamiento central (CPU).

Siendo que las RAM están empezando a desaparecer como concepto separado debido a la integración dentro de la misma unidad de almacenamiento (que hoy por hoy funcionan casi a la misma velocidad), podemos desprender que el rendimiento de todo dispositivo se centra en la óptima utilización de estos 2 elementos: proceso y almacenamiento/lectura de la información. Los más entendidos podrán refutar y decir “no, te estás olvidando de otras cosas como la memoria y procesamiento individual de video”, y están arquitecturalmente en lo cierto, pero conceptualmente es lo mismo, sólo que a otro nivel: procesamiento y memoria. Aclarado esto, podemos concluir que nuestro smartphone funcionará tan rápido como la cantidad de información en simultáneo que pueda procesar.

El rol del sistema operativo en un Android lento

El sistema operativo no es más que un conjunto de aplicaciones que controlan e interactúan con todas las funciones del hardware (CPU, memoria, cámara, sensores, audio, video, etc). Hay un proceso central que funciona todo el tiempo, y es el que comunica y traduce las acciones del hardware al resto de las aplicaciones, y viceversa. En una analogía, sería el traductor y representante entre el presidente de China y el de Argentina. Si China fuese el hardware y Argentina el software, sin este traductor (que habla ambos idiomas) ninguno de los dos se entendería ni podría negociar.

¡Demasiadas aplicaciones en memoria!

Pero momento… esto significa que si hay muchas aplicaciones corriendo en simultáneo todo el tiempo, sumado a las que yo instalo… 1+2+10 «murmuro»… ¡Sí, son demasiadas cosas que atender! Y he aquí la primer ley y premisa del “no secreto”: no se pueden desinstalar la mayoría de las aplicaciones que más memoria y procesamiento consumen, ergo las del propio sistema operativo. Seguramente a todos les ha ocurrido de comprar un nuevo smartphone con 1 grandioso GB de memoria (donde para nosotros, los de la vieja escuela, 32 MB eran más que suficientes para correr propiamente Windows 98) para luego descurbrir en la pantalla de estado del sistema que sólo nos quedan 100 MB disponibles para usar entre RAM y almacenamiento de aplicaciones. Es decir, podemos instalar Whatsapp, Facebook Lite, y un juego liviano. Si queremos más, habrá que sacrificar el juego o Facebook.

Comprender esto es La clave para entender la diferencia entre los smartphones de gama baja, media y alta. Este es el principal “problema” de los smartphones de gama baja e incluso media, donde poco se puede hacer para dar con una certera solución a un Android lento.

Instalación de aplicaciones auxiliares: NO

Si buscamos en Google Play cosas como “memory cleaner”, “ram optimizer”, etc, encontraremos decenas (o cientos) de apps populares diseñadas para combatir el espacio sucio en memoria.

El espacio sucio en memoria, AKA el espacio reservado no utilizado

¿Qué es este espacio sucio? Cuando una aplicación inicia, el sistema operativo almacena cierta información en espacios reservados de memoria para facilitar el acceso y manipulación de la misma, ya que sino tendría que estar buscando y leyendo información en la unidad de almacenamiento todo el tiempo, lo cual sería un proceso por demás lento. A estos datos almacenados en memoria se les llama caché de memoria, y si bien el sistema operativo cuenta con un proceso que limpia estos datos para liberar memoria una vez que la aplicación “termina” (en realidad no terminan, sino que pasan a segundo plano o background), esto puede implicar que pasen varios minutos hasta que se determine que la aplicación debe ser finalizada.

Garbage collector al rescate

¿No se puede cerrar inmediatamente una aplicación luego de ser puesta en background? ¿Por qué esperar tanto? Porque si cambiamos entre aplicaciones (Ej.: estamos jugando al ajedrez en Lichess y recibimos un email, por lo que abrimos Gmail para leerlo) el sistema tiene que preservar a ambas en memoria para que al volver a la aplicación anterior podamos retomar desde donde habíamos dejado (o me estaría cortando el juego a la mitad). Entonces este proceso limpiador del sistema (conocido como garbage collector) espera un tiempo prudencial (varios minutos) para determinar si el usuario terminó de usar una aplicación en cuestión y puede finalizarla y liberar la memoria.

Si cambiamos entre 3 o 4 aplicaciones, el sistema operativo las acumulará una a una en memoria hasta agotarla. Luego de agotarla, empezará quitando la menos usada para darle lugar a la más nueva (ya que no puede abrir una aplicación sin disponer de esta memoria). En el caso de las computadoras de escritorio, cuando la memoria se agota se hace uso del espacio en disco (la famosa SWAP o espacio/memoria de intercambio).

La solución engañosa de las apps limpiadoras de memoria

El fin de explicar este proceso es que sepamos qué hacen estas aplicaciones auxiliares, que no hacen otra cosa más que acelerar dicho proceso. En otras palabras, finalizan y barren de la memoria todas las aplicaciones en background, y muchas veces también las que NO DEBEN ser barridas ya que son procesos de sistema. Por lo general, el sistema conoce qué aplicaciones se necesitan para funcionar y las vuelve a abrir inmediatamente o al rato (cuando ocurre algún evento que involucra a ese proceso cerrado, como puede ser una notificación push, el GPS o el giroscopio), por lo que esa sensación de memoria liberada no es más que un engaño, un placebo al usuario que piensa que ahora dispone no de 100 MB sino de 200 MB de RAM disponibles.

Por otro lado, estas aplicaciones quedan ocupando un espacio en memoria, por lo que no sólo no resuelven el problema sino que lo intensifican. Es decir, para que estas aplicaciones hagan su trabajo, necesitan quedar residentes en memoria o al menos ocupar un espacio al abrirla, algo que no se libera sino hasta que el propio garbage collector lo hace (ellas no se finalizan a sí mismas por obvias razones). Entonces, mi consejo es: NO INSTALEN aplicaciones para liberar memoria, la velocidad recuperada en un Android lento es totalmente superflua.

Tengo la app de Facebook… ¿Eso hace a Android lento?

Sí, definitivamente intensifica o provoca un Android lento. Todas las aplicaciones hacen uso de distintas funciones del hardware de nuestro smartphone: GPS para la ubicación, cámara, sensores de movimiento, luces, audio, etc. Cada una conlleva un precio a pagar: procesador, memoria o espacio de almacenamiento, lo que se traduce en consecuencias como uso excesivo de batería, red de datos (internet), etc.

Si instalo WhatsApp, la idea es que el teléfono me avise cuando alguien me escriba. Para que ello ocurra, WhatsApp debe quedar ocupando un lugar especial en memoria y haciendo uso del procesador para manejar internamente dicho evento. Nota: esto no es exactamente así, pero no quiero ponerme demasiado técnico tampoco ya que la idea es transmitir el concepto de forma general.

Más recursos solicitados = más memoria, procesador y batería necesitados

Por otra parte, si abrimos una app que hace uso del GPS, el smartphone tendrá que activar el hardware y la aplicación de control correspondiente (procesos independientes), y es por ello que notarán que puede que tarde un poco en determinar la ubicación actual. La consecuencia es haber abierto otras aplicaciones que ahora están ocupando más espacio en memoria, haber usado más batería por activar el hardware del GPS, y haber consumido datos de la red para ayudar a determinar la ubicación, gastando aún más batería para el hardware de wifi y activando más procesos para controlar dicho hardware.

Como verán, un simple feature en una app puede desencadenar la apertura de muchas otras aplicaciones y procesos, consumiendo excesiva memoria, batería y procesador, afectando el rendimiento general del sistema. No es casualidad que haya una app “Facebook Lite” debido a la catarata de críticas recibidas en la versión full de la app, que es prácticamente una “esponja” de recursos.

Apps vs Browser: ¿Necesito realmente una app instalada en mi smartphone?

“OK, ya entendí, desinstalo Facebook e instalo Facebook Lite. ¿Qué más?”. ¿What? ¡No! Facebook Lite consume menos pero también consume. En vez de instalar una app, ¿Por qué no usar Facebook desde el navegador Chrome? ¿Necesito de la constante notificación de likes, comentarios y respuestas en la bandeja de mi smartphone? Si tu respuesta es NO, entonces no tenés motivo para desperdiciar espacio y memoria instalando algo en tu teléfono, ya que la web mobile te ofrece lo mismo a costo cero (en recursos permanentes, claro). Bien, una app menos… ¿Con cuántas será suficiente? ¿Cómo sé cuál consume más recursos que las otras?

Al punto: Determinar y desinstalar las aplicaciones que hacen a Android lento

Bien, empecemos por el principio. Determinemos qué aplicaciones nos afectan al rendimiento más que otras. No estoy seguro de que estos pasos sean los más óptimos para todas las versiones de Android, ya que recuerdo que en versiones anteriores a Android 8 se podía acceder de forma más directa desde el mismo menú de configuración. Sin embargo, y gracias a que esta opción está disponible desde hace mucho tiempo, este método sirve para casi todas las versiones modernas de Android (4.4 en adelante, cuanto menos).

Activar el modo desarrollador en Android

El modo desarrollador en Android permite visualizar un grupo adicional e interesante de opciones que no están disponibles para todos los usuarios. Son mayormente “flags” (estados de “activado/desactivado”) que controlan algunas de las funciones internas del sistema operativo, e influyen directamente sobre la capa de control más cercana al núcleo. Estas opciones son particularmente útiles para quienes programamos, ya que podemos experimentar y ver exactamente cómo impactan nuestras aplicaciones dentro del sistema operativo, a la vez nos permite visualizar los errores de una forma más específica.

Para activar el modo desarrollador en Android 8.1

Determinando la memoria (RAM) que utilizan las aplicaciones

Los siguientes pasos detallan cómo obtener estadísticas de la memoria que utilizan las aplicaciones instaladas, y cómo ver las aplicaciones actualmente en ejecución. La primer opción es útil para determinar cómo se comportan las aplicaciones a lo largo del tiempo. La segunda opción sirve para determinar la actividad actual de las aplicaciones y cuánto consumen tanto en la memoria actual como la memoria reservada (previo a ser desechadas por el garbage collector).

Estadísticas de uso de memoria de las aplicaciones

En la última imagen podrán apreciar algo que mencioné más arriba: las aplicaciones más pesadas, que más memoria consumen y que no pueden eliminarse son las del sistema. Por lo general, le sigue Chrome, algo de lo que tampoco podemos prescindir.

En el selector de tiempo, recomiendo seleccionar “1 día” para tener un mejor panorama de qué aplicaciones consumieron más memoria durante el día.

Uso actual de memoria de las aplicaciones

Parecido a lo anteriormente comentado, las aplicaciones que más espacio en memoria ocupan (o cuya imagen de caché es elevada dado que se usa muy seguido) son las del sistema.

Conclusión final

Tómense un tiempo analizando las aplicaciones, cuánto usan realmente cada una y si es realmente necesario tenerlas instaladas. Pueden intentar soluciones alternativas como deshabilitar el uso de animaciones, cambiar el launcher, borrar cachés, etc., pero (en mi opinión) no son más que mitigaciones endebles y no están destinadas a perdurar en el tiempo. Si realmente necesitan velocidad, ya sea para juegos o aplicaciones potentes, no habrá más alternativa que cambiar el smartphone por uno más actual. Si son especialistas en el tema, pueden probar instalando una versión de Android más antigua (hay que determinar la imagen del sistema operativo original para ese dispositivo, previo a descargar actualizaciones) y que consuma menos recursos, aunque no lo recomiendo (mucho ruido y pocas nueces). También pueden optar por decisiones más drásticas como hacer un factory reset (restauración de fábrica) llegado el caso en que no puedan determinar la causa de excesiva lentitud.

Enlaces de interés

¿Te pareció útil el artículo? ¡Dejanos tu opinión!

Soy Director de Tecnología y Co-Fundador en iMaat. Desarrollador web de alma, usualmente contribuyo en proyectos abiertos y el mundo del open source en general. Me gustan el ajedrez y los deportes extremos tales como mirar series en Netflix y pasear por el parque los fines de semana. https://www.linkedin.com/in/lucianofantuzzi/

2 comentarios

  • Muy buen articulo, tengo tres aplicaciones instaladas para ahorrar memoria, batería y que me limpian el celular constantemente… No sabía que era peor el “remedio” que la enfermedad!..

    Paula Barle Responder
    • Efectivamente, son soluciones temporales o “paleativos”, por decirles de alguna forma. Si tenés 3 es peor, porque “luchan” por tomar el control al mismo tiempo, es decir, cuando consideran que la memoria necesita ser liberada. Entonces puede ocurrir que se disparen una detrás de otra, ocasionando que el teléfono se vuelva inusable por algunos momentos.

      Luciano Fantuzzi Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *