Android: copia de seguridad de datos

Android le permite hacer una copia de seguridad de los datos de su aplicación en un almacenamiento remoto "en la nube", con el fin de proporcionar un punto de restauración para los datos y la configuración de la aplicación. Solo puede hacer una copia de seguridad de los datos de su aplicación. Para acceder a los datos de otras aplicaciones, necesita rootear su teléfono.

Para crear una aplicación de respaldo de datos, debe registrar su aplicación con el servicio de respaldo de Google. Esto se ha explicado en el ejemplo. Después de registrarse, debe especificar su clave en el 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 proporciona BackUpAgentHelperclase para manejar todas las operaciones de respaldo de datos. Para utilizar esta clase, debe ampliar su clase con ella. Su sintaxis se da a continuación:

public class MyBackUpPlace extends BackupAgentHelper {
}

Los datos persistentes que desea respaldar están en cualquiera de las dos formas. Podría ser SharedPrefrences o podría ser File. Android admite ambos tipos de copia de seguridad en las respectivas clases deSharedPreferencesBackupHelper y FileBackupHelper.

Para usar SharedPerefernceBackupHelper, debe crear una instancia de su objeto con el nombre de su archivo de preferencias compartido. Su sintaxis se da a continuación:

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);

Lo último que debe hacer es llamar al método addHelper especificando la cadena de clave de respaldo y el objeto de ayuda. Su sintaxis se da a continuación:

addHelper(PREFS_BACKUP_KEY, helper);

El método addHelper agregará automáticamente un ayudante a un subconjunto de datos dado a la configuración del agente.

Aparte de estos métodos, hay otros métodos definidos en la clase BackupAgentHelper. Se definen a continuación:

No Señor Método y descripción
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Ejecute el proceso de copia de seguridad en cada uno de los controladores configurados

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

Ejecute el proceso de restauración en cada uno de los controladores configurados

Los métodos de la clase SharedPreferencesBackUpHelper se enumeran a continuación.

No Señor Método y descripción
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Realiza una copia de seguridad de los grupos de SharedPreferences configurados

2

restoreEntity(BackupDataInputStream data)

Restaura una entidad del flujo de datos de restauración a su almacén de archivos de preferencias compartidas adecuado

Ejemplo

El siguiente ejemplo demuestra el uso de la clase BackupAgentHelper para crear una copia de seguridad de los datos de su aplicación.

Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real o en un emulador.

Pasos Descripción
1 Utilizará Android Studio para crear una aplicación de Android y nombrarla como Copia de seguridad en un paquete com.example.backup.
2 Registre su aplicación con el servicio de respaldo de Google.
3 Modifique el AndroidManifest para agregar la clave necesaria respectiva y otros componentes
4 Cree una clase de agente de respaldo con el nombre que especifique en AndroidManifest.XML
5 Ejecute la aplicación y verifique los resultados

Registre su aplicación de Android con el servicio de copia de seguridad de Google. Para hacer eso, visite este enlace . Debe aceptar los términos de servicio y luego ingresar el nombre del paquete de la aplicación. Se muestra a continuación:

Luego haga clic en Registrarse con el servicio de respaldo de Android. Le daría su clave, junto con su código AndroidManifest para copiar. Simplemente copie la clave. Se muestra a continuación:

Una vez que copie la clave, debe escribirla en su archivo AndroidManifest.XML. Su código se da a continuación:

<?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>

Aquí está el código de la clase BackUpAgentHelper. El nombre de la clase debe ser el mismo que especificó en la etiqueta backupAgent en la aplicación en 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);
   }
}

Pruebe su BackupAgent

Una vez que haya implementado su agente de respaldo, puede probar la funcionalidad de respaldo y restauración con el siguiente procedimiento, usando bmgr.

Instale su aplicación en una imagen de sistema Android adecuada.

Si usa el emulador, cree y use un AVD con Android 2.2 (API nivel 8).

Si usa un dispositivo, el dispositivo debe ejecutar Android 2.2 o superior y tener Google Play integrado.

Asegúrese de que la copia de seguridad de datos esté habilitada

Si usa el emulador, puede habilitar la copia de seguridad con el siguiente comando desde las herramientas / ruta de su SDK:

adb shell bmgr enable true

Si usa un dispositivo, abra la Configuración del sistema, seleccione Privacidad, luego habilite Copia de seguridad de mis datos y Restauración automática.

Realización de respaldo

Para fines de prueba, también puede realizar una solicitud con el siguiente comando bmgr:

adb shell bmgr backup your.package.name

Inicie una operación de copia de seguridad escribiendo el siguiente comando.

adb shell bmgr run

Esto obliga al Administrador de copia de seguridad a realizar todas las solicitudes de copia de seguridad que están en su cola.

Desinstale y reinstale su aplicación

Desinstale la aplicación con el siguiente comando:

adb uninstall your.package.name

Luego reinstale la aplicación y verifique los resultados.