Android可以备份应用程序的数据到远程“云”存储,以应用程序的数据和设置的一个还原点。可以只备份应用程序数据。为了访问其他应用程序的数据,需要以root在手机上操作。
为了使数据备份的应用程序,需要注册使用谷歌备份服务应用程序。这已在实施例进行了说明。注册后必须在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 { } |
要备份的持久性数据无论是哪两种形式。它可以是SharedPrefrences或者它可能是文件。 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 类中定义的其他方法。它们被定义如下:
所述SharedPreferencesBackUpHelper类的方法在下面列出。
例子
下面的例子演示了如何使用BackupAgentHelper类来创建应用程序数据的备份。
为了试验这个例子,需要在实际设备或模拟器运行此。
注册您的Android应用程序使用谷歌备份服务。为了做到这一点, 必须同意服务条款,然后输入应用程序包的名称。它如下所示:
然后点击注册与Android备份服务。这会给定钥匙,以及AndroidManifest代码进行复制刚才的键。它如下所示:
复制的键之后,需要写入到AndroidManifest.xml文件。其代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yiibai.backup"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<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.yiibai.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采用Android2.2(API等级8级)。
如果使用的设备,设备必须运行Android 2.2或更高版本,并已Google Play内置
保证数据备份是启用
如果使用模拟器,启用备份SDK工具/路径下面的命令:
adb shell bmgr enable true |
如果使用的设备,打开系统设置,选择隐私,然后启用备份数据,并自动恢复。
执行备份
出于测试目的,也可以用下面的命令BMGR一个请求:
adb shell bmgr backup your.package.name |
通过键入以下命令启动备份操作
这迫使备份管理器来执行那些在队列中的所有备份请求。
卸载并重新安装应用
卸载使用以下命令应用程序:
adb uninstall your.package.name |
然后重新安装应用程序和验证结果
|