9 votos

¿Qué hacía iOS antes de la multitarea?

¿Había un conmutador de aplicaciones o tenías que detener una aplicación e iniciar una nueva?

23voto

H-man Puntos 1158

FWIW, Apple siempre ha permitido que algunas de sus propias aplicaciones o servicios para persistir en el fondo, es decir, el teléfono, el correo, las notificaciones push, Buscar mi iPhone, y así sucesivamente, sobre la base de la necesidad y la funcionalidad.

Una cosa que hay que tener en cuenta es que la multitarea hoy en día en iOS sigue siendo limitada, sobre todo si se compara con los sistemas operativos de escritorio (y quizás con algunos entornos Android).

A partir de iOS 4, Apple te da la ilusión de que todas tus aplicaciones se están ejecutando al haber creado el conmutador de aplicaciones. Aunque algunas de las apps pueden seguir ejecutándose, la mayoría están en hibernación, dependiendo de las tareas en segundo plano que hayan registrado para ejecutarse y de la memoria RAM disponible.

El ciclo de vida de las aplicaciones se ha comportado generalmente así desde el primer día:

  • El usuario toca el icono de la aplicación
  • Se muestra la pantalla de inicio
  • Se carga la primera pantalla (vista)
  • El usuario hace cosas con la aplicación
  • El usuario pulsa el botón de inicio (o, con versiones posteriores, toca la pantalla de otra aplicación)
  • La aplicación previamente abierta recibe la señal de que ya no está en primer plano
  • La aplicación recibe la señal de que está a punto de ser suspendida
  • La aplicación está suspendida (estado guardado en la RAM)
  • El estado de la aplicación se traslada de la RAM al disco (flash) cuando la RAM se llena
  • El usuario vuelve a la aplicación
  • Si el estado es lo suficientemente reciente, el estado se recarga desde la RAM o el disco
  • Si el estado es antiguo, la aplicación comienza de nuevo

Los matices en el tratamiento de los estados han cambiado a lo largo de los años, y a los desarrolladores se les ha dado cada vez más control sobre lo que pueden hacer entre los estados.

Cuando la gente va y "fuerza el cierre" de todas sus aplicaciones, esencialmente están tirando cualquier estado guardado por la aplicación, y matando cualquier tarea en segundo plano que la aplicación pueda haber iniciado. Muchos piensan que están ayudando a reducir el consumo de batería y a mantener limpia la memoria RAM, pero Craig Federighi señaló que al hacerlo, en realidad pueden causar un mayor drenaje de la batería, ya que la CPU está haciendo más para reabrir esas aplicaciones cada vez en lugar de simplemente sacarlas de la inmovilidad.

También desde iOS 4, los desarrolladores pueden crear tareas que pueden persistir incluso si una aplicación se ha suspendido, como la reproducción de audio, la supervisión del tráfico de red (VoIP), la actualización de datos en segundo plano y las actualizaciones de ubicación. Esto es eficaz porque sólo una parte de la aplicación se ejecuta y utiliza recursos.

A medida que los dispositivos se vuelven más potentes (más CPU, más RAM, más almacenamiento, mayor batería) y el código se vuelve más eficiente, estas tareas adicionales resultan ser un menor consumo de recursos. Cosas más nuevas como los widgets y las próximas extensiones de Siri, iMessage y CallKit pueden hacer que parezca que las aplicaciones más populares siempre están haciendo algo en segundo plano.

15voto

Oskar Puntos 1242

El conmutador de aplicaciones venía con una multitarea limitada. Antes, pulsabas el botón de inicio y el programa frontal dejaba de ejecutarse.

7voto

megamaiku Puntos 11

Inicialmente, iOS no tenía multitarea. Su primer intento fue en 2010 (¡mierda!). El iPhone simplemente no tenía suficiente ram y no estaba optimizado para ello. En 2010, Apple habilitó las aplicaciones principales para la multitarea, pero no las de terceros. Recuerdo haber hecho jailbreak a mi dispositivo para evitarlo y permitir que todas las aplicaciones pudieran realizar la multitarea, pero era un error. iOS ha recorrido un largo camino, con el procesamiento de 64 bits y una mejor gestión de la memoria.

Para más información, consulte el Wikipedia artículo.

1voto

nik the lion Puntos 38

En primer lugar, al ser iOS un sistema Unix, muy similar al Mac OS, siempre ha sido "multitarea" en el sentido más profundo. Muchos procesos se ejecutan simultáneamente en el dispositivo iOS todo el tiempo.

Lo que se ha limitado es la INTERACCIÓN DEL USUARIO con los programas. El usuario no podía interactuar con más de un programa a la vez.

Además, incluso en los viejos tiempos, en los que era necesario pulsar "home" para cambiar de una aplicación a otra, la antigua aplicación NO era eliminada. Se movía "a un segundo plano", lo que significa que no tiene acceso a la pantalla, al teclado, a la cámara, etc. y sólo puede mantener muy pocos recursos del sistema mientras está en segundo plano.

Para salir completamente de una aplicación de iOS tenías que tocar dos veces el botón de inicio y cuando todas las aplicaciones en ejecución empezaban a temblar, podías pulsar la pequeña "x" para matarlas una a una. Sólo entonces las aplicaciones eran realmente eliminadas.

La razón de esta decisión sobre la interfaz de usuario fue que sólo así Apple podía conseguir una buena capacidad de respuesta de la interfaz de usuario y una buena duración de la batería, con los recursos del sistema muy limitados de los dispositivos iOS más antiguos.

La situación no ha cambiado mucho desde entonces: sólo en escenarios específicos, las aplicaciones en segundo plano reciben un poco más de recursos para seguir funcionando (redes en segundo plano, reproducción de audio en la BG, imagen en imagen, etc.).

El sistema es multitarea como siempre, pero la interfaz de usuario permite escenarios más complicados de más de una aplicación parcialmente visible para el usuario al mismo tiempo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X