Quais são as principais diferenças entre as implementações de multitarefa para Android e iPhone no nível do aplicativo?
(Não vamos transformar isso em um argumento subjetivo de fanboy, por favor?)
Quais são as principais diferenças entre as implementações de multitarefa para Android e iPhone no nível do aplicativo?
(Não vamos transformar isso em um argumento subjetivo de fanboy, por favor?)
Respostas:
Esta não é uma resposta para sua pergunta, mas vale a pena esclarecer que ambos os sistemas operacionais são totalmente multitarefa [1] sob o capô (na medida em que podem e executam vários processos).
Sua pergunta é claramente sobre multitarefa em nível de aplicativo ("posso deixar um aplicativo em execução enquanto estiver usando outro?"), Que é um uso relativamente novo do termo e nem sempre é bem definido, mesmo que tenha algum óbvio. exemplos (como ouvir Pandora enquanto lê email). Especificamente, muitos aplicativos não precisam ser executados em segundo plano para se apresentarem ao usuário como se nunca tivessem parado de executar, desde que salvem / restaurem seu estado. Os aplicativos que precisam executar operações periódicas (como verificar e-mails ou exibir alarmes) também não precisam executar continuamente em segundo plano; eles podem ser chamados ocasionalmente pelo sistema operacional. O grande problema são geralmente aplicativos que precisam de CPU constante em segundo plano, como o Pandora.
Em geral, a Apple trabalhou muito mais para desencorajar ou impedir a execução contínua de aplicativos em segundo plano, enquanto o Android parece mais aberto a ele. Mas eles estão convergindo, pois a Apple permite que aplicativos como o Pandora sejam executados em segundo plano e o Android fornece ferramentas mais ricas para desencorajar tarefas desnecessárias em segundo plano, quando bastam pesquisas ou estado salvo.
Tanto quanto eu posso dizer.
A multitarefa do iPhone é muito mais restrita. A atividade multitarefa deve ser uma das seguintes:
[Obrigado Gizmodo !]
O Android, por outro lado, permite uma verdadeira multitarefa de maneira semelhante a um PC.
Antes de ser acusado de ser um fanboi do Android, deixe-me explicar uma coisa. O modelo de multitarefa do iPhone é mais que suficiente para a maioria das situações e evita muitos problemas (ou seja, falta de memória) que acompanham o sistema Android.
O Android tem um conceito diferente de multitarefa no nível do aplicativo que um PC. Há uma desconexão entre os dados, como visualizá-los e como operá-los.
Você pode ter apenas uma visualização de aplicativo aberta por vez, mas a operação nos dados pode estar em segundo plano. Isso dificulta que os desenvolvedores de aplicativos sintam a área de trabalho ao alternar entre aplicativos, sair de aplicativos e iniciar novos aplicativos. Às vezes parece impossível matar um aplicativo, mas também às vezes parece impossível mudar para uma tarefa e voltar novamente. Depende de como o desenvolvedor do aplicativo fez isso.
Você pode ter tantos processos em segundo plano em execução ao mesmo tempo, e eles são agendados como aplicativos de desktop. O kernel do Linux escolherá como priorizar quais obterão recursos de memória e CPU. Quando o telefone decide que está sem memória, ele começa a matar coisas para ganhar mais memória. Isso é feito de maneira diferente da maneira como o Linux ou a maioria dos outros sistemas operacionais normalmente se comporta.
Os dados de um programa estão sempre disponíveis. Desde que o aplicativo tenha permissões para acessar os dados, eles estarão disponíveis. Você não precisa de um serviço em execução em segundo plano para estar disponível.
A Apple tem maneiras muito específicas pelas quais você pode realizar várias tarefas ao mesmo tempo. Eles são um subconjunto das maneiras que o Android permite. Somente tipos específicos de aplicativos podem ser executados em segundo plano e precisam ser programados especificamente para isso.
Uma área de trabalho é muito diferente de ambas as coisas. A visão, os dados e a lógica de processamento de cada aplicativo são frequentemente bloqueados. Eu diria que WebOS, Symbian e Maemo / Meego são exemplos disso em dispositivos móveis. Se um aplicativo expor seus dados e processamento em segundo plano a outras "visualizações", tenderá a ser um aplicativo muito especial.