page.title=Backup automático para aplicativos page.tags=backup, previewresources, androidm page.keywords=backup, autobackup, preview page.image=images/cards/card-auto-backup_2x.png @jd:body

Neste documento

  1. Visão geral
  2. Configurar backup de dados
  3. Testar configuração de backup
  4. Problemas conhecidos

Frenquentemente, os usuários investem muito tempo e esforço para criar dados e configurar preferências nos aplicativos. Preservar esses dados para os usuários caso substituam um dispositivo quebrado ou atualizem-se para um novo é importante para garantir uma ótima experiência de usuário. Dispositivos que executam o sistema Android M Preview ajudam a garantir uma boa experiência para os usuários nessas circunstâncias realizando o backup dos dados do aplicativo automaticamente no Google Drive. Os dados do aplicativo são restaurados automaticamente se um usuário alterar ou atualizar um dispositivo.

Os backups automáticos estão ativos para todos os aplicativos instalados nos dispositivos que executam o Android M Preview. Nenhum código adicional de aplicativo é necessário. O sistema fornece aos usuários a habilidade de decisão sobre os backups automáticos de dados. Também é possível limitar quais dados do aplicativo devem ter o backup.

Este documento descreve o novo comportamento do sistema e como especificar quais dados terão backup para o aplicativo.

Visão geral

O recurso de backup automático preserva os dados que o aplicativo cria em um dispositivo de usuário enviando-os à conta do Google Drive do usuário e criptografando-os. Não há cobranças para você ou para o usuário em relação ao armazenamento de dados e os dados salvos não contam para a cota do Drive pessoal do usuário. Durante o período do M Preview, os usuários podem armazenar até 25 MB por aplicativo do Android.

Os backups automáticos ocorrem a cada 24 horas, quando o dispositivo está ocioso, carregando e conectado a uma rede Wi-Fi. Quando esses requisitos são atendidos, o serviço Backup Manager envia todos os dados de backup disponíveis à nuvem. Quando um usuário transita para um novo dispositivo, ou desinstala e reinstala o aplicativo com backup realizado, uma operação de restauração copia os dados de backup para o diretório de dados do aplicativo recém-instalado.

Observação: se o usuário usar o serviço de Backup do Android de legado, este novo comportamento não se aplicará aos trabalhos de comportamento de backup existentes com o normal.

Arquivos de dados excluídos automaticamente

Nem todos os dados do aplicativo devem ter backup, como arquivos temporários e de armazenamento em cachê. Portanto, o serviço de backup automático exclui determinados arquivos de dados por padrão:

Configurar backup de dados

Os dados criados por qualquer aplicativo instalado em um dispositivo M Preview têm backup, exceto os arquivos excluídos automaticamente listados na seção anterior. É possível limitar e configurar quais dados terão backup no seu aplicativo usando as configurações no manifesto do aplicativo.

Incluir ou excluir dados

Dependendo de quais dados o aplicativo precisar e do modo que forem salvos, você precisará definir regras específicas para incluir ou excluir determinados arquivos ou diretórios. O serviço de backup automático suporta a configuração dessas regras de backup por meio do uso de um arquivo de configuração XML e do manifesto do aplicativo. No manifesto do aplicativo, é possível especificar o arquivo de configuração de esquema de backup como exibido no seguinte exemplo:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.my.appexample">
    <uses-sdk android:minSdkVersion="MNC"/>
    <uses-sdk android:targetSdkVersion="MNC"/>
    <app ...
        android:fullBackupContent="@xml/mybackupscheme">
    </app>
    ...
</manifest>

Neste código de exemplo, o atributo android:fullBackupContent especifica um arquivo XML, localizado no diretório res/xml/ do projeto de desenvolvimento do aplicativo, chamado mybackupscheme.xml. Este arquivo de configuração inclui as regras de quais arquivos terão backup. O seguinte código de exemplo mostra um arquivo de configuração que exclui um arquivo específico dos backups:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <exclude domain="database" path="device_info.db"/>
</full-backup-content>

Esta configuração de backup de exemplo exclui do backup somente um arquivo específico do banco de dados. Todos os outros arquivos terão backup.

Sintaxe da configuração de backup

A configuração do serviço de backup permite que você especifique quais arquivos incluir ou excluir do backup. A sintaxe para o arquivo XML de configuração de backup de dados é a seguinte:

<full-backup-content>
    <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" />
    <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" />
</full-backup-content>

Os seguintes elementos e atributos permitem que você especifique os arquivos que serão incluídos ou excluídos do backup:

Proibir backup de dados

É possível optar por evitar backups automáticos de quaisquer dados do aplicativo configurando o atributo android:allowBackup para false no elemento do aplicativo do manifesto. Esta configuração é ilustrada no seguinte código de exemplo:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.my.appexample">
    <uses-sdk android:minSdkVersion="MNC"/>
    <uses-sdk android:targetSdkVersion="MNC"/>
    <app ...
        android:allowBackup="false">
    </app>
    ...
</manifest>

Testar configuração de backup

Ao criar uma configuração de backup, deve-se testá-la para garantir que o aplicativo salva os dados e que eles podem ser restaurados corretamente.

Ativar registro de backup

Para ajudar a determinar como o recurso de backup analisa o arquivo XML, ative o registro antes de realizar um backup de teste:

$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE

Teste de backup

Para executar um backup manualmente, primeiro deve-se inicializar o Backup Manager chamando o seguinte comando:

$ adb shell bmgr run

Em seguida, realiza-se o backup manualmente do aplicativo usando o seguinte comando, especificando o nome do pacote para o aplicativo como o parâmetro <PACKAGE>:

$ adb shell bmgr fullbackup <PACKAGE>

Teste de restauração

Para iniciar manualmente uma restauração após o backup dos dados do aplicativo, chame o seguinte comando, especificando o nome do pacote para o aplicativo como o parâmetro <PACKAGE>:

$ adb shell bmgr restore <PACKAGE>

Aviso: esta ação impede o aplicativo de apagar os dados antes de realizar a operação de restauração.

Para iniciar o processo de restauração do aplicativo, deve-se desinstalar e reinstalá-lo. Os dados do aplicativo são restaurados automaticamente a partir da nuvem quando a instalação do aplicativo for concluída.

Resolução de problemas de backups

Caso ocorra problemas, é possível apagar os dados de backup e os metadados associados desativando o backup e reativando-o em Settings (Configurações) > Backup, redefinindo o dispositivo para as especificações de fábrica, ou chamando este comando:

$ adb shell bmgr wipe <TRANSPORT> <PACKAGE>

O valor <TRANSPORT> deve ser prefixado por com.google.android.gms. Para obter uma lista de transportes, chame o seguinte comando:

$ adb shell bmgr list transports

Problemas conhecidos

A seguir estão os problemas conhecidos com o serviço de backup automático: