[bmgr]android應用資料備份以及還原

大搜車-自娛發表於2013-02-22
bmgr是一個shell工具你可以用來與備份管理器在Android裝置(支援API級別8或更高)。它提供了命令來指導的備份和恢復操作,這樣你不需要反覆清除資料或採取類似的侵入性的步驟來測試您的應用程式的備份代理。這些命令是通過adb shell。

使用備份操作
通常,應用程式必須通知備份管理器在它的資料已經改變。通過dataChanged()。備份管理器將呼叫您的備份代理的onBackup()實現在未來某個時刻。如果呼叫dataChanged(),可以呼叫一個備份請求從命令列執行bmgr備份命令。

命令:
adb shell bmgr backup <package>

當您執行該備份命令,您的應用程式的備份代理將呼叫來執行備份操作在未來一段時間內(通過你的onBackup()方法),儘管沒有保證當它會發生。然而,您可以強制執行所有沒有執行的備份操作,通過使用bmgr執行命令:

命令:
Adb shell bmgr run

這個命令會導致所有呼叫備份代理的應用程式的都備份。

使用恢復操作
恢復操作不像備份操作,這是成批的在一起執行在一個偶然的基礎上,立即執行恢復操作。備份管理器目前提供了兩種型別的恢復操作。
第一種恢復整個裝置的資料備份。典型的表現只有當一個裝置是第一個提供(複製設定和其他儲存的狀態從使用者之前的裝置),是一個操作,只有系統可以執行。
第二種恢復操作單個應用程式恢復到它的“活躍的”資料集;也就是說,應用程式將放棄其當前資料和恢復到最後一次正確資料,儲存在當前的備份映像。
您可以呼叫第二個恢復操作與requestRestore()方法。備份管理器將呼叫您的備份代理的onRestore()實現。

當測試您的應用程式,你可以立即呼叫恢復操作,繞過requestRestore()方法。使用bmgr恢復命令:
adb shell bmgr restore <package>
備份管理器將立即例項化應用程式的備份代理和呼叫它來恢復。這將發生,即使應用程式是當前沒有執行。

其他命令:
Wiping data(擦拭資料)

一個應用程式的資料可以被清除從Activity資料集合中。這個操作非常有用,當你在開發一個備份代理。以防錯誤引導你寫錯誤的資料或儲存的狀態資訊。你可以擦拭一個應用程式的資料與bmgr擦拭命令:
adb shell bmgr wipe <package>

接下來的備份操作應用程式的代理程式將看起來好像應用程式從未支援任何東西之前。

檢視backup(備份)是否可用
adb shell bmgr enabled

如果備份操作可用的,如果您的應用程式的備份代理是從未被呼叫備份,以驗證作業系統是否認為它應該執行這些操作。

你也可以直接禁用或啟用備份管理器:
adb shell bmgr enable <boolean>

警告!
當備份是禁用的,當前的備份運輸將明確地擦拭Activity中的資料。如果當一個使用者說他們不希望他們的資料備份,備份管理器方面希望。則沒有新的資料將被儲存從裝置,沒有恢復操作將成為完成恢復操作。除非備份管理器是重新啟用(通過設定或通過以上bmgr命令)。

相關文章