¿Por qué los teléfonos Android se retrasan tanto a pesar de tener mucha RAM?

Puede haber algunas explicaciones … especialmente porque no ha mencionado específicamente dónde ve el retraso. Supongo que es el retraso de la interfaz de usuario, la tendencia de las cosas de la interfaz de usuario a “tartamudear” un poco. Esto puede ser un poco técnico, pero intentaré que sea lo más simple posible.

Configure la máquina de retroceso en 1985

Curiosamente, me tomó mucho, mucho tiempo acostumbrarme a lo mismo en Windows. Tal vez no sea tan obvio en estos días en nuestras máquinas grandes, pero Windows tenía un retraso de UI absolutamente atroz … particularmente para una persona como yo que venía de AmigaOS.

Para aquellos que no saben, AmigaOS fue el sistema operativo de la serie de computadoras personales Commodore Amiga. En 1985, teníamos una interfaz de usuario realmente rápida que se ejecutaba en un procesador 68000 de 7.16MHz en tan solo 256K RAM. Con multitarea? Usted podría preguntar, ¿cómo podría ser eso?

Aquí está el truco: el Amiga era un sistema operativo en tiempo real (nunca calificó completamente de manera formal, pero cumplió con todos los demás criterios). La interfaz de usuario fue manejada por un subsistema llamado Intuition que realizó la manipulación real de ventanas y elementos de la interfaz de usuario, intercambiando mensajes con cada aplicación. Y Intuition se ejecutó en un nivel de prioridad de tarea más alto que cualquier tarea de aplicación. En resumen, la interfaz de usuario en el Amiga fue muy rápida porque casi todo lo demás en el sistema se salía del camino cuando era necesario hacer algo en la interfaz de usuario. Entonces no hubo competencia ni imprevisibilidad.

Entrar en Windows

Así que gradualmente comencé a usar Windows después de que Commodore murió. AmigaOS fue genial, pero fue agradable y ocasionalmente importante para el trabajo poder usar nuevas computadoras. ¡Pero Windows como siempre es tan torpe! A medida que aprendí más al respecto, quedó bastante claro que, a pesar del hardware cada vez más rápido, Windows permanecería torpe durante mucho tiempo. Tenía, en relación con AmigaOS, defectos de diseño. Windows se diseñó originalmente para “cooperativa”, también conocida como multitarea “falsa”. El sistema operativo originalmente no tenía tareas reales. La interfaz de usuario funcionó a través de mensajes … desafortunadamente, a diferencia de la Intuición de Amiga que maneja cada ventana con una cola de mensajes separada, envía solo mensajes que esa tarea en particular solicitó, administra los gadgets / widgets / elementos de la interfaz de usuario, etc., maneja su propia actualización de ventana, en Windows, la aplicación tuvo que procesar todos estos mensajes, volver a dibujar su propia ventana, actualizar los elementos de la interfaz de usuario por su cuenta, etc. Y todo esto, desde el principio, se realizó en la aplicación principal.

De hecho, Windows era particularmente malvado. En un sistema operativo normal, puedo configurar dos tareas diferentes (hilos, como quiera llamarlas) y enviar señales o mensajes directamente entre ellos (claro, el sistema operativo está facilitando esto, pero la conexión es lógicamente directa). Incluso en Windows 95, tratar de hacer esto terminó convirtiendo esa señal en un mensaje en la cola de mensajes de esa aplicación. Sin comunicaciones directas, todo filtrado a través de la aplicación en la prioridad de nivel de aplicación. La conclusión fue que, cuando el sistema se puso muy ocupado, las aplicaciones se volvieron desiguales. Pero también significó que un diseño deficiente de la aplicación podría empeorar aún más las cosas: cuando la aplicación se llena, no se manejan mensajes de eventos de IU y un programa parece bloquearse. En AmigaOS, incluso si la aplicación principal estuviera ocupada, Intuition todavía estaría administrando partes de la interfaz de usuario … por lo que la computadora en su conjunto no parecía retrasarse.

Interfaz de usuario en Android

En Android, tenemos una situación similar a la de Windows: Android hace que su interfaz de usuario funcione en el hilo principal de una aplicación de Android. Sin embargo, Android utiliza prioridades: por supuesto, es un sistema operativo multitarea moderno y completamente funcional construido sobre Linux. En Android, tiene programas interactivos para el usuario, llamados Aplicaciones, y programas de fondo (por ejemplo, no interactivos) llamados Servicios. Cuando un sistema Android está realmente ocupado, las Aplicaciones no se ralentizan al trabajar como Servicios. Y dado que las aplicaciones son, por definición, interactivas, es de esperar que la mayoría de las aplicaciones estén esperando la entrada del usuario, la única que está utilizando es esa excepción y esa se ejecuta sin problemas.

Pero eso también depende del diseño de la aplicación. Al igual que en Windows, es posible hacer todo tipo de cosas en el hilo principal de Android. Si está esperando la E / S de archivos o redes en el hilo principal, las cosas de la interfaz de usuario no se están manejando. El diseño adecuado de un programa de Android tiene los elementos críticos de la interfaz de usuario en el hilo principal y otros trabajos realizados en otros hilos. Pero no hay nada en el sistema operativo que fuerce esto. Pero lo que esto le dice es que es bastante posible construir una aplicación muy fluida, y bastante posible crear una aplicación lenta, solo mirando la aplicación misma.

El ecosistema de Android

Sabiendo que gran parte del buen comportamiento de una aplicación de Android depende del diseño adecuado del programa, no debería sorprendernos que algunos dispositivos aparezcan retrasados, mientras que otros con el mismo nivel de tecnología no. Esto se debe a que cada OEM de Android tiene la opción de modificar o incluir sus propias versiones de prácticamente cualquier aplicación de Android. Entonces, por ejemplo, Samsung tiene una versión modificada del “Launcher” básico de Android y una interfaz de usuario llamada TouchWiz. Al menos hace un tiempo, esto tenía fama de ser lento, una razón podría ser que TouchWiz está haciendo más cosas de interfaz de usuario: renderizado más complejo, más dibujo, más animaciones. Otra podría ser que no es un diseño tan optimizado como un sistema Android estándar. De hecho, tengo una tableta Android de Samsung y realmente no noto retraso en todos estos días. En mi tableta anterior de ASUS, no era más que retraso. El Samsung tiene algunas mejoras significativas de hardware, RAM y Flash más rápidos y núcleos de CPU más rápidos, pero probablemente también se actualizaron en el sistema operativo, un mejor diseño en el Iniciador e incluso algunas de las aplicaciones que podrían agregar a la impresión general de “retraso” dispositivo “versus” dispositivo rápido “.

Otras razones para el retraso de Android

Hay otras posibles razones. Recuerde, vamos a ver un retraso cuando la aplicación actual se ralentiza por otra actividad de la CPU. En versiones anteriores de Android, las cosas de la interfaz de usuario normal no usaban aceleración de GPU, por lo que los bits de la interfaz de usuario, como la animación, etc., tomaron más tiempo, ejecutándose solo en la CPU principal. El iOS de Apple ha tenido aceleración de GPU por un tiempo … y lo necesitaba, porque Apple usó más animación. Pero las versiones más recientes de Android han agregado más de eso, y sin una buena aceleración, viste que las cosas se retrasaron.

Android administra la memoria de manera similar a iOS y otros sistemas operativos móviles, pero de manera muy diferente a los sistemas operativos de escritorio típicos. Cuando ejecuta un sistema operativo de escritorio y la memoria se agota, el sistema intentará asignar algo de memoria “virtual”; básicamente, falsifica RAM adicional al usar una unidad de administración de memoria para afirmar que hay más memoria de la que realmente hay, luego usando rutinas en el sistema operativo para intercambiar secciones de memoria menos utilizadas para el almacenamiento. Y si no hay memoria virtual adicional disponible, el sistema operativo simplemente falla esa solicitud de memoria.

En Android, no hay memoria virtual: fue diseñado para admitir dispositivos móviles, que generalmente no tenían almacenamiento HDD. Sí, Linux admite VM, pero no se está utilizando. Entonces, cuando una aplicación realiza una solicitud de memoria, si no hay ninguna disponible, el sistema operativo Android puede cerrar una o más aplicaciones que aún están en la RAM. El diseño de Android hace que esto sea esperado: el sistema operativo puede cerrar una interfaz de usuario, restaurar una interfaz de usuario o hacer lo mismo para toda la aplicación. En cada caso, la aplicación tiene la oportunidad de prepararse para el cierre. Todo esto lleva mucho tiempo de CPU adicional, y la aplicación que solicita memoria se pausa hasta que dicha memoria esté disponible.

En un problema relacionado, las versiones anteriores de Android ejecutaban todas las aplicaciones en una máquina virtual llamada Dalvik. El modelo de programación de Android se basa en Java, y en Java, los programadores no necesitan asignar explícitamente memoria o eliminar memoria, solo crean nuevos objetos, y el entorno de ejecución se da cuenta cuando ya no son necesarios, a través de un proceso llamado basura colección. En versiones anteriores de Android, el recolector de basura, que aparentemente se ejecutaba con una prioridad más alta, a veces invocado por una aplicación cuando la memoria era corta, provocaba un retraso en todo el sistema. A partir de Android L, el nuevo modelo de aplicación ART (Android RunTime) reemplaza a Dalvik como el principal entorno de ejecución y, entre otras cosas, renueva por completo la forma en que se realiza la recolección de basura.

Otro problema: errores. Algunas versiones de Android parecen haber tenido lo que se llama una “pérdida de memoria”. Como mencioné, el entorno de ejecución de Android (ART o Dalvik) y el sistema operativo hacen toda la limpieza de memoria en Android, no es un problema de aplicación. Eso es genial, ya que evita que las aplicaciones malvadas bloqueen la memoria que no se puede reclamar. Pero si ese sistema en sí no ocasionalmente libera memoria, eso se denomina pérdida de memoria. Con el tiempo, el sistema operativo se queda sin memoria y, en ese momento, solo un reinicio restablecerá las cosas. No creo que ninguna versión de Android que estoy usando actualmente tenga una pérdida de memoria a nivel del sistema, pero es muy probable que algunas versiones lo hayan hecho en el pasado. El efecto de esto es que, a medida que pasa el tiempo, el sistema operativo está haciendo más recolección de basura, cerrando más aplicaciones y eventualmente luchando por mantener la memoria disponible incluso para la única aplicación que está utilizando.

Android e Internet

Cualquier retraso inesperado puede verse como un retraso, pero no hay mucho en el camino del comportamiento impredecible en su teléfono o tableta, aparte de los problemas de software mencionados anteriormente. La memoria flash, las pantallas táctiles, las tarjetas SD, etc. son bastante deterministas: se comportan igual siempre. Pero internet … no tanto.

Android tiene un diseño bastante interesante, ya que está muy integrado con Internet. De hecho, pequeños bits de código en Android, llamados “Intentos”, se envían datos entre sí a través de URI (Universal Resource Identifiers, un componente básico de Internet moderno). Como resultado, es bastante posible que algunas aplicaciones vivan en parte en Android, en parte en servidores de Internet. Y eso es completamente transparente para el usuario. Algunas aplicaciones hablan con un servidor en Internet cuando su dispositivo tiene acceso a Internet, y un Servicio en Android cuando Internet no está disponible.

Internet en sí, el protocolo TCP / IP, están diseñados para transmisiones imperfectas. No hay un tiempo específico para esperar una respuesta de Internet, eso depende del programa que realice esas llamadas de Internet. Estos pueden diseñarse para que se agote el tiempo de espera del servidor o la red en sí no está disponible, pero eso lleva tiempo. Y esa espera puede hacer algunos de los mismos males para ralentizar un programa de Android si ese programa no está cuidadosamente diseñado.

No noto retraso en mi Android … se encuentra justo al lado de mi computadora portátil, pero ambos están ejecutando mi wifi.

Si desconecto Android de wifi, la red 4G a menudo es más rápida en d / l.

El retraso es un problema de latencia de red . Si su Android parece estar retrasado, puede ser la red móvil o su Android está sobrecargado con aplicaciones en ejecución .

Mire su memoria interna libre, cuando la mía cae por debajo del 5% del total, el rendimiento del teléfono sufre … respuesta tardía a la pantalla táctil, etc., no se retrasa.

He estado usando Android y iPhone durante muchos años, actualmente usando un Samsung Galaxy. Cuando el teléfono parece reaccionar lentamente … es porque tengo demasiadas aplicaciones que consumen recursos del sistema operativo del teléfono

  • Muevo aplicaciones de la memoria del sistema operativo del teléfono a la tarjeta SD externa
  • Elimino aplicaciones no utilizadas
  • Reviso todas las aplicaciones que se ejecutan en segundo plano, particularmente aquellas que usan servicios de ubicación (GPS)
  • Elimine esas aplicaciones de ahorro de batería inútiles (las que se ejecutan todo el tiempo para decirle que hay 74 aplicaciones ejecutándose y para cerrarlas)
  • La mejor cura para mí es RESTABLECER LA FÁBRICA … hace que el teléfono vuelva a ser nuevo, luego vuelve a agregar las aplicaciones necesarias y pasa a la tarjeta SD cuando sea posible

CIERTAMENTE NO NECESITA COMPRAR UN TELÉFONO NUEVO COMO SE SUGIERE EN OTRA RESPUESTA AQUÍ. Si lo haces, envíame la tuya anterior.

  • El hardware no se desgasta: ¡se trata de la gestión del software!

Estoy usando un Samsung Galaxy S4 de más de 3 años que parece estar muriendo varias veces. Cada vez que esto sucede (aproximadamente una vez al año), restablezco el teléfono a las condiciones de fábrica y el teléfono funciona como si fuera nuevo.

La mala utilización de la memoria tendrá un gran impacto en el rendimiento.

Tiene una respuesta muy simple pero conocida por pocos. Como soy un programador de aplicaciones de Android en el ocio. He notado algo con la compatibilidad entre las aplicaciones que ejecuta y el sistema operativo que tiene su teléfono.

Es posible que haya visto que las aplicaciones reciben actualizaciones regularmente de vez en cuando. Es “principalmente” porque hay un nuevo sistema operativo Android que acaba de lanzar. Ahora, cuando se desarrolla una aplicación, se tiene en cuenta que la aplicación debería poder ejecutarse en el “máximo” de dispositivos. Pero si intenta hacer que su aplicación pueda ejecutarse en el número máximo de dispositivos, debe comprometer muchas de las nuevas funciones proporcionadas por el nuevo sistema operativo Android. Por lo tanto, la mayoría de las veces se crean aplicaciones y para usar todas las nuevas funciones del nuevo sistema operativo Android, tienen que comprometer la compatibilidad total.

Entonces, las aplicaciones se actualizan para el último sistema operativo Android en el mercado, pero el sistema operativo de su teléfono sigue siendo el mismo. Y por lo tanto, viene un pequeño factor de compatibilidad y para superarlo, su procesador tiene que trabajar más.

Finalmente, todos los dispositivos de generación actual se retrasan.

Razones

  1. Cachés y aplicaciones no utilizadas que mienten consumiendo recursos
  2. Algunos fabricantes de equipos originales tienen una interfaz de usuario con mala apariencia, por ejemplo, Touchwiz (Not Dream UX), MIUI, EMUI, etc. y tienen malos perfiles térmicos y una horrible gestión de ram / tarea.
  3. Recuerde que la memoria RAM libre no determina el rendimiento.
  4. Siempre revise otro hardware también puede causar una batería defectuosa, pantalla muy sucia.
  5. Esto es un poco conspirador, pero algunos OEM finalmente empujan una actualización que hace que el dispositivo antiguo se demore, de modo que compre dispositivos nuevos.

Haré una pregunta similar para explicar. ¿Por qué mi auto de 30 años no funciona a la velocidad de un Ferrari, a pesar de tener combustible lleno? Otra es, ¿por qué mi bicicleta no corre tan rápido como el automóvil?

Lo entendiste bien, tu teléfono está retrasado en el chip, pcb, procesador o almacenamiento. Puede haber alguna razón para ello, sin embargo, no es relevante decir que los teléfonos Android son lentos. Su RAM no hará nada solo para aumentar la velocidad.

Así que por favor consiga un nuevo teléfono.

Esta es una pregunta que lucho conmigo mismo.

En primer lugar, tenía un teléfono Android con 1 GB de RAM, que el vendedor me aseguró que sería suficiente. Era ingenuo y no era experto en tecnología entonces, así que … me engañaron.

pronto se trasladó a un teléfono con 2 GB de RAM, se sintió como ots en los primeros días, pero pronto, después de un par de aplicaciones, comenzó a funcionar lentamente. entonces, mi cerebro dice “¿no es suficiente carnero? obtener moarrrrr “……

Ahora tengo un teléfono con 4 GB de RAM y todavía se está acercando constantemente a la advertencia izquierda de 600 mb. Pero por ahora, tengo muchas aplicaciones ejecutándose en segundo plano, que incluso cerrar desde esa pantalla de inicio de doble toque no ayudó mucho.

Pero sí ayuda.

Estoy considerando comprar un teléfono de 6GB.

Entonces, en caso de que la respuesta no sea obvia a partir de eso, intente borrar los procesos en segundo plano y tenga solo las aplicaciones esenciales básicas en su teléfono. Ayuda con el retraso.

pero por qué se queda atrás ……

El problema radica en el software en lugar de la gestión de ram de hardware es el culpable de su condición. Además, la memoria caché debe borrarse regularmente y la memoria máxima debe estar libre en todo momento. En algunos teléfonos, el hardware es totalmente capaz, pero no está bien sincronizado para evitar que se agote la batería.

Cuando no hay espacio en la memoria interna del teléfono móvil, comienza a retrasarse.