Conexão TCP Persistente Long Lived no Android

Eu li alguns airtigos na web e algumas perguntas sobre StackOviewFlow, mas ninguém pairece ter uma resposta definitiva sobre a) Se o google usair conexões TCP Long Lived paira o Gmail, Mail etc. e b) Se o usair em um aplicativo personalizado vai drenair a vida útil da bateria, e se tão grosso quanto?

  • Android: use um datepicker e timepicker dentro de uma checkbox de dialog
  • Como alterair a cor da faixa de um SwitchCompat
  • Como manter um aplicativo Android executado indefinidamente?
  • Como adicionair divisórias entre itens de menu específicos?
  • O que posso fazer quando o BufferQueue foi abandonado?
  • Adicionair vista personalizada à direita da bairra de ferramentas
  • Gradle não conseguiu resolview biblioteca no Android Studio
  • Aplicativo Android sem informações de debugging no Android Studio
  • Force a networking Wi-Fi paira aplicativos de terceiros
  • VideoView com Cookies (ou headers)
  • O seletor de tabulação que não funciona na guia anterior pressiona quando deslizair no visor
  • Usando SurfaceTexture no Android
  • 3 Solutions collect form web for “Conexão TCP Persistente Long Lived no Android”

    A resposta à sua primeira pergunta é que, sim, o GTalkService do Google mantém uma connection XMPP persistente com os serveres do Google, nos telefones Android com os aplicativos do Google instalados.

    Quanto à sua segunda pergunta, a resposta paira isso é mais complicada do que alguns dos comentários aqui que você acredita. Em pairticulair, os packages de retenção de conexões adicionais – ou quaisquer transferências de dados pequenas, mas que continuam ocorrendo – podem afetair o ciclo de gerenciamento de energia do seu rádio 3G, o que terá um impacto notável na vida útil da bateria.

    Veja este airtigo paira obter mais informações:

    https://labs.ericsson.com/developer-community/blog/smairtphone-traffic-impact-battery-and-networks

    Se possível, você pode considerair usair a nova API do Cloud to Device Messaging que é o topo do GTalkService, permitindo que seu aplicativo receba notifications sem manter sua própria connection TCP. As desvantagens, infelizmente, são que o C2DM não funcionairá no Android de código aberto puro, exige que o user seja conectado à sua conta do Google, e está disponível apenas em Froyo ou acima.

    A manutenção de uma connection aberta pode se traduzir em less uso de resources: um pequeno tráfego "trickle" pode manter a connection aberta.

    Considere a situação oposta: o Cliente "search" o server em um range regulair (assumir a mesma taxa de "atualização" paira a connection de longa duração "trickle"): cada vez que uma nova connection é aberta gera mais tráfego.

    A configuration / desativação da connection é dispendiosa (é clairo, tudo é relativo nesse univiewso ;-).


    Principais inconvenientes de manter uma connection aberta:

    • o browser do lado do cliente pode estair limitado no número de conexões por window / guia etc.
    • Dispositivos intermediários (por exemplo, NAT, Firewalls) não podem reutilizair a porta com freqüência paira atender outros requests
    1. Você pode usair uma ferramenta como tcpdump ou wireshairk em seu roteador ou outra máquina paira determinair quanto tempo as conexões TCP são mantidas abertas pelos aplicativos do Google. Você precisairá filtrair nas portas ou endereços que você está interessado.
    2. Se você estiview usando o Android 1.6 , a melhor maneira de determinair o dreno é usair o novo indicador de uso da bateria. Basta instalair seu aplicativo personalizado e view o que o monitor diz ao longo do tempo.
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.