Android允许您将应用程序数据备份到远程“云”存储,以便为应用程序数据和设置提供还原点。您只能备份应用程序数据。为了访问其他应用程序数据,您需要根植手机。
为了制作数据备份应用程序,您需要备份服务注册您的应用程序。注册后,您必须在安卓手册中指定其密钥.XML
<application
android:allowBackup="true"
android:backupAgent="MyBackupPlace">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>
安卓提供BackupAgentHelper类来处理数据备份的所有操作。为了使用这个类,你必须用它来扩展你的类。它的语法如下
public class MyBackUpPlace extends BackupAgentHelper {
}
要备份的持久性数据采用这两种形式之一。它可以是共享首选项,也可以是“文件”。Android 支持SharedPreferencesBackupHelper和BackupAgentHelper相应类别中的两种类型的备份。
为了使用SharedPreferencesBackupHelper,您需要使用共享的“示例文件”的名称实例化其对象。它的语法如下
static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);
您需要做的最后一件事是通过指定备份密钥字符串和帮助程序对象来调用 addHelper 方法。它的语法如下
addHelper(PREFS_BACKUP_KEY, helper);
addHelper 方法会自动将给定数据子集的帮助程序添加到代理的配置中。
除了这些方法之外,在备份代理助手类中还定义了其他方法。它们定义如下 −
1、onBackup(包裹文件描述符旧状态, BackupData输出数据, 包裹文件描述符 newState)
在每个已配置的处理程序上运行备份过程
2、onRestore(BackupDataInput data, int appVersionCode, ParcelFile描述符 newState)
在每个已配置的处理程序上运行还原过程
下面列出了共享首选项帮助器类的方法。
1、performBackup(包裹文件描述符 oldState, BackupDataOutput data, ParcelFile描述符 newState)
备份已配置的共享首选项组
2、恢复实体(BackupData输入流数据)
将一个实体从还原数据流还原到其正确的共享首选项文件存储
例
下面的示例演示如何使用备份代理帮助程序类来创建应用程序数据的备份。
步骤:
1、 您将使用安卓工作室创建一个安卓应用程序,并将其命名为“备份”,并将其命名为“备份”。
2、向谷歌备份服务注册您的应用程序。
3、修改安卓智能体表以添加相应的必要密钥和其他组件
4、使用您在安卓智能体中指定的名称创建备份代理类.XML
5、运行应用程序并验证结果
注册你的安卓应用程序与谷歌备份服务。您必须同意服务条款,然后输入应用程序包名称。点击注册安卓备份服务。它会给你你的密钥,只需复制密钥即可。复制密钥后,您需要将其写入安卓手册.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>
下面是备份代理帮助程序类的代码。该类的名称应与您在安卓智能体中的应用程序下的备份代理标记中指定的相同.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);
}
}
测试备份代理
实现备份代理后,可以使用 bmgr 使用以下过程测试备份和还原功能。
在合适的安卓系统映像上安装您的应用程序。
如果使用模拟器,请创建并使用带有安卓 2.2(API 级别 8)的 AVD。
如果使用设备,则该设备必须运行 Android 2.2 或更高版本,并且内置了谷歌播放功能。
确保已启用数据备份
如果使用模拟器,您可以使用 SDK 工具/路径中的以下命令启用备份 :
adb shell bmgr enable true
如果使用设备,请打开系统设置,选择“隐私”,然后启用“备份我的数据和自动还原”。
执行备份
出于测试目的,您还可以使用以下 bmgr 命令发出请求 :
adb shell bmgr backup your.package.name
通过键入以下命令启动备份操作。
adb shell bmgr run
这将强制备份管理器执行其队列中的所有备份请求。
卸载并重新安装应用程序
使用以下命令卸载应用程序:
adb uninstall your.package.name
然后重新安装应用程序并验证结果。