- Android 基礎
- Android - 首頁
- Android - 概述
- Android - 環境搭建
- Android - 架構
- Android - 應用元件
- Android - Hello World 示例
- Android - 資源
- Android - 活動 (Activities)
- Android - 服務 (Services)
- Android - 廣播接收器 (Broadcast Receivers)
- Android - 內容提供器 (Content Providers)
- Android - 碎片 (Fragments)
- Android - 意圖/過濾器 (Intents/Filters)
- Android - 使用者介面
- Android - UI 佈局
- Android - UI 控制元件
- Android - 事件處理
- Android - 樣式和主題
- Android - 自定義元件
- Android 高階概念
- Android - 拖放
- Android - 通知
- 基於位置的服務
- Android - 傳送郵件
- Android - 傳送簡訊
- Android - 電話呼叫
- 釋出 Android 應用
- Android 實用示例
- Android - 警報對話方塊
- Android - 動畫
- Android - 音訊捕獲
- Android - AudioManager
- Android - 自動完成
- Android - 最佳實踐
- Android - 藍牙
- Android - 相機
- Android - 剪貼簿
- Android - 自定義字型
- Android - 資料備份
- Android - 開發者工具
- Android - 模擬器
- Android - Facebook 整合
- Android - 手勢
- Android - Google 地圖
- Android - 圖片特效
- Android - ImageSwitcher
- Android - 內部儲存
- Android - JetPlayer
- Android - JSON 解析器
- Android - LinkedIn 整合
- Android - 載入微調器
- Android - 本地化
- Android - 登入介面
- Android - MediaPlayer
- Android - 多點觸控
- Android - 導航
- Android - 網路連線
- Android - NFC 指南
- Android - PHP/MySQL
- Android - 進度圓圈
- Android - 進度條
- Android - 推送通知
- Android - RenderScript
- Android - RSS 閱讀器
- Android - 螢幕錄製
- Android - SDK 管理器
- Android - 感測器
- Android - 會話管理
- Android - 共享首選項
- Android - SIP 協議
- Android - 拼寫檢查器
- Android - SQLite 資料庫
- Android - 支援庫
- Android - 測試
- Android - 文字轉語音
- Android - TextureView
- Android - Twitter 整合
- Android - UI 設計
- Android - UI 模式
- Android - UI 測試
- Android - WebView 佈局
- Android - Wi-Fi
- Android - 小部件
- Android - XML 解析器
- Android 實用資源
- Android - 問答
- Android - 實用資源
- Android - 討論
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 備份服務註冊”。它會提供您的金鑰以及要複製的 AndroidManifest 程式碼。只需複製金鑰即可。如下所示:
複製金鑰後,您需要將其寫入 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
然後重新安裝應用程式並驗證結果。
