Android - 概述

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 {
}

要备份的持久性数据是两种形式之一.它可以是SharedPrefrences,也可以是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.否Method & description
1

onBackup(ParcelFileDescriptor oldState,BackupDataOutput data,ParcelFileDescriptor newState)

在每个配置的处理程序上运行备份过程

2

onRestore(BackupDataInput data,int appVersionCode,ParcelFileDescriptor newState)

对每个运行恢复过程已配置的处理程序

下面列出了SharedPreferencesBackUpHelper类的方法.

Sr.NoMethod & description
1

performBackup(ParcelFileDescriptor oldState,BackupDataOutput data,ParcelFileDescriptor newState)

备份已配置的SharedPreferences组

2

restoreEntity(BackupDataInputStream data)

将一个实体从还原数据流还原到其正确的共享首选项文件存储

示例

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

要试验此示例,您需要在实际设备或模拟器中运行它.

步骤
1您将使用Android工作室创建一个Android应用程序,并将其命名为com.example.backup包下的Backup.
2使用Google备份服务注册您的应用程序.
3修改AndroidManifest以添加相应的必要密钥和其他组件
4使用您在AndroidManifest.XML指定的名称创建备份代理类
5运行应用程序并验证结果

使用谷歌备份服务注册你的Android应用程序,然后输入应用程序包名称.它显示在下面 :

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类的代码.该类的名称应与您在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的AVD(API级别8).

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

确保已启用数据备份

如果使用模拟器,则可以使用SDK工具/路径中的以下命令启用备份 :

adb shell bmgr enable true

如果使用设备,请打开系统设置,选择隐私,然后启用备份我的数据和自动恢复.

执行备份

出于测试目的,您还可以提出请求以下bmgr命令 :

 adb shell bmgr backup your.package.name

通过输入以下命令启动备份操作./p>

adb shell bmgr run

这会强制备份管理器执行所有操作队列中的备份请求.

卸载并重新安装应用程序

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

adb uninstall your.package.name

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