[bmgr]android应用数据备份以及还原

bmgr是一个shell工具你可以用来与备份管理器在Android设备(支持API级别8或更高)。它提供了命令来指导的备份和恢复操作,这样你不需要反复清除数据或采取类似的侵入性的步骤来测试您的应用程序的备份代理。这些命令是通过adbshell。

使用备份操作

通常,应用程序必须通知备份管理器在它的数据已经改变。通过dataChanged()。备份管理器将调用您的备份代理的onBackup()实现在未来某个时刻。如果调用dataChanged(),可以调用一个备份请求从命令行运行bmgr备份命令。

命令:

adbshellbmgrbackup<package>

当您执行该备份命令,您的应用程序的备份代理将调用来执行备份操作在未来一段时间内(通过你的onBackup()方法),尽管没有保证当它会发生。然而,您可以强制执行所有没有运行的备份操作,通过使用bmgr运行命令:

命令:

Adbshellbmgrrun

这个命令会导致所有调用备份代理的应用程序的都备份。

使用恢复操作

恢复操作不像备份操作,这是成批的在一起运行在一个偶然的基础上,立即执行恢复操作。备份管理器目前提供了两种类型的恢复操作。

第一种恢复整个装置的数据备份。典型的表现只有当一个设备是第一个提供(复制设置和其他保存的状态从用户之前的设备),是一个操作,只有系统可以执行。

第二种恢复操作单个应用程序恢复到它的“活跃的”数据集;也就是说,应用程序将放弃其当前数据和恢复到最后一次正确数据,保存在当前的备份映像。

您可以调用第二个恢复操作与requestRestore()方法。备份管理器将调用您的备份代理的onRestore()实现。

当测试您的应用程序,你可以立即调用恢复操作,绕过requestRestore()方法。使用bmgr恢复命令:

adbshellbmgrrestore<package>

备份管理器将立即实例化应用程序的备份代理和调用它来恢复。这将发生,即使应用程序是当前没有运行。

其他命令:

Wipingdata(擦拭数据)

一个应用程序的数据可以被清除从Activity数据集合中。这个操作非常有用,当你在开发一个备份代理。以防错误引导你写错误的数据或保存的状态信息。你可以擦拭一个应用程序的数据与bmgr擦拭命令:

adbshellbmgrwipe<package>

接下来的备份操作应用程序的代理进程将看起来好像应用程序从未支持任何东西之前。

查看backup(备份)是否可用

adbshellbmgrenabled

如果备份操作可用的,如果您的应用程序的备份代理是从未被调用备份,以验证操作系统是否认为它应该执行这些操作。

你也可以直接禁用或启用备份管理器:

adbshellbmgrenable<boolean>

警告!

当备份是禁用的,当前的备份运输将明确地擦拭Activity中的数据。如果当一个用户说他们不希望他们的数据备份,备份管理器方面希望。则没有新的数据将被保存从设备,没有恢复操作将成为完成恢复操作。除非备份管理器是重新启用(通过设置或通过以上bmgr命令)。