作者:宋志辉

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>

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

Android官方命令深入分析之bmgr的更多相关文章

  1. Android 官方命令深入分析之android

    作者:宋志辉 android命令是一个非常重要的开发工具,它可以: 创建.删除和查看Android Virtual Devices(AVDs). 创建和更新android项目. 更新你的android ...

  2. Android 官方命令深入分析

    原文:www.libgdx.cn Android SDK包括了多种工具来帮助你创建基于Android平台的移动应用.这些工具一般分成两类:SDK 工具和 platform 工具. SDK 工具是独立的 ...

  3. Android官方命令深入分析之Hierarchy Viewer

    Hierarchy Viewer允许你调试和优化用户界面.它提供了一个层可视的方式来显示. 启动Hierarchy Viewer,如下: 在Android Studio中,选择Tools > A ...

  4. Android官方命令深入分析之虚拟机

    Android SDK包含了一个运行在计算机上的移动设备虚拟机.这个虚拟机可以允许你在没有物理设备的情况下开发和测试Android应用. 键盘命令 虚拟设备按键 对应键盘按键 Home HOME 菜单 ...

  5. Android官方命令深入分析之Device Monitor

    Android Device Monitor是一个提供了图形化界面的可以对Android应用进行调试和分析的独立的工具.Monitor工具不需要IDE环境,比如Android Studio.包括以下工 ...

  6. Android 官方命令深入分析之Android Debug Bridge(adb)

    作者:宋志辉 Android Debug Brideg(adb)是一个多用途的命令行工具.可以与Android虚拟机进行通信或连接真机.它同样提供了访问设备shell的高级命令行操作的权限.它是一个包 ...

  7. Android官方命令深入分析之AVD Manager

    作者:宋志辉 AVD Manager提供了一个图形用户接口,通过它你能够创建和管理AVDs. 你能够通过下面方式执行AVD Manager: Eclipse:选择 Window > Androi ...

  8. Android官方命令深入分析之hprof-conv

    hprof-conv工具可以将Android SDK工具生成的HPROF文件生成一个标准的格式,这样你就可以使用工具进行查看: hprof-conv [-z] <infile> <o ...

  9. Android官方命令深入分析之etc1tool

    etc1tool是一个命令行工具,可以将PNG图像压缩为etc1标准,并且可以进行解压缩. 用法: etc1tool infile [--help | --encode | --encodeNoHea ...

随机推荐

  1. 百度ML/DL方向面经

    最近败人品败得有些厉害,很多事都处理得不好--感觉有必要做点好事攒一攒. 虽然可能面试经过不是很有代表性,不过参考价值大概还是有的-- 由于当时人在国外,三轮都是电面-- 一面 当地时间早上5点半爬起 ...

  2. 解决Spring Boot 使用RedisTemplate 存储键值出现乱码 \xac\xed\x00\x05t\x00

    spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化解决方法 ...

  3. logback学习二

    转载:https://www.cnblogs.com/DeepLearing/p/5663178.html 属性 : debug : 默认为false ,设置为true时,将打印出logback内部日 ...

  4. canvas初学 半动态画太极图

    可直接复制粘贴运行 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head&g ...

  5. centos6 安装redis-4.0.9

    从redis官网下载Linux redis4.0.9版本,我下载的redis-4.0.9.tar.gz(目前最新稳定版),下载到/usr/local/src目录,如果没有就mkdir创建一个. 下载链 ...

  6. Do a web framework ourselves

    step 1: from wsgiref.simple_server import make_server def application(environ, start_response): star ...

  7. Lucene查询结果高亮

    检索结果高亮 实现效果: 核心代码 package ucas.ir.lucene; import java.io.File; import java.io.IOException; import ja ...

  8. Markdown语法及SublimeText下使用技巧

    Markdown语法及SublimeText下使用技巧 0.缘起 最近因为一直在学习Sublime Text,所以也就顺便试用了一下ST对Markdown的支持.正好CSDN正在大力宣传新上线的Mar ...

  9. 【SSH系列】Hibernate映射 -- 继承映射

    开篇前言 在前面的博文中,小编介绍了hibernate中的映射,一对一,一对多,多对多,单向,双向等,今天这篇博文,小编主要来介绍一下hibernate中的继承映射,小伙伴都知道在C#中,如果想要实现 ...

  10. Zookeeper动态更新服务器列表

    -------------------------------------------------------------------------------------- [版权申明:本文系作者原创 ...