• Android Video Tutorials

Android - 資料備份



Android 允許您將應用程式資料備份到遠端“雲”儲存,以便為應用程式資料和設定提供還原點。您只能備份應用程式資料。要訪問其他應用程式的資料,您需要 root 您的手機。

為了建立一個數據備份應用程式,您需要將您的應用程式註冊到 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 {
}

您想要備份的永續性資料有兩種形式之一。它可以是 SharedPreferences,也可以是檔案。Android 在 **SharedPreferencesBackupHelper** 和 **FileBackupHelper** 的相應類中支援這兩種型別的備份。

要使用 **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 方法會自動將幫助程式新增到代理配置的給定資料子集中。

除了這些方法外,BackupAgentHelper 類中還定義了其他方法。它們定義如下:

序號 方法及描述
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

在每個已配置的處理程式上執行備份過程

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

在每個已配置的處理程式上執行還原過程

SharedPreferencesBackUpHelper 類的使用方法如下所示。

序號 方法及描述
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

備份已配置的 SharedPreferences 組

2

restoreEntity(BackupDataInputStream data)

將一個實體從還原資料流還原到其正確的共享首選項檔案儲存區

示例

以下示例演示瞭如何使用 BackupAgentHelper 類建立應用程式資料的備份。

要試驗此示例,您需要在實際裝置或模擬器上執行它。

步驟 描述
1 您將使用 Android Studio 建立一個 Android 應用程式,並將其命名為 Backup,包名為 com.example.backup。
2 將您的應用程式註冊到 Google 備份服務。
3 修改 AndroidManifest 以新增相應的必要金鑰和其他元件
4 建立備份代理類,其名稱與您在 AndroidManifest.XML 中指定的名稱相同。
5 執行應用程式並驗證結果

將您的 Android 應用程式註冊到 Google 備份服務。為此,請訪問此連結。您必須同意服務條款,然後輸入應用程式包名稱。如下所示:

Android Data Backup Tutorial

然後單擊“使用 Android 備份服務註冊”。它會提供您的金鑰以及要複製的 AndroidManifest 程式碼。只需複製金鑰即可。如下所示:

Android Data Backup Tutorial

複製金鑰後,您需要將其寫入 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 中 application 下的 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 tools/ 路徑中的以下命令啟用備份:

adb shell bmgr enable true

如果使用裝置,請開啟系統設定,選擇隱私,然後啟用“備份我的資料”和“自動還原”。

執行備份

出於測試目的,您還可以使用以下 bmgr 命令發出請求:

adb shell bmgr backup your.package.name

鍵入以下命令啟動備份操作。

adb shell bmgr run

這會強制備份管理器執行其佇列中的所有備份請求。

解除安裝並重新安裝您的應用程式

使用以下命令解除安裝應用程式:

adb uninstall your.package.name

然後重新安裝應用程式並驗證結果。

廣告
© . All rights reserved.