Início > Uncategorized > Afinal, o Windows Phone é Multi-Tarefa ou não?

Afinal, o Windows Phone é Multi-Tarefa ou não?

Com os lançamentos dos Lumias, muita gente começou a colocar a mão nesses fantásticos dispositivos. E finalmente algo que era meramente um conceito chegou ao grande público. De todo tipo, leigos, geeks, fanboys, desenvolvedores. Alguns ficaram extasiados com a experiência e correram pra adquirir o seu. Outros, gostaram, mas preferem seus dispositivos anteriores, sem citar razão, simplesmente porque gostam deles.

Outros, se resumiram a atacar a novidade, incluindo citando características técnicas.

Chegaram inclusive a dizer que o sistema não é multi-tarefa.

Inclusive chegaram a mencionar que, o que o WP faz é meramente guardar atalhos para as aplicações.

O que é um…grande equívoco.

No Windows Phone, o que ocorre simplesmente é que o foco é o gerenciamento de recursos para um gasto mínimo possível e otimização da performance.

Antes de qualquer coisa: Um celular tem recursos de hardware finitos e concorridos. Planos de dados 3G são escassos e caros.

Pra entender isso, você precisa entender os estados de um aplicativo Windows Phone.

Ciclo de Vida de um WinApp

Estados da App

Estado 1 -Running –  “Rodando”

Você clicou no tile de aplicativo. Ele abriu e está ativado, pronto pra você utilizá-lo. Ele é prioridade pra você, e se você está utilizando, é o mais relevante para o seu uso no momento. Logo, é interessante que ele disponha do máximo de recursos possíveis pra que ele rode o mais “liso” possível, sem travadas.

Estado 2 – Dormant – “Dormente”

Você abriu outro aplicativo, ou clicou no botão “Windows”. Logo, outra atividade se tornou mais relevante para você. Então o aplicativo anterior fica em estado Dormant. Ele ainda está vivo, sua instância continua criada, mas ele têm seu acesso a recursos muito restritos. A instância permanece viva pelo fato de como você acabou de sair da aplicação, pode querer voltar em breve à ela. Você pode ter saído pra fazer algo pontual. Então ela mantém em memória os dados populados. Apesar disso, é importante guardar os dados que estão populados no disco local. No próximo estado veremos porque.

O interessante é que, nesse estado, se você quiser que o Aplicativo continue fazendo algumas atividades, por exemplo, tocando uma música ou consumindo dados, ele pode usar um recurso chamado “Background Agents” para isso.

Estado 3 – Tombstoned – “Enterrada”

O SO verifica que sua aplicação está dormente por muito tempo, que sinaliza que você também provavelmente não tem interesse em utilizá-la mais. Logo, não faz sentido, apesar de ainda ter seus recursos restrito, ainda ocupar lugar na memória. Logo, pra preservar ainda mais o harware e valorizar a performance, a aplicação é “Enterrada”.  Ela continua na lista de aplicativos abertos, mas a sua instância é deletada da memória.

Estado 4 – Closed – “Fechada”

Você estava com a aplicação aberta e, ao invés de clicar no botão “windows”, colocando a aplicação explicitamente em memória, você apertou no botão “voltar”, que sinaliza que você fechou a aplicação, não quer mais usar. Ela é fechada completamente, e sai da lista de aplicativos “abertos”.

Em suma, se o usuário abrir a App List, e clicar no aplicativo anterior, se ele estiver Dormant, ele volta pro Foreground como estava. Mas se você ficou sem acessá-lo por muito tempo e o SO colocou ele pro estado Tombstoned, ele volta, mas como a instância dele foi deletada, ele não vai popular os dados automaticamente.  Pra isso, como falei no estado 2 que você salvou os dados no disco local; se ele voltar do mundo dos mortos, ele localiza os dados guardados, e se popula novamente.

Eventos Chamados para mudança de Estados

Com esse novo tipo de paradigma, o SO visa basicamente:

– Otimizar recursos

– Diminuir uso da bateria

– Otimizar uso do consumo de dados

– Processo relevante em primeiro plano

– Processos menos relevantes em segundo plano

Logo, não é que o Windows Phone não é Multi-task. Ele é. O lance é que ele “parece” não ser. A idéia agora é não é tratar um aplicativo que não está sendo usado como o Windows trata hoje, simplesmente minimizando ou tacando no tray.  Porque deixá-lo consumindo memória,bateria, ou ocupando ciclos do processador? A não ser que o programador deseje isso explicitamente, que seja relevante pra sua aplicação. Aí ele usa os tais “Background Agents”.

Interessante que vemos esse mesmo tipo de conceito é utilizado no iOS, e ninguém tenta gritar aos quatro ventos que ele não é multi-tasking. Sinal que o Windows Phone já está incomodando…e os argumentos estão ficando cada vez mais escassos. O Marketplace da Microsoft já está com 70 mil aplicativos. E contando.

Anúncios
Categorias:Uncategorized
  1. equezado
    30 de março de 2012 às 5:34 PM

    BG Agents consegue manter coisas como GPS?

    Ex: 1 – Estou correndo e usando um app estilo Sportracker; 2 – tive que alternar para um app de email ou passar um sms que estava aberta; 3 – alternei novamente para o Sportracker uns 3 minutos depois.

    Os 3 minutos de corrida foram registrados?

  2. Osvarley
    11 de dezembro de 2013 às 6:36 PM

    Preciso deixar 5 sites abertos permanentemente e também preciso de uma maior mobilidade do que o notebook me oferece, mas diante de sua explicação, o WP8 do Nokia 520 que comprei não vai conseguir deixar esses sites trabalhando em segundo plano. Existe alguma configuração que eu possa alterar para deixar esses sites abertos e atualizando 24hs por dia?

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: