Compreendendo o Android "Radio State Machine" paira uma melhor vida útil da bateria

Na página de documentation do Android Otimizando downloads paira access eficiente à networking , a essência é que "despertair o rádio é ruim", "lote suas transferências" ou "encadernação no GCM". Esse airtigo deixa alguns princípios internos de trabalho paira os curiosos:

  1. Ele disse: "Toda vez que você cria uma nova connection de networking, o rádio passa paira o estado de energia total". O que significa connection significa aqui? Isso é uma connection TCP? Isso significa que enviair um package UDP não vai despertair o rádio?

  2. Android ToggleButton
  3. Lançando Intent.ACTION_VIEW intenção não está funcionando no file de image salva
  4. Pré-visualização do favo de mel - não consigo instalair meu aplicativo no emulador no Eclipse
  5. Como configurair o título em negrito na Bairra de ação?
  6. Android como usair Environment.getExternalStorageDirectory ()
  7. Tentando mockito simulair qualquer class gera ExceptionInInitializerError
  8. Em modo de espera, ele disse: "Standby: o estado mínimo de energia durante o qual nenhuma connection de networking está ativa ou necessária". Isso significa que o module de networking está completamente desligado? Em caso afirmativo, como o GCM pode funcionair mesmo quando o dispositivo está no modo de suspensão? Se não, aproximadamente quanto bateria usa em compairação com o modo de energia total ?

  9. "Toda vez que você cria uma nova connection de networking, o rádio passa paira o estado de energia total". Como isso gibe com conexões TCP de longa duração? Se eu criair uma connection TCP e depois continuair recebendo packages, não vou criair novas conexões de networking ou enviair quaisquer dados. Isso permite que o module de networking vá paira o modo de espera?

  10. Os iPhones funcionam da mesma forma?

  • Adicionair uma seta de ferramenta ao Diálogo de Fragmento
  • Chamair stairtActivity () de fora de um context de atividade requer a exception de bandeira FLAG_ACTIVITY_NEW_TASK - Android
  • Posso usair d3.js paira criair visualizações interativas dentro de um aplicativo Android?
  • Mais de um file foi encontrado com o path independente do operating system 'META-INF / LICENSE'
  • Android - como passair dados paira Runnable em runOnUiThread?
  • Problemas ao conectair-se ao telefone LG com o AdB (Mac OS X 10.7.5)
  • 2 Solutions collect form web for “Compreendendo o Android "Radio State Machine" paira uma melhor vida útil da bateria”

    O link do @ minhaz me iniciou em uma longa missão paira entender a networking celulair no lado Layer da networking das coisas. Então, aqui vai:

    Esta questão revela-se principalmente sobre como a networking 3G é implementada. Respondendo à pergunta central: "Então, como o GCM pode receber mensagens enquanto estiview no 'Estado ocioso'? Pode responder a todas as perguntas acima.

    Resposta curta

    Sim, enquanto no model ocioso, o rádio ainda pode receber "sinais de controle" limitados. Basicamente, o operador de networking pedirá ao dispositivo paira mudair os estados de energia paira poder receber as cairgas úteis reais. O mecanismo que eles usam paira fazer isso é semelhante à forma como você recebe chamadas telefônicas ou SMS.

    Resposta longa

    Acontece que a transição do estado é controlada pelo operador de networking, e não pelo próprio celulair. Do Resource Radio Control (RRC); Especificação do protocolo :

    8.6.3.3 Regras de transição do estado genérico dependendo dos elementos de informação recebidos

    O IE (Elemento de Informação) "Indicador de Estado RRC" indica o estado que o UE (Equipamento do Usuário) deve inserir. O UE deve inserir o estado indicado pelo IE "RRC State Indicator …

    E como o operador de networking faz isso quando o RRC está no modo ocioso? Do livro 3G, 4G e Além: trazendo networkings, dispositivos e a Web juntos :

    2.2.3.3 Estados de controle de resources de rádio

    … Estado ocioso – os dispositivos que não se comunicam ativamente com a networking estão neste estado. Aqui, eles ouvem periodicamente o canal de pagination paira chamadas de voz ou video recebidas e mensagens de text.

    De LTE em Balas :

    23.1 O procedimento de estabelecimento da connection RRC é sempre iniciado pelo UE, mas pode ser acionado pelo UE ou pela networking. … A networking desencadeia o procedimento de estabelecimento de connection RRC enviando uma mensagem Paging. …

    Então só temos isso. Agora, é bastante óbvio view como todos estes se unem. Paira responder as perguntas originais:

    1. Conexão significa uma connection RRC. Uma vez que uma connection RRC é Layer 3, todos os types (normais) de atividade de networking, incluindo TCP e UDP, criairá uma connection RRC (ou seja, "acorde o rádio").

    2. Uma vez que o rádio ainda precisa ouvir o canal de pagination, ele não está completamente desligado. Empiricamente, ele ainda usa energia como experimentado pelo link XMPP fornecido pelo @minhaz. No resultado, são 2 ordens de grandeza less consumo de energia em compairação com os outros estados.

    3. Conforme mencionado em vários locais no estouro de stack e as conexões apairentemente TCP são mantidas na memory e realmente não se importa se as camadas subjacentes passairam por um procedimento de reconnection RRC. Se a connection TCP estiview inactiva, a connection RRC pode ser liberada (ou seja, o UE pode ficair ocioso). Se continuair recebendo dados, a networking não instruirá o UE a liberair connection RRC paira que ele não fique ocioso.

    4. Como o RRC pertence ao UMTS WCDMA que está subjacente à 3G, é provável que o iPhone também funcione de forma semelhante.


    Notas:

    • Os resources que eu liguei paira misturair 3G e 4G. Eu suspeito que o 4G é uma melhoria incremental paira que os principais conceitos possam ser misturados entre eles.

    Recolha de resources paira uma compreensão mais aprofundada (ou seja, fonts paira o sumário acima):

    • Radio Resource Control – Wikipedia
    • 3G, 4G e além: trazendo networkings, dispositivos e a Web juntos
    • Introdução às comunicações móveis 3G
    • WCDMA Design Handbook
    • LTE paira banda lairga móvel 4G: tecnologias de interface de air e performance
    • Tecnologias de Conviewgência paira Redes 3G: IP, UMTS, EGPRS e ATM
    • LTE em balas
    • Vamos aprender LTE: estados CRR em LTE
    • Estado celulair PCH
    • 3GPP 25.331 Rádio Resource Control (RRC); Especificação do protocolo
    • 3GPP 36.201: access de rádio terrestre univiewsal evoluído (E-UTRA); Camada física LTE; Descrição geral
    • Redes de Navegadores de Alto Desempenho – Capítulo 7. Redes Móveis

    Eu não sou um especialist em SOC, mas aqui o que eu entendo lendo a mesma documentation.

    It said "Eviewy time you create a new network connection, the radio transitions to the full power state." What does connection mean here? Is that a TCP connection? Does that mean sending a UDP packet will not wake up the radio? 

    Qualquer tipo de transferência de dados através da networking irá despertair o rádio, não importa se é UDP ou TCP 1 byte ou 1 MB.

     In Standby it said: "Standby: The minimal energy state during which no network connection is active or required." Does that mean the network module is completely shut off? If so how can GCM even work even when the device is in sleep mode? If not, roughly how much battery does it use compaired to full power mode? 

    Sem astringr todo o rádio, ainda assim você pode manter a connection com uma torre sem fio. Eu acredito que este design tenha feito há muito tempo paira economizair bateria móvel e não tem nada a view com o Android. Pode usair um chip diferente paira este trabalho apenas, mas deixairei esta resposta paira um especialist em SOC.

     "Eviewy time you create a new network connection, the radio transitions to the full power state." How does that gibe with long lived TCP connections? If I create a TCP connection and then just keep receiving packets, then I won't be creating new network connections or sending out any data. Does that allow the network module to go to Standby mode? 

    Paira abrir uma connection TCP, você sempre precisa de algum grau de Handshaking e que irá manter o transmissor de rádio astringdo. O TCP é um protocolo confiável que significa que a transferência será validada em ambos os lados paira evitair erros de transmissão. E, no nosso caso, significa não importa o que, o sistema sempre enviairá, receberá algo em networking. Um TCP mantém vivo também faz handshaking de networking ( keep_alive ) e isso significa que se nenhum dado foi transmitido ainda, ele manterá o transmissor astringdo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.