zoukankan      html  css  js  c++  java
  • Android官方命令深入分析之bmgr

    作者:宋志辉

    bmgr是一个可以跟Backup Manager进行交互的shell工具,要使用这个工具,Android设备API最小为8.它提供了备份和恢复操作的命令,所以你无需频繁的清除数据。这些命令通过adb shell进行访问。

    强制备份

    正常情况下,你的应用在它的数据发生更改时,必须通过dataChanged()方法通知Backup Manager。Backup Manager接下来在将来的某个时间调用你的备份代理的onBackup()方法。然而,除了调用dataChanged()方法之外,你可以通过运行bmgr backup命令来发起一个备份请求。

    adb shell bmgr backup <包名>

    <包名>是你计划备份的应用的包名。当你执行这个备份命令时,你的应用的备份代理将会被调用通过onBackup()方法执行一系列的备份操作,但是不能确定什么时候会执行。然而,你可以通过bmgr run 命令强制立即执行备份操作:

    adb shell bmgr run

    这可以导致备份操作立即执行。触发所有的应用的备份代理,在上一次备份操作完成后调用dataChanged()方法。任何应用都可以通过bmgr backup进行手动计划备份。

    强制恢复

    不同于备份操作,恢复操作立即执行。Backup Manager现在提供了两种恢复操作。第一种是整个设备的数据进行备份,这通常发生在设备在第一次使用时,并且只有系统才能执行。第二种恢复操作恢复单个应用的活跃数据设置,这就意味着,应用将禁止当前的数据并且用最后一次备份的数据进行替代。可以通过调用requeRestore()方法调用。Backup Manager会调用你的备份代理的onRestore()方法。
    当你测试你的应用时,你可以通过bmgr restore命令来实现恢复操作:

    adb shell bmgr restore <package>

    是指要恢复的应用的报名。Backup Manager将会立即执行恢复操作,前提是,应用当前没有运行。

    其他命令

    清除数据

    单个应用的数据可以根据需求从活跃数据组中擦除。这在你开发备份代理时是非常有用的,防止bugs导致写入坏的数据或者保存状态信息。你可以通过bmgr wipe命令来擦除应用的数据。

    adb shell bmgr wipe <package>

    是指你希望擦除数据的应用的包名。下一次的备份操作应用将被视为之前从未进行过备份。

    启用和禁止备份

    可以通过bmgr enbled命令对Backup Manager进行启用。

    adb shell bmgr enabled

    这个命令对于你的应用从来没有调用备份代理来进行过备份来说,非常有用。用来验证操作系统是否认为需要执行类似操作。

    你也可以通过如下命令禁用Backup Manager:

    adb shell bmgr enable <boolean>

    警告:当备份被禁止后,已经备份的数据会被清空。

  • 相关阅读:
    将vue文件script代码抽取到单独的js文件
    git pull 提示错误:Your local changes to the following files would be overwritten by merge
    vue和uniapp 配置项目基础路径
    XAMPP Access forbidden! Access to the requested directory is only available from the local network.
    postman与newman集成
    postman生成代码段
    Curl命令
    POST方法的Content-type类型
    Selenium Grid 并行的Web测试
    pytorch转ONNX以及TnesorRT的坑
  • 原文地址:https://www.cnblogs.com/hainange/p/6153470.html
Copyright © 2011-2022 走看看