📜  Android-数据备份

📅  最后修改于: 2021-01-05 05:12:26             🧑  作者: Mango


Android允许您将应用程序数据备份到远程“云”存储中,以便为应用程序数据和设置提供还原点。您只能备份您的应用程序数据。为了访问其他应用程序数据,您需要对手机进行植根。

为了制作数据备份应用程序,您需要向Google备份服务注册您的应用程序。在示例中对此进行了解释。注册后,您必须在AndroidManifest.XML中指定其密钥



   

Android提供了BackUpAgentHelper类来处理数据备份的所有操作。为了使用此类,您必须使用它来扩展您的类。其语法如下-

public class MyBackUpPlace extends BackupAgentHelper {
}

您要备份的持久性数据采用两种形式之一。它可以是SharedPrefrences,也可以是File。 Android在SharedPreferencesBackupHelperFileBackupHelper的相应类中支持两种备份类型。

为了使用SharedPerefernceBackupHelper ,您需要使用sharedPerefernces文件的名称实例化其对象。其语法如下-

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

您需要做的最后一件事是通过指定备份密钥字符串和helper对象来调用addHelper方法。其语法如下-

addHelper(PREFS_BACKUP_KEY, helper);

addHelper方法将自动将助手添加到代理配置的给定数据子集中。

除了这些方法之外,BackupAgentHelper类中还定义了其他方法。它们定义如下-

Sr.No Method & description
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Run the backup process on each of the configured handlers

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

Run the restore process on each of the configured handlers

下面列出了SharedPreferencesBackUpHelper类的方法。

Sr.No Method & description
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

Backs up the configured SharedPreferences groups

2

restoreEntity(BackupDataInputStream data)

Restores one entity from the restore data stream to its proper shared preferences file store

以下示例演示了如何使用BackupAgentHelper类创建应用程序数据的备份。

要试验该示例,您需要在实际设备或仿真器上运行它。

Steps Description
1 You will use Android studio to create an Android application and name it as Backup under a package com.example.backup.
2 Register your application with Google backup service.
3 Modify the AndroidManifest to add respective necessary key and other components
4 Create backup agent class with the name you specify at AndroidManifest.XML
5 Run the application and verify the results

向Google备份服务注册您的Android应用程序。为此,请访问此链接。您必须同意服务条款,然后输入应用程序包名称。它显示如下-

Android数据备份教程

然后单击“向android备份服务注册”。它将为您提供密钥以及要复制的AndroidManifest代码。只需复制密钥即可。它显示如下-

Android数据备份教程

复制密钥后,您需要将其写入AndroidManifest.XML文件中。其代码如下-




   
      
      
         
         
            
            
         
         
      
      
      

   

这是BackUpAgentHelper类的代码。该类的名称应与您在AndroidManifest.XML中应用程序下的backupAgent标记中指定的名称相同。

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系统映像上。

如果使用模拟器,请在Android 2.2(API级别8)上创建和使用AVD。

如果使用设备,则该设备必须运行Android 2.2或更高版本,并且内置Google Play。

确保启用了数据备份

如果使用仿真器,则可以从SDK工具/路径中使用以下命令启用备份-

adb shell bmgr enable true

如果使用设备,请打开系统设置,选择隐私,然后启用备份数据和自动还原。

执行备份

出于测试目的,您还可以使用以下bmgr命令发出请求-

adb shell bmgr backup your.package.name

通过键入以下命令来启动备份操作。

adb shell bmgr run

这将强制备份管理器执行其队列中的所有备份请求。

卸载并重新安装您的应用程序

使用以下命令卸载应用程序-

adb uninstall your.package.name

然后重新安装该应用程序并验证结果。