Pergunta

Eu li alguns artigos na web e algumas perguntas sobre o StackOverflow, mas ninguém parece ter uma resposta definitiva sobre a) se o Google usar conexões TCP de vida longa para Gmail, Mail etc. eb) se usá -lo em um aplicativo personalizado drenará a duração da bateria e se é tão aproximadamente quanto?

Foi útil?

Solução

A resposta para sua primeira pergunta é que, sim, o GtalkService do Google mantém uma conexão XMPP persistente com os servidores do Google, em telefones Android com os aplicativos do Google instalados.

Quanto à sua segunda pergunta, a resposta é mais complicada do que alguns dos comentários aqui que você acreditaria. Em particular, os pacotes mantidos de conexões adicionais - ou transferências de dados pequenas, mas que ocorrem continuamente - podem afetar o ciclo do estado de gerenciamento de energia 3G, que vai Tenha um impacto perceptível na duração da bateria.

Consulte este artigo para obter mais informações:

https://www.ericson.com/research-blog/smartphone-traffic-impact-battery-networks/

Se possível, considere usar a nova API de mensagens em nuvem para dispositivos, que pegam carrinhos no topo do GtalkService, permitindo que seu aplicativo receba notificações sem manter sua própria conexão TCP. Infelizmente, as desvantagens são que o C2DM não funcionará no Android de código aberto puro, exige que o usuário seja assinado em sua conta do Google e está disponível apenas no Froyo ou acima.

Outras dicas

Mantendo uma conexão aberta posso Traduza -se a menos uso de recursos: um pequeno tráfego de "gotejamento" pode manter a conexão aberta.

Considere a situação oposta: o cliente "pesquisa" o servidor em um intervalo regular (suponha a mesma taxa de "atualização" da conexão de longa duração "Trickle"): cada vez que uma nova conexão é aberta gera mais tráfego.

A configuração/desmontagem da conexão é cara (é claro, tudo é relativo neste universo ;-).


Principais desvantagens da manutenção de uma conexão aberta:

  • O navegador lateral do cliente pode ser limitado no número de conexões por janela/guia etc.
  • Dispositivos intermediários (por exemplo, Firewalls) não podem reutilizar a porta com tanta frequência para atender a outros pedidos
  1. Você pode usar uma ferramenta como tcpdump ou wireshark No seu roteador ou outra máquina, para determinar quanto tempo as conexões TCP são mantidas abertas pelos aplicativos do Google. Você precisará filtrar as portas ou endereços nos quais está interessado.
  2. Se você está usando Android 1.6, a melhor maneira de determinar o dreno é usar o novo indicador de uso da bateria. Basta instalar seu aplicativo personalizado e ver o que o monitor diz ao longo do tempo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top