Android - Backup de dados
O Android permite que você faça backup dos dados do aplicativo para armazenamento remoto "na nuvem", a fim de fornecer um ponto de restauração para os dados e configurações do aplicativo. Você só pode fazer backup dos dados do seu aplicativo. Para acessar os dados de outros aplicativos, você precisa fazer o root em seu telefone.
Para fazer um aplicativo de backup de dados, você precisa registrar seu aplicativo no serviço de backup do Google. Isso foi explicado no exemplo. Após o registro, você deve especificar sua chave no AndroidManifest.XML
<application
android:allowBackup="true"
android:backupAgent="MyBackupPlace">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>
Android fornece BackUpAgentHelperclasse para lidar com todas as operações de backup de dados. Para usar esta classe, você deve estender sua classe com ela. Sua sintaxe é fornecida abaixo -
public class MyBackUpPlace extends BackupAgentHelper {
}
Os dados persistentes que você deseja fazer backup estão em um dos dois formatos. Pode ser SharedPrefrences ou File. O Android suporta os dois tipos de backup nas respectivas classes deSharedPreferencesBackupHelper e FileBackupHelper.
Para ser usado SharedPerefernceBackupHelper, você precisa instanciar seu objeto com o nome do seu arquivo sharedPerefernces. Sua sintaxe é fornecida abaixo -
static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);
A última coisa que você precisa fazer é chamar o método addHelper especificando a string da chave de backup e o objeto auxiliar. Sua sintaxe é fornecida abaixo -
addHelper(PREFS_BACKUP_KEY, helper);
O método addHelper adicionará automaticamente um auxiliar a um determinado subconjunto de dados à configuração do agente.
Além desses métodos, existem outros métodos definidos na classe BackupAgentHelper. Eles são definidos abaixo -
Sr. Não | Método e descrição |
---|---|
1 | onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) Execute o processo de backup em cada um dos manipuladores configurados |
2 | onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) Execute o processo de restauração em cada um dos manipuladores configurados |
Os métodos da classe SharedPreferencesBackUpHelper estão listados abaixo.
Sr. Não | Método e descrição |
---|---|
1 | performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) Faz backup dos grupos configurados de SharedPreferences |
2 | restoreEntity(BackupDataInputStream data) Restaura uma entidade do fluxo de dados de restauração para seu armazenamento de arquivo de preferências compartilhado apropriado |
Exemplo
O exemplo a seguir demonstra o uso da classe BackupAgentHelper para criar backup de seus dados de aplicativo.
Para experimentar este exemplo, você precisa executá-lo em um dispositivo real ou em um emulador.
Passos | Descrição |
---|---|
1 | Você usará o Android Studio para criar um aplicativo Android e nomeá-lo como Backup no pacote com.example.backup. |
2 | Registre seu aplicativo com o serviço de backup do Google. |
3 | Modifique o AndroidManifest para adicionar a respectiva chave necessária e outros componentes |
4 | Crie uma classe de agente de backup com o nome que você especificar em AndroidManifest.XML |
5 | Execute o aplicativo e verifique os resultados |
Registre seu aplicativo Android com o serviço de backup do Google. Para fazer isso, visite este link . Você deve concordar com os termos de serviço e, em seguida, inserir o nome do pacote do aplicativo. É mostrado abaixo -
Em seguida, clique em Register with android backup service. Isso lhe daria sua chave, junto com o código do AndroidManifest para copiar. Basta copiar a chave. É mostrado abaixo -
Depois de copiar a chave, você precisa gravá-la em seu arquivo AndroidManifest.XML. Seu código é fornecido abaixo -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.backup" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:backupAgent="MyBackUpPlace"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.backup.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>
</manifest>
Aqui está o código da classe BackUpAgentHelper. O nome da classe deve ser o mesmo que você especificou na tag backupAgent em aplicativo em AndroidManifest.XML
package com.example.backup;
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class MyBackUpPlace extends BackupAgentHelper {
static final String File_Name_Of_Prefrences = "myPrefrences";
static final String PREFS_BACKUP_KEY = "backup";
@Override
public void onCreate() {
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this,
File_Name_Of_Prefrences);
addHelper(PREFS_BACKUP_KEY, helper);
}
}
Teste seu BackupAgent
Depois de implementar seu agente de backup, você pode testar a funcionalidade de backup e restauração com o seguinte procedimento, usando bmgr.
Instale seu aplicativo em uma imagem de sistema Android adequada.
Se estiver usando o emulador, crie e use um AVD com Android 2.2 (API de nível 8).
Se estiver usando um dispositivo, ele deve executar o Android 2.2 ou superior e ter o Google Play integrado.
Certifique-se de que o backup de dados esteja ativado
Se estiver usando o emulador, você pode ativar o backup com o seguinte comando nas ferramentas / caminho do SDK -
adb shell bmgr enable true
Se estiver usando um dispositivo, abra as Configurações do sistema, selecione Privacidade e ative Fazer backup dos meus dados e Restauração automática.
Executando backup
Para fins de teste, você também pode fazer uma solicitação com o seguinte comando bmgr -
adb shell bmgr backup your.package.name
Inicie uma operação de backup digitando o seguinte comando.
adb shell bmgr run
Isso força o gerenciador de backup a executar todas as solicitações de backup que estão em sua fila.
Desinstale e reinstale seu aplicativo
Desinstale o aplicativo com o seguinte comando -
adb uninstall your.package.name
Em seguida, reinstale o aplicativo e verifique os resultados.