📅  最后修改于: 2021-01-05 05:12:26             🧑  作者: Mango
Android允许您将应用程序数据备份到远程“云”存储中,以便为应用程序数据和设置提供还原点。您只能备份您的应用程序数据。为了访问其他应用程序数据,您需要对手机进行植根。
为了制作数据备份应用程序,您需要向Google备份服务注册您的应用程序。在示例中对此进行了解释。注册后,您必须在AndroidManifest.XML中指定其密钥
Android提供了BackUpAgentHelper类来处理数据备份的所有操作。为了使用此类,您必须使用它来扩展您的类。其语法如下-
public class MyBackUpPlace extends BackupAgentHelper {
}
您要备份的持久性数据采用两种形式之一。它可以是SharedPrefrences,也可以是File。 Android在SharedPreferencesBackupHelper和FileBackupHelper的相应类中支持两种备份类型。
为了使用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备份服务注册”。它将为您提供密钥以及要复制的AndroidManifest代码。只需复制密钥即可。它显示如下-
复制密钥后,您需要将其写入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);
}
}
实施备份代理后,可以使用bmgr通过以下过程测试备份和还原功能。
如果使用模拟器,请在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
然后重新安装该应用程序并验证结果。