Al parecer, no es una buena idea cerrar aplicaciones en su iPhone para ahorrar batería. He leído preguntas y respuestas como ¿Forzar el cierre de aplicaciones tiene algún beneficio en los dispositivos iOS? pero todavía no se gelifica conmigo. A veces he encontrado más de 50 aplicaciones ejecutándose, por lo que no tiene sentido cerrarlas.
Tal vez soy un poco un viejo estrangulador y simplemente no puedes enseñarles nuevos trucos a los perros viejos, pero ¿alguien puede explicar por qué es mejor mantener todas estas aplicaciones en funcionamiento? Y cuando digo "explicar" quiero decir en términos simples para que pueda entender.
Respuestas:
No estas solo. Las personas simplemente están acostumbradas a sus hábitos de computadora de escritorio, y es comprensible que lleven estos hábitos a sus iPhones y iPads.
Sin embargo, déjenme intentar explicar esto usando una analogía:
Imagina que es un día caluroso y estás fuera de la jardinería. Tienes sed, así que entras a la cocina, tomas un vaso grande, le pones hielo y lo llenas de agua. Luego bebes la mitad y vacías el resto en el fregadero antes de volver a salir. No mucho después, vuelve a tener sed, así que vuelve a la cocina, toma el mismo vaso, le pone hielo y lo llena con agua. ¡De nuevo solo bebes la mitad y vacías el resto en el fregadero!
El flujo de trabajo anterior simplemente no tiene sentido. ¿Por qué no llevarías el vaso contigo? Y, no solo está desperdiciando agua al vaciarla, sino que está gastando más tiempo y energía para recuperar esa agua nuevamente.
Del mismo modo, cuando salga de una aplicación, realmente está utilizando energía de la batería en el proceso (p. Ej., Eliminarla de la RAM, etc.) y luego nuevamente cuando tenga que iniciarla nuevamente y cargarla nuevamente en la RAM.
Por lo tanto, la gran mayoría de las veces es mejor dejar las aplicaciones abiertas. A pesar de que están abiertos, en realidad solo están sentados en un tipo de modo suspendido que no usa ninguna batería. Sí, la aplicación todavía está cargada en RAM y ocupa espacio , pero en realidad no está haciendo nada , simplemente está inactiva. Y, dado que no está utilizando energía de la batería en este estado, no tiene ninguna ventaja abandonarlo desde el punto de vista de la conservación de la batería, especialmente si es una aplicación que sabe que va a usar una y otra vez durante el día.
Tampoco es realmente ventajoso forzar el cierre de una aplicación, ya que iOS lo hará por usted si es necesario para liberar RAM. Entonces, si tiene 50 aplicaciones abiertas y permanecen abiertas, entonces iOS no ha sido empujado hasta el punto de necesitar cerrar ninguna de ellas para liberar memoria.
Ahora, como todo, siempre hay excepciones a la regla (como aplicaciones que tienen que realizar tareas en segundo plano). Un ejemplo de esto es uno que reproduce música mientras haces otras cosas con tu teléfono, o uno que descarga contenido en segundo plano, o uno que cuenta cuántos pasos caminas en un día, etc. Sin embargo, iOS tiene proceso eficiente para administrar aplicaciones / tareas en segundo plano y si decide abandonarlas, básicamente está diciendo que no confía en que el sistema operativo haga su trabajo correctamente.
Por lo tanto, no dude en salir de sus aplicaciones cuando sea necesario (por ejemplo, porque está congelado, etc.), pero no lo haga para ahorrar energía de la batería. De hecho, si lo hace, ¡logrará lo contrario y usará más batería durante el día!
Resumen
La mayoría de las aplicaciones en App Switcher estarán en estado suspendido ; esto significa que no están: visibles en la pantalla, ejecutando código, usando la CPU o GPU, o usando la batería. Sin embargo, ellos son aún residente en memoria hasta que se purgan (si es necesario) por el sistema para liberar la memoria:
Fuente : consulte la Tabla 2-3 dentro del primer enlace de referencia al final de esta respuesta.
Las únicas aplicaciones que realmente se ejecutan en su iPhone en un momento dado son la aplicación activa (es decir, la que está visible en la pantalla) y cualquier otra que funcione en segundo plano . ( Nota: hay algunas excepciones temporales a esto en el caso de aplicaciones que todavía necesitan tiempo para completar el código de ejecución que ya comenzaron mientras estaban activas; por lo general, esto es solo del orden de segundos, pero en teoría podría extenderse a más de un minuto). .
Referencias
fuente
Las respuestas proporcionadas son precisas, solo quiero aclarar desde el punto de vista de un desarrollador de iOS.
iOS está diseñado para administrar tantas cosas como sea posible para que usted (y los desarrolladores) no tengan que preocuparse por ellas. El resultado final es un enfoque algo consistente en todas las aplicaciones, incluidas las de Apple (incluso aunque a veces Apple corta algunas esquinas).
Dicho esto, la premisa es:
Dicho todo esto, se supone que la mayoría de los usuarios cierran aplicaciones con la esperanza de aumentar la duración de la batería, bajo la impresión de que, al cerrar las cosas, se desperdicia menos energía para mantener estas aplicaciones en funcionamiento.
La verdad es que, en iOS, este casi nunca es el caso. Cuando presiona inicio, la aplicación se suspende y ya no utiliza recursos que otras aplicaciones pueden necesitar. Si una nueva aplicación (o incluso iOS) necesita esa memoria, la cuidará sola, pero solo si la necesita.
Al cerrar las aplicaciones una y otra vez, está obligando a iOS a hacer esa tarea potencialmente costosa de descargar realmente una aplicación, guardar su estado y lo que no, con el problema adicional de que cuando vuelve a abrir la aplicación, todo eso debe revertirse y, dependiendo de la complejidad de la aplicación, se deben leer muchas cosas desde el almacenamiento, hasta la memoria principal del teléfono, etc. Todo este trabajo adicional podría haberse evitado si simplemente deja que la aplicación permanezca en su estado "suspendido".
Sin embargo ...
En algunos casos (y son raros pero no imposiblemente raros), desea eliminar las aplicaciones que se comportan mal. Los ejemplos son (pero no se limitan a): aplicaciones que tratan con audio de fondo o servicios asíncronos como la ubicación (donde la aplicación solicita una ubicación y iOS debe ir y preguntar dónde está, por ejemplo, disparando el GPS si es necesario) , transmisión de video, etc.
He tenido innumerables instancias de aplicaciones como Lyft, United Airlines, incluso Twitter, que terminan en un estado roto (o simplemente no funcionan correctamente), ya sea porque estás en una mala red (iOS se ha vuelto realmente malo en recuperarse de algunas redes malas en los últimos 3-4 lanzamientos) o la red simplemente no responde correctamente.
Con el tiempo, la mayoría de estos problemas tienden a desaparecer y la aplicación comienza a funcionar nuevamente; pero si realmente necesita que la aplicación funcione ahora , debe seguir adelante y pagar el precio de tener que matarla y reiniciarla desde cero. Usaste más batería al hacer eso, pero, oye, la necesitabas.
Y si esto fue confuso, puedo darle una analogía de automóvil, porque eso es lo que solemos hacer todo el tiempo.
La analogía del auto
Sé que la tecnología del automóvil ha avanzado y este ya no es un buen ejemplo, pero juega conmigo aquí .
Encender el motor de un automóvil solía usar más combustible que el ralentí. Cuando los automóviles tenían carburadores en lugar de inyectores, esto era aún peor; Es por eso que apagar el motor cuando te detienes en una luz roja, teóricamente puede usar más combustible que simplemente en ralentí durante un minuto. Los autos más nuevos tienen un mecanismo mucho más eficiente y pueden detener el motor, pero permanecen en un estado semi-arrancado (no entremos demasiado a los autos aquí).
Usted cierra aplicaciones, es el equivalente a una persona apagando el automóvil en cada luz de freno. En lugar de dejarlo inactivo hasta que lo necesite nuevamente, normalmente unos segundos más tarde.
La analogía no es perfecta, porque la verdad es que los autos inactivos todavía usan combustible, mientras que las aplicaciones suspendidas no; Sin embargo, en los ojos del teléfono, que se no se utiliza la memoria nada / batería relacionados (siempre y cuando no tienen el proceso de fondo de cualquier tipo activo, obviamente).
Básicamente está apagando el motor cada vez que apaga una aplicación, y no está dejando que el mecanismo "inteligente" de iOS de ralentí su motor se encargue de ello, por lo que cuando la luz se vuelve verde, simplemente puede presionar el acelerador y El motor funciona más rápido que si se hubiera detenido al 100%. Arrancar un motor desde un estado detenido, también usa más potencia que solo combustible, debe girar el motor de arranque para que el motor pueda arrancarse, inyectarse combustible y crear chispas, así que ... es mucho trabajo detrás de escena. Las aplicaciones son como motores. :)
fuente
Como analogía ... con su automóvil, si necesita hacer demasiadas paradas durante el día y seguir deteniendo y arrancando el motor, llegará un momento en que la batería se agotará por completo. Esto puede suceder si el tiempo de carga mientras conduce entre paradas no es lo suficientemente largo como para restaurar la enorme cantidad de energía que se extrae de la batería cada vez que enciende el motor. Además, no es bueno para el motor de arranque y el consumo general de gas. Es por eso que muchos conductores de camiones de reparto mantendrán el motor al ralentí durante sus paradas cortas.
Esta analogía es IMO similar al mito de ahorro de memoria.
fuente
Simplemente lanzando una opinión diferente por el bien de la discusión. Este concepto tiene cierto grado de verdad, pero una vez que tenga un cierto número de aplicaciones abiertas, es probable que comience a ver rendimientos decrecientes al mantener las aplicaciones suspendidas.
Cuantas más aplicaciones tengas abiertas, más RAM se usará, obviamente. Por lo general, cada aplicación en la memoria se divide como la memoria que la aplicación está usando actualmente, la memoria que la aplicación quiere tener a la mano y la memoria que el sistema operativo realmente permitió que la aplicación usara, lo que le brinda la cantidad final de memoria que la aplicación tiene. está permitido su uso. La razón por la cual la aplicación mantiene una porción separada de esta memoria como memoria que quiere usar, es porque la aplicación puede necesitar crecer, pero no necesariamente quiere hacerlo de inmediato porque es malo para los recolectores de basura tienen montones grandes (montones grandes = recolecciones de basura más largas), por lo que la aplicación reservará una parte de la memoria que no se usa actualmente, pero que la aplicación puede usar exclusivamente si surge la necesidad.
Digamos que el sistema operativo permite que mi aplicación tenga hasta 700 MB, y la aplicación reserva 300 MB de esa memoria para sí misma, dejando 400 MB para que mi aplicación los use si lo desea, pero luego se abre otra aplicación y necesita algo de memoria; el sistema operativo analiza todas las diferentes aplicaciones y decide si está bien extraer algo de memoria de otra aplicación y usarla para la nueva aplicación, en este caso puede decidir tomar 150mb de la memoria permitida de mis aplicaciones y dársela a la nueva aplicación , requiriendo que se intercambie la memoria para darle uso a la nueva memoria de la aplicación (piense en esto como una reasignación de fondos en un negocio), mientras más aplicaciones tenga abiertas, más trabajo tendrá que hacer el sistema operativo para decidir realmente qué memoria de la aplicación puede desviar para dar memoria a la nueva aplicación.
En este sentido, cada aplicación que se abre y se suspende agrega complejidad a este proceso, lo que hace que sea más intensivo en la CPU y eventualmente requiera más energía de la batería para abrir aplicaciones futuras que la energía de la batería ahorrada al no cerrar otras aplicaciones.
Ahora, tenga en cuenta que nada de eso tiene en cuenta que a menos que realmente elimine una aplicación, puede haber servicios en segundo plano en ejecución que consumirán la potencia de procesamiento, por ejemplo, notificaciones configuradas para notificarle en un temporizador, etc. Por otro lado, algunos las aplicaciones no usan un verdadero servicio en segundo plano, y en realidad usan notificaciones push de servicios como firebase, que no requieren que la aplicación esté abierta en ningún momento.
Otra cosa a tener en cuenta, cuantas más aplicaciones abra continuamente, más fragmentada estará la memoria inicialmente hasta que el sistema operativo pase y limpie la memoria para que esté más limpia y organizada de manera más eficiente, esto también aumenta la potencia de procesamiento, y el Cuanta más memoria esté ocupada por las aplicaciones, más intenso será este proceso para su dispositivo.
Todo esto para decir que dejar las aplicaciones abiertas es en su mayoría más eficiente, a menos que se abran demasiadas aplicaciones, sin embargo, no estoy seguro de cuántas aplicaciones deben estar abiertas para llegar a este umbral, si el número existe.
Fuentes:
Recolector de basura SGen para Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/
Descripción general del generador de perfiles de memoria para aplicaciones Xamarin de iOS y Android, que muestra la forma en que la aplicación administra la memoria (conjunto de trabajo, bytes privados, memoria asignada, etc.) https://blog.xamarin.com/say-hello-to -the-xamarin-profiler /
fuente
Versión de corte limpio: es mejor porque el sistema operativo fue diseñado para mejorarlo hasta el punto en que el usuario quiera mantener las aplicaciones (o en un estado "suspendido") para reunir más información sobre sus acciones [*] más adelante si es necesario.
Versión más larga: las aplicaciones que están "suspendidas" tendrán su estado guardado en la memoria, por lo que una vez que desee iniciarlas nuevamente, el proceso de cargar todo de nuevo requerirá menos tiempo para el procesador y casi ningún uso de la unidad de almacenamiento ... Con esto no se puede saber si sus aplicaciones están haciendo otras cosas en segundo plano que en muchos casos se quedan allí recolectando datos sobre usted.
[*] Para profundizar en la recopilación de datos de tu parte ... las aplicaciones que se almacenan en la memoria pueden estar "suspendidas" o activas en segundo plano. Usted, como propietario del dispositivo, no puede saber (si no posee el conocimiento y algunas otras aplicaciones para escanear activamente el uso de la CPU) qué está haciendo realmente dicha aplicación. Desde el punto de vista de la seguridad, le aconsejo que cierre cualquier aplicación que no vaya a utilizar durante los próximos 10 minutos.
PD: esta práctica también se realiza en dispositivos Android ...
fuente