Учебники

Android — Резервное копирование данных

Android позволяет создавать резервные копии данных приложения в удаленном «облачном» хранилище, чтобы обеспечить точку восстановления для данных и настроек приложения. Вы можете только сделать резервную копию данных вашего приложения. Чтобы получить доступ к данным других приложений, вам нужно рутировать свой телефон.

Чтобы создать приложение для резервного копирования данных, вам необходимо зарегистрировать его в службе резервного копирования Google. Это было объяснено в примере. После регистрации необходимо указать его ключ в 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 предоставляет класс BackUpAgentHelper для обработки всех операций резервного копирования данных. Чтобы использовать этот класс, вы должны расширить свой класс с ним. Его синтаксис приведен ниже —

public class MyBackUpPlace extends BackupAgentHelper {
}

Постоянные данные, которые вы хотите сделать резервную копию, находятся в любой из двух форм. Либо это может быть SharedPrefferences, либо это может быть File. Android поддерживает оба типа резервного копирования в соответствующих классах SharedPreferencesBackupHelper и FileBackupHelper .

Чтобы использовать SharedPerefernceBackupHelper , вам нужно создать экземпляр его объекта с именем вашего файла sharedPerefernces. Его синтаксис приведен ниже —

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

Последнее, что вам нужно сделать, это вызвать метод addHelper, указав строку резервного ключа и вспомогательный объект. Его синтаксис приведен ниже —

addHelper(PREFS_BACKUP_KEY, helper);

Метод addHelper автоматически добавит помощника к данному подмножеству данных в конфигурацию агента.

Помимо этих методов, существуют другие методы, определенные в классе BackupAgentHelper. Они определены ниже —

Sr.No Метод и описание
1

onBackup (ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Запустите процесс резервного копирования на каждом из настроенных обработчиков

2

onRestore (данные BackupDataInput, int appVersionCode, ParcelFileDescriptor newState)

Запустите процесс восстановления на каждом из настроенных обработчиков

onBackup (ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Запустите процесс резервного копирования на каждом из настроенных обработчиков

onRestore (данные BackupDataInput, int appVersionCode, ParcelFileDescriptor newState)

Запустите процесс восстановления на каждом из настроенных обработчиков

Методы класса SharedPreferencesBackUpHelper перечислены ниже.

Sr.No Метод и описание
1

executeBackup (ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Резервное копирование настроенных групп SharedPreferences

2

restoreEntity (данные BackupDataInputStream)

Восстанавливает одну сущность из потока данных восстановления в соответствующее хранилище файлов общих настроек

executeBackup (ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Резервное копирование настроенных групп SharedPreferences

restoreEntity (данные BackupDataInputStream)

Восстанавливает одну сущность из потока данных восстановления в соответствующее хранилище файлов общих настроек

пример

В следующем примере демонстрируется использование класса BackupAgentHelper для создания резервной копии данных вашего приложения.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве или в эмуляторе.

меры Описание
1 Вы будете использовать Android studio для создания приложения Android и назовите его Backup как пакет в пакете com.example.backup.
2 Зарегистрируйте свое приложение в службе резервного копирования Google.
3 Измените AndroidManifest, добавив соответствующий необходимый ключ и другие компоненты.
4 Создайте класс агента резервного копирования с именем, которое вы указали в AndroidManifest.XML
5 Запустите приложение и проверьте результаты

Зарегистрируйте свое приложение для Android в службе резервного копирования Google. Для этого перейдите по этой ссылке . Вы должны согласиться с условиями обслуживания, а затем ввести название пакета приложения. Это показано ниже —

Руководство по резервному копированию данных Android

Затем нажмите «Регистрация в Android». Он даст вам ключ и код AndroidManifest для копирования. Просто скопируйте ключ. Это показано ниже —

Руководство по резервному копированию данных Android

После того, как вы скопируете ключ, вам нужно записать его в свой файл AndroidManifest.XML. Его код приведен ниже —

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

Вот код класса BackUpAgentHelper. Имя класса должно совпадать с тем, которое вы указали в теге backupAgent в приложении в 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);
   }
}

Протестируйте свой BackupAgent

После того, как вы внедрили агент резервного копирования, вы можете протестировать функциональность резервного копирования и восстановления с помощью следующей процедуры, используя bmgr.

Установите ваше приложение на подходящий образ системы Android.

Если вы используете эмулятор, создайте и используйте AVD с Android 2.2 (API Level 8).

Если используется устройство, оно должно работать под управлением Android 2.2 или выше и иметь встроенный Google Play.

Убедитесь, что резервное копирование данных включено

При использовании эмулятора вы можете включить резервное копирование с помощью следующей команды из вашего SDK tools / path —

adb shell bmgr enable true

Если вы используете устройство, откройте Системные настройки, выберите Конфиденциальность, затем включите Резервное копирование моих данных и Автоматическое восстановление.

Выполнение резервного копирования

В целях тестирования вы также можете сделать запрос с помощью следующей команды bmgr —

adb shell bmgr backup your.package.name

Запустите операцию резервного копирования, введя следующую команду.

adb shell bmgr run

Это заставляет Backup Manager выполнять все запросы на резервное копирование, которые находятся в его очереди.

Удалите и переустановите приложение

Удалите приложение с помощью следующей команды —

adb uninstall your.package.name

Затем переустановите приложение и проверьте результаты.