sinconização: como resolver?
DESCRIPTION
Palestra apresentada no AndroiDay 2013.TRANSCRIPT
![Page 1: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/1.jpg)
![Page 2: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/2.jpg)
SincronizaçãoComo resolver?
Renato Ferreira SoaresVinicius Pilot Moleta
![Page 3: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/3.jpg)
Por que sincronizar?
![Page 4: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/4.jpg)
CenárioSincronização: Como resolver?
AmbienteAplicativo Dados
![Page 5: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/5.jpg)
OnlineSincronização: Como resolver?
AmbienteAplicativo DadosConsulta online de dados
![Page 6: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/6.jpg)
Sincronização: Como resolver?
Online
• Dependência de conexão de dados
• Demora na resposta
• Cota 3G
![Page 7: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/7.jpg)
ReplicaçãoSincronização: Como resolver?
AmbienteAplicativo Dados
Replicação
![Page 8: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/8.jpg)
Sincronização: Como resolver?
Replicação
• Consistência
• Eficiência do dispositivo
• Manutenção
![Page 9: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/9.jpg)
SincronizaçãoSincronização: Como resolver?
AmbienteAplicativo Dados
![Page 10: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/10.jpg)
CenárioSincronização: Como resolver?
AmbienteA2
Dados Centralizados
D1D2 A1
D3
A3
![Page 11: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/11.jpg)
Parece importante, mas como eu faço?
![Page 12: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/12.jpg)
PollingSincronização: Como resolver?
Aplicativo
Servidor
![Page 13: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/13.jpg)
Sincronização: Como resolver?
Polling
• Uso ineficiente dos recursos
• Bateria
• Internet
• Sincronização perdidas
![Page 14: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/14.jpg)
Como considerar tudo isso?
![Page 15: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/15.jpg)
SyncAdapterSincronização: Como resolver?
• Framework Android
• Coordena sincronizações
• Uso eficiente de recursos
• Centralizado para todos os aplicativos
![Page 16: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/16.jpg)
ContaSincronização: Como resolver?
• Necessidade de um tipo de conta
• Terceiro
• Própria
• Adicionar uma conta desse tipo
• Autenticação na sincronização
• Configurações
![Page 17: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/17.jpg)
SincronizaçãoSincronização: Como resolver?
• Lógica de transferência de dados
• Serviço para framework executar seu
código
• Resultado para o framework
• Configurações
![Page 18: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/18.jpg)
DadosSincronização: Como resolver?
• Content provider e base SQLite
• Content resolver
![Page 19: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/19.jpg)
SyncAdapterSincronização: Como resolver?
Autenticação Conta Serviço de Sincronização
Content Resolver SyncAdapterImplementação
Servidor
Content Provider
SQLite
![Page 20: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/20.jpg)
Então sempre devo utilizar somente o SyncAdapter?DEPENDE
![Page 21: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/21.jpg)
Utilização SyncAdapter
Sincronização: Como resolver?
• Dados mais importantes que recursos
• Online
• Assíncrono
![Page 22: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/22.jpg)
E quando o SyncAdapter irá executar?
![Page 23: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/23.jpg)
TécnicasSincronização: Como resolver?
Aplicativo
Dados
Geração de Dados
• Requisições Periódicas• Requisição Forçada
Dados
Servidor
![Page 24: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/24.jpg)
Mas e se eu quiser que o servidor informe
quando um dado foi modificado?
![Page 25: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/25.jpg)
A
Google Cloud Messaging
Sincronização: Como resolver?
• Serviço mantido pelo Google
• Grátis
• Limite do tamanho da requisição
• Específico para notificações
![Page 26: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/26.jpg)
A
Google Cloud Messaging
Sincronização: Como resolver?
Google Cloud Messaging
Aplicativo
Registrar o Dispositivo / Aplicativo em um projeto específico.
Registro ID
ServidorRegistro ID
![Page 27: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/27.jpg)
A
Google Cloud Messaging
Sincronização: Como resolver?
Servidor
Google Cloud Messaging Requisita que uma
mensagem seja enviada.
Aplicativo
Entrega da mensagem quando estiver
disponível.
![Page 28: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/28.jpg)
Pode-se unir as técnicas?
![Page 29: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/29.jpg)
Sincronização: Como resolver?
Aplicativo
Geração de DadosGeração de Dados
Google Cloud Messaging
Servidor
![Page 30: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/30.jpg)
E o servidor?
![Page 31: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/31.jpg)
ServidorSincronização: Como resolver?
• Muitas notificações ao dispositivo
• Grande volume de dados
• Dados desnecessários
![Page 32: Sinconização: como resolver?](https://reader034.vdocuments.mx/reader034/viewer/2022052507/5590b0871a28abfd058b45dc/html5/thumbnails/32.jpg)