我一直想知道,如果将相同启用BackupManager的应用程序安装到链接到同一Google帐户的多个设备(例如智能手机和平板电脑)上,那么Android's BackupManager 的行为会如何。 It seems that I am not the only one,,但是我找不到关于此的任何规范。
您对这种情况有什么经验?是否有任何官方资源描述这种情况?
最佳答案
该机制没有任何面向用户的文档,也没有面向应用程序开发人员的大量文档,因为它应该会自动执行正确的操作,而是the code is available。以下所有信息均来自检查源代码以及bmgr工具的已记录选项。从answer I originally wrote上的用户友好的Android Stack Exchange,此答案适合于面向开发人员。
宝贝,让我们谈谈布景
Android的备份服务的概念称为集合:从一个传输中的一个设备备份的所有数据的集合。每个集合由唯一的字符串标识,例如设备上的IMEI。备份一个应用程序(或已安装的应用程序列表)时,其备份数据将进入与要备份的设备关联的数据集中。所有设置仍然特定于用户的Google帐户。如果您擦除设备并将其出售给他人,除非他可以登录您的Google帐户,否则他将无法访问该设备的设备。
默认行为
当安装了应用程序或设备恢复了其应用程序列表时,备份系统首先在该设备的设备集中查找该程序包的备份数据。如果找不到任何内容(要么是因为它是一个没有备份数据的全新设备,要么是因为该软件包从未安装在该设备上),它将搜索扩展到其他集合。 (如果可以选择的话,它将使用用于完整设备还原的最后一组。)
因此,当您设置新设备时,它将从旧设备的备份中还原应用程序列表,并从旧设备的备份中还原每个应用程序。如果您在一台设备上安装了某个应用程序,而又在另一台设备上安装了该应用程序,则该应用程序将与旧设备中的数据一起还原。无论哪种情况,现在都将数据备份到新的设备的集合中,这意味着从现在开始,这两个设备的备份数据是分开的。
出厂重置设备后,如果有一个设备,它将从该设备的上次备份还原;如果有一个设备,它将从其他设备的备份中恢复,但此后它将开始创建自己的备份集。bmgr:基本用法bmgr工具用于调试和测试,使您可以稍微控制备份/还原过程。您可以在adb shell中使用此工具来触发所选软件包的备份和还原,擦除软件包的备份数据,甚至是整个设备的还原。
不要以root用户身份在设备 shell 程序中使用它:您需要系统级的android.permission.BACKUP来对其进行任何有趣的操作。
为了进行测试,您可以使程序包立即更新其备份数据:
bmgr backup com.shadowburst.showr
bmgr run
bmgr restore com.shadowburst.showr
bmgr list sets
3ff7800e963f25c5 : manta
3f0e5c90a412cca7 : manta
3dd65924a70e14c8 : TF101
3baa67e9ce029355 : m0
bmgr restore 3ff7800e963f25c5 com.shadowburst.showr
bmgr wipe com.shadowburst.showr
关于Android BackupManager和与同一帐户关联的多个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502412/
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
我正在尝试按0-9和a-z的顺序创建数字和字母列表。我有一组值value_array=['0','1','2','3','4','5','6','7','8','9','a','b','光盘','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','','u','v','w','x','y','z']和一个组合列表的数组,按顺序,这些数字可以产生x个字符,比方说三个list_array=[]和一个当前字母和数字组合的数组(在将它插入列表数组之前我会把它变成一个字符串,]current_combo['0','0','0']
是否有可能:before_filter:authenticate_user!||:authenticate_admin! 最佳答案 before_filter:do_authenticationdefdo_authenticationauthenticate_user!||authenticate_admin!end 关于ruby-on-rails-before_filter运行多个方法,我们在StackOverflow上找到一个类似的问题: https://
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#