Un tema que ha generado mucha polémica y discusión -incluso entre quienes se regodean de ser Genios de Apple (el soporte técnico en las Apple Stores)- es el de la manera en que iOS administra y limpia la memoria de nuestro iPhone o iPad. Mientras que algunos sugieren cerrar cada aplicación que terminemos de utilizar, otros comentan que esto no es absolutamente necesario y que el sistema lo hace automáticamente por nosotros. ¿La verdad? Te vamos contar el final y te adelantamos que en el caso general (muy general) no es necesario emprender acciones con el fin de ahorrar memoria en iOS, ya que las mismas aplicaciones, si están bien desarrolladas, caen dentro de distintos esquemas que limitan su utilización de memoria RAM y ciclos de procesador. Ahora bien, si te interesa entrar un poco más en detalle sobre cómo es que esto pasa así, continúa leyendo.
De la mano del desarrollador Fraser Speirs, quien en su blog nos explica con un video lo que pasa detrás de las cámaras, sabemos de una vez por todas que no es necesario cerrar cada aplicación inmediatamente después de utilizarla, ya que el istema lo hace automáticamente por nosotros. Quien te diga lo contrario está, en palabras de Spiers: “mal, mal, mal y mal“.
Ahora bien, para la explicación técnica, empezamos por denotar un concepto erróneo que mucha gente mantiene: la barra de multitasking de iOS no contiene una lista de “aplicaciones abiertas” sino simplemente de aplicaciones recientemente utilizada. Excepto en algunos casos específicos, las apps que se muestran en dicha barra no están corriendo ni ocupando memoria ni ciclos de procesador. Cada vez que se presiona el botón de Home (estoy seguro que sabes cuál es), el sistema intentará cerrar la aplicación y en la gran mayoría de los casos lo logrará. En este punto es importante denotar cinco estados en los que se puede encontrar una aplicación de iOS:
- Terminada: La aplicación fue cerrada por completo o no ha sido llamada.
- Inactiva: La aplicación existe en primer plano pero no está recibiendo eventos (como cuando bloqueas el aparato con un programa abierto).
- Activa: El uso normal de una aplicación abierta.
- Segundo plano: La aplicación no está en primer plano pero sigue corriendo código.
- Suspendida: La aplicación se mantiene en memoria sin correr código alguno.
Las dudas comienzan cuando una aplicación pasa del estado Activo al Segundo Plano y de ahí a estar Suspendida y posteriormente Terminada. La mayoría de las aplicaciones pasan directamnete de estado Activo hasta Suspendida en cuestión de segundos. La aplicación se mantiene en memoria con el fin de ser llamada más rápidamente si se volviera a requerir; sin embargo, no utiliza procesador ni batería por lo oscurito, solamente memoria RAM. Aquí viene el segundo error y es que si una aplicación se encuentra en estado Suspendido, no es necesario cerrarla ya que el sistema cerrará automáticamente las aplicaciones suspendidas cuando necesite más memoria RAM. Independientemente de que la aplicación se encuentre cerrada o abierta, lo que veas en la barra de multitasking no cambiará. Nuevamente: esta barra sólo mostrará las aplicaciones más recientes independientemente del estado en el que se encuentren (incluso pueden estar Terminadas y seguir apareciendo ahí).
Ahora bien, una aplicación puede solicitar clemencia de manera que el sistema no la cierre inmediatamente despué sde salir de ella al declarar que está efectuando una “tarea de segundo plano”. Por ejemplo, cuando una aplicación está descargando un archivo muy grande que le tomará más de varios segundos (alrededor de 5), ésta puede reportarle al sistema que se encuentra terminando algún proceso y se le concederán hasta 10 minutos más antes de ser suspendida por completo por iOS.
Por otro lado, existen cinco tipos de aplicaciones a las que se les permite correr de manera indefinida. Estas aplicaciones el usuario típicamente las conoce y se dará cuenta de que están corriendo, tales como:
- Aplicaciones de música o audio (como Instacast cuando reproduce un podcast).
- Aplicaciones que guardan tu ubicación (como TomTom cuando te guía)
- Aplicaciones que escuchan para llamadas VOIP (como Skype cuando está en espera de una llamada)
- Aplicaciones de Newsstand que están descargando contenido nuevo.
- Aplicaciones que reciben actualizaciones continuas de fuentes externas en el segundo plano.
En resumen, ningún usuario de iOS debería preocuparse por la cantidad de memoria que utilizan las aplicaciones. De hecho parte de las políticas que Apple implementa en la App Store es que se haga uso adecuado de los cinco esquemas de utilización de memoria para evitar que algunas aplicaciones mal diseñadas abusen de los recursos disponibles y esto resulte en una mala experiencia de usuario (¡cruz, cruz!). Claro que hay algunas excepciones en las que algo simplemente sale mal y la aplicación deja de responder, pero son los menores casos. Si esta explicación aún no te parece suficiente, te invitamos a ver el video en el que Fraser Speirs nos lo demuestra personalmente:
Via: AppleSfera