¿Por qué mi teléfono Android es tan lento?

No creo que se pueda decir que los teléfonos Android son lentos. Simplemente creo que obtienes lo que pagas. Si compras un buque insignia, entonces las posibilidades de que acabes con un dispositivo lento y acaparador son muy bajas. Dicho esto, algunos teléfonos Android se vuelven lentos y en lugar de centrarse sólo en cómo se vuelven lentos, voy a tratar de enumerar todos los factores, directos o indirectos.

Datos basura

Cuando se desinstala una aplicación, sus archivos temporales y otros datos relacionados no se eliminan con ellos. Esto conduce a una acumulación de datos inútiles con el tiempo que podría ralentizar el teléfono. Las unidades de estado sólido se ralentizan a medida que se llenan, convirtiéndose en una de las principales razones de la ralentización.

VM

Las aplicaciones Android están escritas en Java, por lo que tienen que ejecutarse en una máquina virtual para funcionar en el ecosistema Android (antes era Dalvik, ahora se está cambiando a ART).

Los fabricantes tienden a poner sus propios skins y a modificar algunas de las aplicaciones originales que vienen con el ecosistema Android para, bueno, animar las cosas y hacer que su producto se vea diferente de todos los demás teléfonos Android que hay. Tienden a cargarlo con aplicaciones basura (bloatware) y tampoco se pueden eliminar sin rootear el teléfono. Estas aplicaciones también tienden a estar menos optimizadas que sus homólogas originales. Su piel también tiende a consumir más memoria RAM que la que habría consumido Android de vainilla. Esto es (o solía ser) especialmente evidente en los dispositivos Nexus, que eran considerablemente más rápidos que los teléfonos de otros fabricantes como Samsung, LG y HTC.

Lanzador

A diferencia de iOS, que no tiene un lanzador per se y sólo un cajón de aplicaciones, Android tiene una configuración de inicio ampliamente modificada donde se pueden añadir widgets, iconos, carpetas y, en la mayoría de los casos, también modificar el diseño, las transiciones y la alineación de los iconos en el cajón de aplicaciones. El lanzador se define como una aplicación separada en el ecosistema, esto es una carga constante en la memoria RAM y el procesamiento y los lanzadores suelen tener una alta prioridad para que no tengas que enfrentarte a un redibujado cuando vuelvas a la pantalla de inicio

Servicios

El ecosistema de aplicaciones de Android se construye sobre el hecho de que las aplicaciones deben ser fácilmente capaces de interactuar con otras aplicaciones. Puedes hacer mucho más pulsando el botón de compartir en Android que en iOS. Es necesario que se inicie un servicio cuando haces tal tarea y, por supuesto, todo tiene un precio.

Widgets

Como he dicho antes, los Launchers tienen un lugar constante en la memoria. Con los launchers vienen los widgets que has colocado en ellos. Para cada widget que has colocado en la memoria, hay un servicio de acompañamiento que se ejecuta en segundo plano para mantener el widget actualizado y asegurarse de que los widgets se mantienen receptivos.

Procesos en segundo plano

Las aplicaciones pueden ejecutarse en segundo plano independientemente del hecho de si las iniciaste tú mismo o las cerraste. Las aplicaciones pueden ejecutarse en segundo plano incluso si no las has utilizado durante más de un mes.

Piensa en el escenario en el que has instalado Messenger en tu teléfono, no eres realmente activo en Facebook y nadie te envía mensajes, pero de repente, de la nada, tu amigo perdido hace tiempo te envía un mensaje en Facebook y todavía recibes una notificación en tu teléfono. ¿Cómo ocurre esto? Es porque Messenger siempre se ejecuta en tu teléfono y seguirá así, a menos que lo cierres a la fuerza. Cuantos más procesos en segundo plano tenga tu teléfono, más lento será. Puedes ver fácilmente la cantidad de procesos en segundo plano en tu teléfono entrando en la sección 'En ejecución' de los Ajustes de la aplicación. Podría haber puesto los Launchers y Widgets bajo esta sección, pero sentí que necesitaban una mención especial.

Prioridades

Hay varias características de una aplicación a las que se les tiene que asignar una prioridad específica, como la prioridad de la aplicación de la RAM, la notificación y una plétora de otras cosas. Sin embargo, debido a la codificación irresponsable de algunos desarrolladores, algunas aplicaciones ocupan una prioridad más alta de lo que se requiere de ellas.

Matando la base de desarrolladores

Android Studio, el IDE(Integrated Development Environment) con el que se pueden crear aplicaciones Android es una herramienta gratuita junto con todas las demás herramientas que se proporcionan para el desarrollo de una aplicación básica de Android. Sólo hay que pagar una cuota única de 25 $ para publicar una aplicación en Play store, en comparación con una cuota de 99 $ al año para Apple. Para muchos desarrolladores de aplicaciones (incluyéndome a mí), desarrollar en Android es la forma de gastar menos dinero y poder llegar a una mayor base de usuarios. Esto, obviamente (en la mayoría de los casos), conduce a una codificación no estándar de la industria que lleva a las aplicaciones a utilizar más memoria de la necesaria, a no matarse correctamente, a crear memoria innecesaria, etc. Incluso las aplicaciones creadas por las grandes empresas no están haciendo algunos de estos procesos mencionados correctamente.