Otimizar o uso da rede iniciado pelo servidor

A otimização do tráfego de rede enviado por programas de servidor para seu app pode ser desafiadora. Uma solução para esse problema é quando seu app pesquisa regularmente o servidor para verificar se existem atualizações. Essa abordagem pode desperdiçar a conexão e a energia da rede quando o app inicia o rádio de um dispositivo apenas para receber a resposta de que não há nenhum dado novo. A opção de o servidor notificar seu app quando há novos dados é muito mais eficiente, mas descobrir como enviar uma notificação do seu servidor para até milhares de dispositivos não era uma tarefa fácil.

O serviço Google Cloud Messaging (GCM) resolve esse problema de comunicação permitindo que seus servidores enviem notificações para instâncias do app onde quer que estejam instaladas. Isso aumenta a eficiência da rede e diminui o consumo de energia.

Esta lição ensina como usar o serviço GCM para reduzir o uso da rede para ações iniciadas pelo servidor e reduzir o consumo da bateria.

Enviar atualizações de servidor com o GCM

O Google Cloud Messaging (GCM) é um mecanismo leve usado para transmitir mensagens curtas de um servidor para seu app. Com o GCM, seu servidor de app usa um mecanismo de transmissão de mensagens para notificar seu app de que há novos dados disponíveis. Essa abordagem elimina o tráfego de rede que seu app teria, uma vez que não há contato com um servidor de back-end quando não há dados disponíveis.

Um exemplo de uso do GCM é um app que lista sessões de palestrantes em uma conferência. Quando as sessões são atualizadas no servidor, ele envia uma breve mensagem para o app informando que há atualizações disponíveis. Assim, o app poderá chamar o servidor para atualizar as sessões no dispositivo apenas quando houver novos dados.

O GCM é mais eficiente do que fazer seu app verificar se há mudanças no servidor. O serviço GCM elimina conexões desnecessárias em que a pesquisa não retorna atualizações. Além disso, ele evita a execução de solicitações periódicas de rede que podem ligar o rádio de um dispositivo. Como o GCM pode ser usado em muitos apps, a opção de usá-lo reduz o número total de conexões de rede necessárias em um dispositivo e permite que o rádio fique suspenso com mais frequência.

Para mais informações sobre o GCM e como implementá-lo no seu app, consulte Google Cloud Messaging.

Observação: ao usar o GCM, seu app pode transmitir mensagens com prioridade normal ou alta. Em geral, seu servidor deve usar a prioridade normal para entregar mensagens. O uso desse nível de prioridade evitará que os dispositivos sejam ativados se estiverem inativos e em estado Soneca de baixo consumo de energia. Use mensagens de alta prioridade somente se absolutamente necessário.