Multitasking en iOS, Wp7 y Android
Antes de comenzar, hay que aclarar (para los menos entendidos en el tema) que en el artículo a continuación que hemos traducido libremente desde PocketNow, también se habla de Windows Mobile, el cual NO es lo mismo que Windows Phone, pues este último es un sistema Operativo totalmente nuevo, aunque de momento es un sistema incompleto en tanto no llegue la actualización llamada “Mango”.
Todo el mundo (o al menos quienes tienen un poco de experiencia en uso de Smartphones) quiere un teléfono inteligente con multitarea. Pero multitarea puede tener diferentes significados, y ciertamente, la misma puede obtenerse mediante diferentes métodos e implementaciones.
Recientemente sabemos que la actualización “Mango” de Windows Phone le permitirá realizar múltiples tareas para el nuevo sistema operativo, pero definitivamente no va a ser de la misma forma como Windows Mobile lo hizo al comenzar el siglo, entre el año 2000 y 2010. En ese entonces, la multitarea se llevaba a cabo en una forma similar a cómo las computadoras lo hacen. Si inicias una aplicación, esta se queda cargada en la memoria RAM; si se está realizando una tarea, ésta utilizará el CPU tanto como esta quiera hasta que termine tal tarea, independientemente de si desea tener acceso a otro programa, e independientemente de tener los recursos adecuados para hacerlo.
La parte innovadora de la ejecución multitarea de Windows Mobile es que se suponía que debía hacer las cosas más fáciles para el usuario mediante la gestión de las aplicaciones y los recursos por sí mismo. Si un programa no se utiliza por un tiempo y el sistema necesita más memoria RAM para otras aplicaciones, el sistema debe cerrar los programas no utilizados y liberar sus recursos para su uso por otros programas.
Desafortunadamente, a veces el acto de liberar esos recursos para otras aplicaciones requiere más recursos que los que estaban disponibles en ese momento, creando un indeseable retraso o “cuelgue” en el dispositivo, entre un segundo o indefinidamente congelado (especialmente en dispositivos antiguos con poca RAM). Por ello revisemos a detalle cuáles son las distintas maneras en la que los Smartphones pueden generar la ansiada multitarea.
iOS
En un principio, no había multitarea en iOS de Apple. Esto trajo como efecto un gran rendimiento debido a que el procesador y RAM estaban dedicados del todo para la aplicación en primer plano. Por supuesto, esto hizo más difíciles las cosas al querer correr aplicaciones en segundo plano al mismo tiempo. Por lo tanto, con el IOS 4, Apple implementó un nuevo tipo de multitarea . Aplicaciones que requieren una funcionalidad especializada pueden registrarse en el sistema a fin de mantener la funcionalidad de un hilo en todo momento (o hasta que este se detiene). Estas tareas específicas se limitan a funciones relacionadas con reproducción / grabación de audio, detección de localización, y la voz sobre IP (VoIP).
En los demás casos, cuando se pulsa el botón de inicio en iOS4, las aplicaciones entran en un modo de suspensión y la aplicación se vuelve inerte hasta que vuelvas a la misma. En el modo de suspensión, las aplicaciones no utilizan el procesador, pero siguen consumiendo espacio en la memoria RAM. iOS termina automáticamente las aplicaciones suspendidas más antigua, cuando se necesita más memoria RAM.
Android
Android se comenzó a desarrollar en el año 2003 antes de ser comprado por Google en 2005 y la multitarea al estilo de Android es similar en muchas maneras la forma en Windows Mobile originalmente lo hizo. Aunque la forma en Android es un poco más complicada, que simplemente cerrar cualquier proceso reciente pero menos usado. Con el objeto de liberar recursos de forma automática, Android utiliza un conjunto de reglas para decidir la importancia de cada proceso y por lo tanto el proceso que se debe cerrar. Android también soporta receptores especiales de fondo y servicios que pueden ser diseñados para funcionar en todo momento. Si un determinado sistema con Android nunca se queda sin memoria RAM, todas las aplicaciones que un usuario ejecuta, continuarán funcionando indefinidamente.
Windows Phone 7
Windows Phone 7 originalmente tomó el mismo camino que las primeras versiones de iOS de Apple con ningún tipo de multitarea para aplicaciones de terceros. Poco después de salir de una aplicación de terceros, esta se cierra con el fin de recuperar los recursos utilizados cuando esta se encontraba en primer plano. Por supuesto, ciertas aplicaciones nativas tienen todas las capacidades multitarea en Windos Phone, al igual que las versiones anteriores de iOS. Como ya se mencionó, las ventajas de este método son la vida de la batería más consistente y mejor rendimiento de la aplicación en primer plano.
Con la actualización “Mango” de Windows Phone, a ser lanzada este año, todo va a cambiar . La implementación de la multitarea en Windows Phone será como un especie de cruce de camino entre lo que hace iOS4 de Apple, y lo hace Android.
Con Mango, si los desarrolladores quieren que sus aplicaciones hagan cosas en segundo plano, pueden crear “Agentes de fondo” (Background Agents). La diferencia entre esto y los procesos que no son controlados (incluso cuando no está en primer plano como en iOS), es el hecho de que los mencionados agentes de fondo se restringirán a sólo utilizar el 10% de la CPU y 5 MB de RAM cuando se esta funcionando con batería. Adicionalmente, a algunas aplicaciones determinadas en segundo plano sólo se les permitirá correr durante 15 segundos cada media hora para cosas como la sincronización de datos.
Una característica interesante es que los agentes de fondo tendrán menos limitaciones cuando el dispositivo está conectado a un cargador. En otras palabras, esto suena como cuando el dispositivo está conectado a CA, los desarrolladores podrán aprovechar más potencia y más tiempo en descarga de datos. Es de suponer que esto sería similar al Zune WiFi Sync donde después de unos minutos de estar conectado en el cargador, Windows Phone puede activar automáticamente la sincronización de videos, música e imágenes desde el escritorio.
La razón de tales diferentes formas de implementación de multitarea, es encontrar una especie de equilibrio entre mantener el rendimiento del sistema y la duración de la batería, al mismo tiempo permitiendo la funcionalidad para el usuario sin estar explícitamente interactuando con la interfase del dispositivo. En un extremo tú controlas de forma manual y como usuario, lo que se necesita con el fin de mantener las cosas funcionando sin problemas; mientras que en el otro extremo tenemos más métodos de limitación automáticos que son más fáciles para el usuario, pero algo ciertamente un poco más complicado para el desarrollador .
¿Qué mezcla de compromisos crees que va a trabajar mejor, con miras a ganar poder de procesamiento y capacidad de memoria?
Desafortunadamente, en este análisis de la multitarea faltó WebOS, aunque su funcionamiento es muy similar al de Android, pero con una interfaz gráfica más contundente y clara al respecto, conveniente vamos. Como vemos, ya no sólo existe el “multitasking plano” estilo computadora, si no que los dispositivos móviles cada vez son más especializados en sus técnicas y gestión de procesos. Dichas técnicas son incluso dinámicas, de acuerdo a las diferentes condiciones de batería, cantidad de aplicaciones corriendo y condiciones variables variadas. Como bien dice Douglas Boling (un experto en Windows CE), el desarrollo de los Smartphones es algo totalmente distinto a las computadoras y es necesario que desechemos la falsa creencia arraigada de que los Smartphones y Computadoras deben ser iguales. Cada uno a lo suyo.
Con la colaboración de Iusauser
mierda multitarea, arriba webOS!!! lml,
y webos donde queda???
De WebOS, algo comentaba mi compa svil3 en el mismo tema que originalmente se publicó en el foro (post #2):
http://foros.poderpda.com/showthread.php?7629
Pero estarían bien más opiniones de los usuarios de webOS, cuáles son las ventajas y desventaja reales, de acuerdo a su experiencia.
Saludos
Le voy mas a wp7 con mango claro esta
lastima que varios no an tenido el webos en sus manos, la sensacion de trabajo es indescriptible. nada que ver con los otros SO, que aunque iOS y Android son buenos la sensacion de trabajo multitareas no tiene igual.
El mejor multitarea que hay en la actualidad lo tiene el n900 (Maemo 5) hasta que llegue Meego claro esta puedes tener 8 (por no decir mas) aplicaciones abiertas y saltar entre ellas a toda velocidad sin que de problemas