Com frequência, os usuários investem muito tempo e esforço na criação de uma identidade, inserção de dados e personalização das configurações e preferências no seu app. A preservação desses dados e personalizações quando os usuários fazem upgrade para um novo dispositivo ou reinstalam seu app é importante para garantir uma excelente experiência do usuário. Esta página descreve quais dados armazenar em backup e as opções de backup disponíveis.
Selecionar quais dados armazenar em backup
Figura 1. Restaure os dados de identidade, dados do app e dados de configurações para os usuários que retornam ao seu app.
Os usuários geram muitos dados quando usam seus apps. Faça backup dos dados adequados. O backup parcial de dados pode frustrar os usuários quando eles abrem o app em um novo dispositivo e descobrem que algo está faltando. Os dados importantes a serem armazenados em backup são os dados de identidade, dados do app gerados por usuários e dados de configurações, conforme descrito nas seções a seguir.
Dados de identidade
Você pode ajudar a manter o engajamento dos usuários transferindo a conta deles quando começarem a usar um novo dispositivo.
Credenciais de restauração: a maneira recomendada de restaurar automaticamente o estado de login e as contas do usuário quando ele configura um novo dispositivo, eliminando o atrito do login manual.
Para explorar as soluções de login do Google e facilitar o login do usuário no app, consulte a plataforma Google Identity.
Dados do app
Os dados do app podem incluir conteúdo gerado pelo usuário, como mensagens de texto, imagens e outras mídias. É possível sincronizar dados do app entre dispositivos com tecnologia Android e salvar os dados que você quer usar durante o ciclo de vida normal do app. Também é possível restaurar os dados de um usuário em um novo dispositivo. Para saber como fazer isso, consulte Transferir dados com adaptadores de sincronização.
Dados de configurações
Faça também o backup e a restauração de dados de configurações para preservar as preferências personalizadas do usuário que voltou em um novo dispositivo. Será possível restaurar os dados de configurações mesmo se o usuário não fizer login no seu app. Você pode fazer backup de configurações que o usuário define explicitamente na IU do seu app, bem como de dados transparentes, como uma sinalização indicando se o usuário viu um assistente de configuração.
Para preservar o máximo possível da experiência do usuário em um dispositivo novo, faça backup das configurações a seguir:
Todas as configurações modificadas pelo usuário, por exemplo, ao usar a biblioteca Preference do Jetpack.
Se o usuário ativou ou desativou as notificações e os toques sonoros.
Flags booleanas que indicam se o usuário já encontrou telas de boas-vindas ou dicas introdutórias.
Figura 2. A restauração de configurações em novos dispositivos ajuda a garantir uma ótima experiência do usuário.
Evite fazer o backup de URIs porque eles podem ser instáveis. Em alguns casos, a restauração para um novo dispositivo móvel pode resultar em um URI inválido que não aponta para um arquivo válido. Um exemplo disso é o uso de URIs para salvar a preferência de toque de um usuário. Quando o usuário reinstalar o app, o URI poderá apontar para um toque diferente daquele pretendido ou sequer apontar para toque algum. Em vez de fazer backup do URI, você pode fazer backup de alguns metadados sobre a configuração, como um título ou hash do toque.
Opções de backup
O Android oferece as seguintes maneiras para os apps fazerem backup de dados na nuvem:
- Backup automático para apps (recomendado)
- Backup de chave-valor
- API Large Backups (por aprovação para desenvolvedores de apps em grande escala)
O Backup automático, disponível no Android versão 6.0 e mais recentes, preserva os dados fazendo upload deles para a conta do Google Drive do usuário. O Backup automático inclui arquivos na maioria dos diretórios atribuídos ao seu app pelo sistema. O Backup automático pode armazenar até 25 MB de dados baseados em arquivos por app. O backup de chave-valor (anteriormente conhecido como a API Backup e o Android Backup Service) preserva os dados de configuração na forma de pares de chave-valor fazendo upload deles para o Android Backup Service.
Geralmente, recomendamos o Backup automático porque ele está ativado por padrão e não dá nenhum trabalho para ser implementado. O Backup automático é ativado automaticamente para os apps direcionados ao Android versão 6.0 ou mais recente. O recurso de Backup automático é uma abordagem baseada em arquivos para fazer backup de dados de apps. Embora seja simples implementar o Backup automático, use o recurso de backup de chave-valor se você tiver necessidades mais específicas de backup de dados.
A tabela abaixo descreve algumas das principais diferenças entre o backup de chave-valor e o Backup automático:
| Categoria | Backup de chave-valor (Android Backup Service) | Backup automático do Android |
|---|---|---|
| Versões compatíveis | Android 2.2 (nível da API 8) e versões mais recentes. | Android 6.0 (nível da API 23) e versões mais recentes. |
| Participação | Desativado por padrão. Os apps podem aceitar declarando um agente de backup. | Ativado por padrão. Os apps podem recusar desativando os backups. |
| Implementação |
Os apps precisam implementar um BackupAgent. O
agente de backup define quais dados serão armazenados em backup e como restaurar dados.
|
Por padrão, o Backup automático inclui quase todos os arquivos do app. Você pode usar XML para incluir e excluir arquivos. Internamente, o Backup automático depende de um agente de backup empacotado no SDK. |
| Frequência | Os apps precisam emitir uma solicitação quando há dados prontos para backup. As solicitações de vários apps são agrupadas e executadas em intervalos de algumas horas. | Os backups ocorrem de forma automática, aproximadamente uma vez por dia. |
| Transmission | Os dados de backup podem ser transmitidos por Wi-Fi ou dados móveis. | Por padrão, os dados de backup são transmitidos por Wi-Fi, mas o usuário do dispositivo pode ativar os backups de dados móveis. Se o dispositivo nunca se conectar a uma rede Wi-Fi ou o usuário não mudar as configurações de backup de dados móveis, o Backup automático nunca ocorrerá. |
| Condições de transmissão |
Defina
as condições do dispositivo necessárias para o backup em
onBackup().
|
Defina as condições do dispositivo necessárias para o backup no arquivo XML se o agente de backup padrão estiver sendo usado. |
| Desligamento do app | Os apps não são desativados durante o backup. | O sistema desativa o app durante o backup. |
| Armazenamento de backup | Os dados de backup são armazenados no Android Backup Service e são limitados a 5 MB por app. O Google trata esses dados como informações pessoais, de acordo com a própria Política de Privacidade. | Os dados de backup são armazenados no Google Drive do usuário, limitados a 25 MB por app. O Google trata esses dados como informações pessoais de acordo com a própria Política de Privacidade. |
| Login do usuário | Não exige que o usuário faça login no seu app. O usuário precisa estar conectado ao dispositivo com uma Conta do Google. | Não exige que o usuário faça login no seu app. O usuário precisa estar conectado ao dispositivo com uma Conta do Google. |
| API | Os métodos de API relacionados são baseados em entidade: | Os métodos de API relacionados são baseados em arquivos: |
| Restauração de dados | Os dados são restaurados quando o app é instalado. Se necessário, é possível solicitar uma restauração manual. | Os dados são restaurados quando o app é instalado. Há uma lista de de conjuntos de dados de backup. O usuário pode escolher um dessa lista caso haja vários conjuntos de dados disponíveis. |
| Documentação | Fazer backup de pares de chave-valor usando o Android Backup Service | Fazer backup dos dados do usuário com o Backup automático |
Para mais informações sobre como o backup e a restauração funcionam para cada serviço, consulte Testar backup e restauração.