[Android] Backup API

當用戶因故換手機或重置手機時,通常,原先安裝在 App 裡頭的資料無法跟著回復。事實上,Android 有提供 Backup API,能讓 App 端先將資料備份到雲端,待 App 重新安裝後,自動 Restore 資料。

首先,要到這個網站註冊 Android Backup Service

完成註冊後,會取得一個 API Key

然後將 API Key 連同備份代理程式名稱(這裡是 TheBackupAgent)加到 AndroidManifest.xml
<application android:label="MyApp"
             android:backupAgent="TheBackupAgent">
    ...
    <meta-data android:name="com.google.android.backup.api_key"
        android:value="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ" />
    ...
</application>

接著開始寫備份代理程式(Backup Agent)

Backup API 可以備份檔案(亦可備份 SQLite 資料庫的 db 檔)以及 SharedPreference 資料,

下面是 SQLite db 檔和SharedPreference 資料的備份範例
原則上,當資料變動時,會執行自動備份。可以使用下面的程式手動執行備份。
BackupManager bm = new BackupManager(this);
bm.dataChanged();

可以透過 adb 來測試,指令如下:
adb shell bmgr backup packagename  # 等於dataChanged
adb shell bmgr run                 # 立即去trigger backup job
adb uninstall packagename          # 先移除App

最後再重新安裝 App,資料應該都在才對。

這種備份方式,備份檔只會有一份,保留最近更新的,而且是跟著 Google 帳號,因此兩台手機共用一個 Google 帳號的話,應該是無法還原兩台手機的資料。






相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置