Ir al contenido principal

Como Funciona el multitasking de Windows Phone

Todos los sitemas operativos usan su propio modelo de ejecución de aplicaciones, según el kernel que tengan (scheduler incluido), el de Windows Phone quizá es uno de los más…peculiares, por llamarlo de alguna forma. Si eres un desarrollador de Windows Phone, esta entrada deberías sabértela de memoria y casi usarla para ligar. Si no lo eres, siempre es interesante saber cómo funcionan las tripas de tu terminal, sobre todo en un tema tan quisquilloso como es la multitarea, no sólo para saber lo que está pasando, sino para poder manejar mejor tu dispositivo y sacarle más provecho a tu Windows Phone. ¿Comenzamos?



Cambio entre apps

Esto es lo más controvertido en cuanto a llamarlo “multitarea”, los de Microsoft parece que aplican la definición de concurrencia a rajatabla, aplicando que vale con que los hilos/procesos existan al mismo tiempo, pero sólo uno se ejecute en un periodo determinado de tiempo. Los informáticos argumentarán que esto es siempre así, ya que es una limitación de hardware, y tienen razón, pero intento ponerlo simple: en Windows Phone, cuando una aplicación pasa a segundo plano se deja de ejecutar por completo en el procesador, sólo existe en la memoria RAM, se queda “dormida” existiendo en memoria principal, pausa todas sus acciones, como descargas, un ejemplo claro es si abres Carbon, empiezas a cargar tuits y cambias a otra app, la música puede seguirse reproduciendo gracias a servicios de sistema de Zune. Resumiendo: cuando una aplicación pasa a segundo plano, la misma se suspende, entendiendo suspenderse como en un laptop cuando cierras la tapa, las aplicaciones siguen estando en memoria RAM, pero no las está ejecutando el procesador.

Ahora bien, existe el caso en que el usuario tenga muchas aplicaciones abiertas, y como la memoria RAM está limitada físicamente, se debe encontrar un método para que quepan más, a este método se le llama tombstoning, que es, comparándolo con un PC, cuando hibernas: la aplicación se cierra, pero los datos con los que estabas trabajando en la aplicación se mantienen en memoria principal (RAM). Aquí es cuando aparece el dichoso mensaje de “Reanudando…”, lo que realmente está haciendo es volver a abrir la aplicación y cargarle los datos con los que trabajabas.

Mucho ojo, estos métodos sólo funcionan cuando cambias entre aplicaciones manteniendo la tecla de atrás pulsada, cuando estás en X aplicación, vuelves al home y reabres X desde ahí, es otra instancia completamente nueva, algo de lo que ya me quejaba en la reseña del Nokia Lumia 900 y que me parece inaceptable.

Resumen: usa siempre que puedas el fast app switching manteniendo la tecla de atrás presionada y seleccionando la aplicación a la que quieras volver, teniendo en cuenta que estas aplicaciones no estarán para siempre en memoria. Los juegos no corren en segundo plano, aunque deberían mantener su estado.

Tareas en segundo plano
En Windows Phone, todo lo que no interactúe con la pantalla táctil o no se esté enseñando, son tareas o aplicaciones en segundo plano, a quienes les afectan los casos de arriba, con matices: cada aplicación puede tener un agent que sí se puede ejecutar en background, aunque están bastante limitados; para resumir, estos agentes son:

Audio en segundo plano.

Tareas programadas.
Transferencia de ficheros en segundo plano.
Notificaciones programadas.
Como ya os habíais imaginado, cada una tiene sus limitaciones, por ejemplo en la transferencia de ficheros en segundo plano no puedes usar ficheros de más de 5Mb, la descarga máxima son 20Mb en 3G y 100Mb en Wi-Fi si el teléfono no está conectado a la red de electricidad.

Dentro de las tareas programadas, hay dos tipos: “Agentes periódicos” que pueden correr cada 30 minutos y no pueden tardar más de 25s en ejecutarse y “agentes con uso de recursos intensivo” que pueden tardar hasta 10 minutos ejecutándose. ¿Para qué sirve esta diferenciación? Creo que está bastante claro, que cada uno se use cuando se debería (según la tarea a realizar) y poder ahorrar batería, ese gran dolor de cabeza de los smartphones de hoy en día. El primero, que sólo puede ejecutarse durante 25s se usa, sobre todo, para actualizar live tiles, como cuántos mensajes nuevos tienes en una red social. En el segundo caso, las intensivas, el desarrollador puede poner más restricciones, dado su uso para descargar grandes archivos, como podcasts, por ejemplo, que sólo se ejecute si está sobre una red Wi-Fi.

Resumen: ten en cuenta que es muy probable que esos mapas que pusiste a descargar justo antes de salir de casa no volverán a descargarse hasta que vuelvas a ella, probablemente, tu factura en el plan de datos que tengas contratado te lo agradecerán.


En Mango puedes notificar al usuario de una acción por dos lados: as famosas live tiles o las notificaciones normales. En las dos formas puedes usar dos maneras: notificaciones programadas o push. Sin ninguna duda las notificaciones push son las más costosas, en primer lugar tienes que montar un servidor que recopile la información que quieres enviar al terminal, luego pasar por el servicio de Microsoft Push Notificacion Service, finalmente es este el encargado de enviarlo al teléfono y que tu aplicación recoja la información, así trabajan WhatsApp y aplicaciones de mensajería instantánea (no así Skype, donde solo puedes recibir llamadas mientras la tengas en primer plano).

Resumen: no es tan simple la aparición de un mensaje del estilo “Mamá: trae leche, porfa” en WhatsApp, detrás eso hay una infraestructura que trabaja muy bien y muy rápido.






Comentarios

Entradas populares de este blog

Cortometraje: Street Fighter Legacy + extra

Extra: Ryu vs Ken  

Valve le da la mano a Nvidia para mejorar sus driver en Linux

Ahora que la beta de Steam para Linux está a punto, llega el momento de que NVIDIA comience a limar asperezas con dicho sistema operativo y para ello, nada mejor que un pequeño empujoncito por parte de Valve. La compañía de Santa Clara ha anunciado hoy por medio de una nota de prensa que ha estado trabajando codo con codo con los progenitores de nuestro querido Gordon Freeman, con la idea de mejorar los drivers de sus tarjetas gráficas GeForce de la serie 600 para reducir los tiempos de carga en la plataforma. Según nos cuentan los interesados, los nuevos drivers R310 son el resultado de casi un año de trabajo y son capaces de duplicar su rendimiento al usar la versión beta de Steam para Linux, llegando incluso a recomendar su descarga para tarjetas con algo más de solera de la casa (en concreto el comunicado menciona el modelo 8800 GT). Así que ya lo sabes: si el mundo de Tux no entraña ningún secreto para ti y ya tienes preparadita tu beta de Steam, no olvides pasar por el enlac...

Google glass ofrece 5 juegos y abre mas posibilidades a mas desarrolladores

                                                                              Ok Glass, play a game… Google Glass está buscando establecerse en el mercado como la primera opción completa para gafas de realidad aumentada, y para ello, necesita aplicaciones, muchas aplicaciones; y entre ellas, juegos. Un equipo de desarrollo relacionado a Glass ha puesto un video en YouTube para demostrar los tipos de juegos que se podrán crear en la plataforma basada en Android. Esto, además de dar demos de cómo serán los juegos, da ideas a desarrolladores para que utilicen los lentes a su beneficio y puedan crear aplicaciones sobresalientes. Los títulos ya se pueden obtener en el sitio de Google –pero obviamente necesitas un par de gafas y una cuenta con Google–, y además de un video-demo, Google ...