天天看點

Android官方指令深入分析之bmgr

bmgr是一個可以跟Backup Manager進行互動的shell工具,要使用這個工具,Android裝置API最小為8.它提供了備份和恢複操作的指令,是以你無需頻繁的清除資料。這些指令通過adb shell進行通路。

正常情況下,你的應用在它的資料發生更改時,必須通過dataChanged()方法通知Backup Manager。Backup Manager接下來在将來的某個時間調用你的備份代理的onBackup()方法。然而,除了調用dataChanged()方法之外,你可以通過運作bmgr backup指令來發起一個備份請求。

<包名>是你計劃備份的應用的包名。當你執行這個備份指令時,你的應用的備份代理将會被調用通過onBackup()方法執行一系列的備份操作,但是不能确定什麼時候會執行。然而,你可以通過bmgr run 指令強制立即執行備份操作:

這可以導緻備份操作立即執行。觸發所有的應用的備份代理,在上一次備份操作完成後調用dataChanged()方法。任何應用都可以通過bmgr backup進行手動計劃備份。

不同于備份操作,恢複操作立即執行。Backup Manager現在提供了兩種恢複操作。第一種是整個裝置的資料進行備份,這通常發生在裝置在第一次使用時,并且隻有系統才能執行。第二種恢複操作恢複單個應用的活躍資料設定,這就意味着,應用将禁止目前的資料并且用最後一次備份的資料進行替代。可以通過調用requeRestore()方法調用。Backup Manager會調用你的備份代理的onRestore()方法。

當你測試你的應用時,你可以通過bmgr restore指令來實作恢複操作:

是指要恢複的應用的報名。Backup Manager将會立即執行恢複操作,前提是,應用目前沒有運作。

清除資料

單個應用的資料可以根據需求從活躍資料組中擦除。這在你開發備份代理時是非常有用的,防止bugs導緻寫入壞的資料或者儲存狀态資訊。你可以通過bmgr wipe指令來擦除應用的資料。

是指你希望擦除資料的應用的包名。下一次的備份操作應用将被視為之前從未進行過備份。

啟用和禁止備份

可以通過bmgr enbled指令對Backup Manager進行啟用。

這個指令對于你的應用從來沒有調用備份代理來進行過備份來說,非常有用。用來驗證作業系統是否認為需要執行類似操作。

你也可以通過如下指令禁用Backup Manager:

警告:當備份被禁止後,已經備份的資料會被清空。

繼續閱讀