Android - Sauvegarde des données

Android vous permet de sauvegarder les données de votre application sur un stockage «cloud» distant, afin de fournir un point de restauration pour les données et les paramètres de l'application. Vous ne pouvez sauvegarder que les données de votre application. Pour accéder aux données des autres applications, vous devez rooter votre téléphone.

Afin de créer une application de sauvegarde de données, vous devez enregistrer votre application auprès du service de sauvegarde Google. Cela a été expliqué dans l'exemple. Après l'enregistrement, vous devez spécifier sa clé dans le fichier 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 fournit BackUpAgentHelperclasse pour gérer toutes les opérations de sauvegarde des données. Pour utiliser cette classe, vous devez étendre votre classe avec elle. Sa syntaxe est donnée ci-dessous -

public class MyBackUpPlace extends BackupAgentHelper {
}

Les données persistantes que vous souhaitez sauvegarder se présentent sous l'une des deux formes. Soit il peut s'agir de SharedPrefrences, soit de File. Android prend en charge les deux types de sauvegarde dans les classes respectives deSharedPreferencesBackupHelper et FileBackupHelper.

Pour utiliser SharedPerefernceBackupHelper, vous devez instancier son objet avec le nom de votre fichier sharedPerefernces. Sa syntaxe est donnée ci-dessous -

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

La dernière chose que vous devez faire est d'appeler la méthode addHelper en spécifiant la chaîne de clé de sauvegarde et l'objet d'assistance. Sa syntaxe est donnée ci-dessous -

addHelper(PREFS_BACKUP_KEY, helper);

La méthode addHelper ajoutera automatiquement un assistant à un sous-ensemble de données donné à la configuration de l'agent.

En dehors de ces méthodes, il existe d'autres méthodes définies dans la classe BackupAgentHelper. Ils sont définis ci-dessous -

Sr.Non Méthode et description
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Exécutez le processus de sauvegarde sur chacun des gestionnaires configurés

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

Exécutez le processus de restauration sur chacun des gestionnaires configurés

Les méthodes de la classe SharedPreferencesBackUpHelper sont répertoriées ci-dessous.

Sr.Non Méthode et description
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Sauvegarde les groupes SharedPreferences configurés

2

restoreEntity(BackupDataInputStream data)

Restaure une entité du flux de données de restauration vers son magasin de fichiers de préférences partagés approprié

Exemple

L'exemple suivant illustre l'utilisation de la classe BackupAgentHelper pour créer une sauvegarde de vos données d'application.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel ou dans un émulateur.

Pas La description
1 Vous utiliserez le studio Android pour créer une application Android et la nommerez Sauvegarde sous un package com.example.backup.
2 Enregistrez votre application auprès du service de sauvegarde Google.
3 Modifiez le fichier AndroidManifest pour ajouter la clé nécessaire respective et d'autres composants
4 Créez une classe d'agent de sauvegarde avec le nom que vous spécifiez dans AndroidManifest.XML
5 Exécutez l'application et vérifiez les résultats

Enregistrez votre application Android avec le service de sauvegarde Google. Pour ce faire, visitez ce lien . Vous devez accepter les conditions d'utilisation, puis saisir le nom du package d'application. Il est montré ci-dessous -

Cliquez ensuite sur S'inscrire avec le service de sauvegarde Android. Il vous donnerait votre clé, ainsi que votre code AndroidManifest à copier. Copiez simplement la clé. Il est montré ci-dessous -

Une fois que vous avez copié la clé, vous devez l'écrire dans votre fichier AndroidManifest.XML. Son code est donné ci-dessous -

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

Voici le code de la classe BackUpAgentHelper. Le nom de la classe doit être le même que celui que vous avez spécifié dans la balise backupAgent sous application dans 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);
   }
}

Testez votre BackupAgent

Une fois que vous avez implémenté votre agent de sauvegarde, vous pouvez tester la fonctionnalité de sauvegarde et de restauration avec la procédure suivante, en utilisant bmgr.

Installez votre application sur une image système Android appropriée.

Si vous utilisez l'émulateur, créez et utilisez un AVD avec Android 2.2 (niveau d'API 8).

Si vous utilisez un appareil, celui-ci doit exécuter Android 2.2 ou version ultérieure et disposer de Google Play intégré.

Assurez-vous que la sauvegarde des données est activée

Si vous utilisez l'émulateur, vous pouvez activer la sauvegarde avec la commande suivante à partir de vos outils / chemin SDK -

adb shell bmgr enable true

Si vous utilisez un appareil, ouvrez les Paramètres système, sélectionnez Confidentialité, puis activez Sauvegarder mes données et Restauration automatique.

Effectuer une sauvegarde

À des fins de test, vous pouvez également faire une demande avec la commande bmgr suivante -

adb shell bmgr backup your.package.name

Lancez une opération de sauvegarde en tapant la commande suivante.

adb shell bmgr run

Cela force le gestionnaire de sauvegarde à exécuter toutes les demandes de sauvegarde qui se trouvent dans sa file d'attente.

Désinstaller et réinstaller votre application

Désinstallez l'application avec la commande suivante -

adb uninstall your.package.name

Puis réinstallez l'application et vérifiez les résultats.