首页> 中国专利> 一种自动备份应用数据且按需恢复的方法及装置

一种自动备份应用数据且按需恢复的方法及装置

摘要

本发明公开了一种自动备份应用数据且按需恢复的方法及装置,涉及终端系统的应用数据备份和恢复技术,所述方法包括:应用层根据备份指令,将应用的应用数据目录设置到系统常量中;底层利用所述系统常量中的所述应用数据目录,获取所述应用数据目录的目录权限;底层将所述应用数据目录权限设置为可读写;应用层对已设置为可读写权限的应用数据目录下的应用数据进行备份,以供此后利用所备份的应用数据进行按需恢复。本发明能够对游戏等终端应用进行自动备份和按需恢复,提升了用户体验。

著录项

  • 公开/公告号CN104636375A

    专利类型发明专利

  • 公开/公告日2015-05-20

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201310560598.5

  • 发明设计人 胡博;

    申请日2013-11-12

  • 分类号G06F17/30;G06F9/44;

  • 代理机构北京元本知识产权代理事务所;

  • 代理人秦力军

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 08:44:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-07

    授权

    授权

  • 2016-09-21

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131112

    实质审查的生效

  • 2015-05-20

    公开

    公开

说明书

技术领域

本发明涉及终端系统的应用数据备份和恢复技术,尤其涉及终端自动备份应 用数据且按需恢复的方法及相关装置。

背景技术

如今手机游戏大行其道,很多游戏都有自动保存的机制,让玩家无法通过保 存/加载(Save/Load)的方法玩游戏。

由于应用数据目录必须是根(root)用户,即最高权限用户才可以访问,一 般应用乃至系统服务都无法修改,这导致很多用户不得不尝试root手机来备份 数据,但这也带来极大的不便。

发明内容

本发明的目的在于提供一种自动备份应用数据且按需恢复的方法及装置,能 更好地解决应用数据自动备份和按需恢复的问题。

根据本发明的一个方面,提供了一种自动备份应用数据且按需恢复的方法, 包括:

应用层根据备份指令,将应用的应用数据目录设置到系统常量中;

底层利用所述系统常量中的所述应用数据目录,获取所述应用数据目录的目 录权限;

底层将所述应用数据目录权限设置为可读写;

应用层对已设置为可读写权限的应用数据目录下的应用数据进行备份,以供 此后利用所备份的应用数据进行按需恢复。

优选地,所述备份指令是根据所述应用的运行状态产生的,具体包括:

对所述应用的运行状态进行检测;

当检测到所述应用被关闭时,生成所述备份指令。

优选地,还包括:

在获取所述应用数据目录的目录权限之后,将所述应用数据目录及目录权限 备份到已备份列表;

在所述应用数据目录及目录权限备份到已备份列表之后,清空所述系统常 量。

优选地,所述的应用层对已设置为可读写权限的应用数据目录下的应用数据 进行备份的步骤包括:

应用层将已设置为可读写权限的应用数据目录下的应用数据与在前备份的 应用数据进行比较,得到所述应用数据目录下的差异部分应用数据;

应用层备份所述差异部分应用数据,并记录所述差异部分应用数据的备份时 间点,以供用户利用所备份时间点按需恢复应用数据。

优选地,还包括在应用层对已设置为可读写权限的应用数据目录下的应用数 据进行备份的步骤完成之后,使用所述已备份列表中备份的目录权限,对应用数 据目录的目录权限进行恢复的步骤。

优选地,所述对应用数据目录的目录权限进行恢复的步骤包括:

应用层再次将所述应用数据目录设置到系统常量中;

底层通过对所述系统常量的扫描,发现所述应用数据目录,并检查所发现的 应用数据目录是否已存在于已备份列表中;

若所发现的应用数据目录已存在于已备份列表中,则将应用数据目录的可读 写权限恢复成所述已备份列表中所备份的目录权限;

在将应用数据目录的可读写权限恢复成所述已备份列表中所备份的目录权 限之后,清空所述系统常量。

优选地,所述的利用所备份的应用数据进行按需恢复的步骤包括:

应用层根据恢复指令,强制关闭应用,并按照用户选择的备份时间点,读取 在所述备份时间点之前备份的所有应用数据,复制到已设置为可读写权限的应用 数据目录下。

根据本发明的另一方面,提供了一种自动备份应用数据且按需恢复的装置, 包括:

应用层设置模块,用于根据备份指令,将应用的应用数据目录设置到系统常 量中;

底层权限获取模块,用于利用所述系统常量中的所述应用数据目录,获取所 述应用数据目录的目录权限;

底层权限修改模块,用于将所述应用数据目录权限设置为可读写;

应用层数据备份模块,用于对已设置为可读写权限的应用数据目录下的应用 数据进行备份,以供此后利用所备份的应用数据进行按需恢复。

优选地,所述应用层数据备份模块包括:

差异数据获取子模块,用于将已设置为可读写权限的应用数据目录下的应用 数据与在前备份的应用数据进行比较,得到所述应用数据目录下的差异部分应用 数据;

数据备份子模块,用于备份所述差异部分应用数据,并记录所述差异部分应 用数据的备份时间点,以供用户利用所备份时间点按需恢复应用数据。

优选地,还包括:

应用层数据恢复模块,用于根据恢复指令,强制关闭应用,并按照用户选择 的备份时间点,读取在所述备份时间点之前备份的所有应用数据,复制到已设置 为可读写权限的应用数据目录下。

与现有技术相比较,本发明的有益效果在于:

本发明通过修改应用数据目录的目录权限,自动备份应用数据,并能让用户 根据记录的备份时间点恢复应用数据,大大提升用户体验。

附图说明

图1是本发明实施例提供的自动备份应用数据且按需恢复的方法原理框图;

图2是本发明实施例提供的自动备份应用数据且按需恢复的装置结构框图;

图3是本发明实施例提供的底层启动流程图;

图4是本发明实施例提供的上层备份/恢复应用数据的流程图;

图5是本发明实施例提供的自动备份应用数据的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明 的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的自动备份应用数据且按需恢复的方法原理框图, 如图1所示,步骤包括:

步骤101:应用层根据备份指令,将应用的应用数据目录设置到系统常量中。

所述备份指令是根据所述应用的运行状态产生的,具体包括:对所述应用的 运行状态进行检测;当出现用户退出应用或者应用被系统杀死等情况下,将检测 到所述应用被关闭,此时,生成所述备份指令。

所述系统常量是系统中底层和应用层都可以读写的区域,常用其进行上层和 底层的信息交互。

步骤102:底层利用所述系统常量中的所述应用数据目录,获取所述应用数 据目录的目录权限。

所述步骤102包括:所述底层定时扫描系统常量,一旦发现所述系统常量不 为空,则读取其内容,所读取的内容即是应用层设置到系统常量中的应用数据目 录,然后通过系统提供的接口,获取所述应用数据目录的目录权限。

进一步地,在获取所述应用数据目录的目录权限后,所述底层将所述应用数 据目录及目录权限备份到已备份列表,并清空所述系统常量。

步骤103:底层将所述应用数据目录权限设置为可读写。

具体地说,底层使用系统提供的接口,对所述应用数据目录进行权限设置。

一般,只有root用户才可使用系统提供的接口,对所有应用数据目录进行 权限设置,其余用户设置时会因为没有权限而失败。本实施例使底层具有root 用户的权限,并对定时扫描得到的应用数据目录的目录权限进行权限设置。

步骤104:应用层对已设置为可读写权限的应用数据目录下的应用数据进行 备份,以供此后利用所备份的应用数据进行按需恢复。

所述步骤104包括:应用层将已设置为可读写权限的应用数据目录下的应用 数据与在前备份的应用数据进行比较,得到所述应用数据目录下的差异部分应用 数据,然后,备份所述差异部分应用数据,并记录所述差异部分应用数据的备份 时间点,以供用户利用所备份时间点按需恢复应用数据。

进一步地,备份完成后,使用所述已备份列表中备份的目录权限,对应用数 据目录的目录权限进行恢复,具体地说,应用层再次将所述应用数据目录设置到 系统常量中,然后底层通过对所述系统常量的扫描,发现所述应用数据目录,并 检查所发现的应用数据目录是否已存在于已备份列表中,若所发现的应用数据目 录已存在于已备份列表中,则将应用数据目录的可读写权限恢复成所述已备份列 表中所备份的目录权限,随后清空所述系统常量。

当用户需要进行数据恢复时,可以利用所备份的应用数据进行按需恢复。具 体地说,首先所述应用层根据恢复指令,将应用的应用数据目录设置到系统常量 中。其次,所述底层通过对所述系统常量的扫描,发现所述应用数据目录,并通 过系统提供的接口,找到所述应用数据目录的目录权限,再将所述应用数据目录 和目录权限保存至已备份列表中,并清空系统常量。然后,应用层强制关闭应用, 并按照用户在前选择的备份时间点,读取在所述备份时间点之前备份的所有应用 数据,复制到已设置为可读写权限的应用数据目录下。最后,所述应用层再次将 所述应用数据目录设置到系统常量中,底层通过对所述系统常量的扫描,发现所 述应用数据目录,并检查所发现的应用数据目录是否已存在于已备份列表中,若 所发现的应用数据目录已存在于已备份列表中,则将应用数据目录的可读写权限 恢复成所述已备份列表中所备份的目录权限,随后清空所述系统常量。

图2是本发明实施例提供的自动备份应用数据且按需恢复的装置结构框图, 如图2所示,包括应用层设置模块101、底层权限获取模块102、底层权限修改 模块103、应用层数据备份模块104和应用层数据恢复模块105。

自动备份应用数据时,所述应用层设置模块101根据备份指令,将应用的应 用数据目录设置到系统常量中,其中,所述备份指令是根据所述应用的运行状态 产生的,具体包括:对所述应用的运行状态进行检测,当出现所述应用被用户退 出或者被系统杀死等情况时,将检测到所述应用被关闭,此时生成所述备份指令。 所述底层权限获取模块102利用所述系统常量中的所述应用数据目录,获取所述 应用数据目录的目录权限,具体地说,所述底层权限获取模块102定时扫描系统 常量,一旦发现所述系统常量不为空,则读取其内容,所读取的内容即是应用层 设置模块101设置到系统常量中的应用数据目录,然后通过系统提供的接口,获 取所述应用数据目录的目录权限,进一步地,在获取所述应用数据目录的目录权 限后,将所述应用数据目录及目录权限备份到已备份列表,并清空所述系统常量。 所述底层权限修改模块103将所述应用数据目录权限设置为可读写。所述应用层 数据备份模块104对已设置为可读写权限的应用数据目录下的应用数据进行备 份,以供此后利用所备份的应用数据进行按需恢复,其中,所述应用层数据备份 模块104包括差异数据获取子模块和数据备份子模块,所述差异数据获取子模块 将已设置为可读写权限的应用数据目录下的应用数据与在前备份的应用数据进 行比较,得到所述应用数据目录下的差异部分应用数据,所述数据备份子模块, 用于备份所述差异部分应用数据,并记录所述差异部分应用数据的备份时间点, 以供用户利用所备份时间点按需恢复应用数据。进一步地,应用数据备份完成之 后,使用所述已备份列表中备份的目录权限,对应用数据目录的目录权限进行恢 复的步骤,具体包括:所述应用层设置模块101再次将所述应用数据目录设置到 系统常量中,所述底层权限获取模块102通过对所述系统常量的扫描,发现所述 应用数据目录,并检查所发现的应用数据目录是否已存在于已备份列表中,若所 发现的应用数据目录已存在于已备份列表中,则将应用数据目录的可读写权限恢 复成所述已备份列表中所备份的目录权限,并清空所述系统常量。

按需恢复应用数据时,所述应用层设置模块101根据恢复指令,将应用的应 用数据目录设置到系统常量中。所述底层权限获取模块102利用所述系统常量中 的所述应用数据目录,获取所述应用数据目录的目录权限,具体地说,所述底层 权限获取模块102定时扫描系统常量,一旦发现所述系统常量不为空,则读取其 内容,所读取的内容即是应用层设置模块101设置到系统常量中的应用数据目 录,然后通过系统提供的接口,获取所述应用数据目录的目录权限,进一步地, 在获取所述应用数据目录的目录权限后,将所述应用数据目录及目录权限备份到 已备份列表,并清空所述系统常量。所述底层权限修改模块103将所述应用数据 目录权限设置为可读写。所述应用层数据恢复模块强制关闭应用,并按照用户选 择的备份时间点,读取在所述备份时间点之前备份的所有应用数据,复制到已设 置为可读写权限的应用数据目录下。进一步地,应用数据按需恢复完成之后,使 用所述已备份列表中备份的目录权限,对应用数据目录的目录权限进行恢复的步 骤,具体包括:所述应用层设置模块101再次将所述应用数据目录设置到系统常 量中,所述底层权限获取模块102通过对所述系统常量的扫描,发现所述应用数 据目录,并检查所发现的应用数据目录是否已存在于已备份列表中,若所发现的 应用数据目录已存在于已备份列表中,则将应用数据目录的可读写权限恢复成所 述已备份列表中所备份的目录权限,并清空所述系统常量。

上述自动备份应用数据且按需恢复的方法及装置应用于终端中,所述终端可 以是手机,也可以是平板电脑等其它类型的终端,下面以Android系统的手机为 例,进一步阐述本发明。

底层:以Android系统为例,其他操作系统类似。通过配置启动文件init.rc 使底层起到一个具有root权限的服务的作用,其职责就是定时查询(查询间隔 很短,比如2s)一个系统常量,一旦发现其值内容不为空,则读取其内容(即 应用数据目录)。获取该应用数据目录的目录权限。如果该应用数据目录不在已 备份列表中,则将应用数据目录和目录权限备份到已备份列表,然后将其目录权 限更改为所有用户可访问的可读写权限。如果该应用数据目录在已备份列表中, 则将其目录权限恢复为之前备份好的目录权限,即恢复为应用数据目录的原有权 限,并将其从已备份列表中剔除。目录权限修改完毕后需要将系统常量置空以备 上层应用下次设置系统常量。另外,该服务启动时需要查看本地备份文件(即已 备份文件),如果发觉有内容,则需要恢复对应应用数据目录的目录权限,这个 是为了解决系统在备份/恢复应用数据的过程中出现重启的情况。

应用层:当上层需要备份/恢复应用数据时,首先强制关闭对应应用,防止 数据冲突出错。应用层通过设置系统常量通知底层后不断判断目录权限,一旦目 录权限变为可访问状态(即所有用户可访问的可读写权限)就执行应用数据的备 份/恢复操作,完毕后再次设置系统常量通知底层恢复原有目录权限。

备份的逻辑:一旦用户激活某应用的自动备份功能,那么本发明所述装置就 会监控该应用界面的切换(记录属于该应用界面的进入和退出)以及应用是否被 系统所杀。一旦发现该应用启动过且所有相关界面都退出,或者发现该应用被系 统杀掉,就会启动一个备份流程,自动备份应用数据并和当前的备份时间点一并 记录在案,应当注意的是,所述应用主动终止时不会触发备份流程。备份时会比 较应用数据目录中的内容和上次备份内容的差异,只备份差异部分,确保占用空 间最小。如果没有差异则不会生成本次备份记录。当然用户也可以主动发起备份 流程,此时所述装置将直接备份应用数据。

恢复的逻辑:一旦用户选择恢复该应用的应用数据,那么所述装置将列出所 有备份的备份时间点供用户选择,一旦用户选择恢复的备份时间点,那么系统首 先会强制终止该应用(主动终止不会触发备份流程),然后从第一次备份的备份 时间点开始,直到用户选择的备份时间点,依次将备份的内容复制到应用数据目 录下。

所述系统常量是Android系统中应用层和底层皆可读写的区域,常用其进行 上层和底层的信息交互。

下面结合图3-图5,对本发明进一步说明。

图3是本发明实施例提供的底层启动流程图,如图3所示,步骤包括:

步骤S301:底层清空系统常量,检查本地文件(即已备份列表),看看之前 是否有残留的需要预先恢复目录权限的应用数据目录,如果有,则进入步骤S306 开始目录权限恢复,否则进入步骤S302。

步骤S302:底层定时扫描系统常量(原有系统不会主动扫描系统常量),判 断所述系统常量的内容是否为空,一旦发现所述系统常量的内容不为空,则进入 步骤S303,否则重复扫面系统常量。

步骤S303:所述系统常量的内容是应用数据目录,并通过系统提供的接口, 获取所述应用数据目录的目录权限。

步骤304、底层判断所述应用数据目录是否在已备份列表中,如果所述应用 数据目录不在已备份列表中,则进入步骤S305的设置流程,否则进入步骤S306 的目录权限恢复流程。

步骤S305:底层获取该应用数据目录的目录权限,将该应用数据目录和目 录权限保存进已备份列表,将该目录权限设置为所有用户可访问的可读写权限, 然后进入步骤S307。

步骤S306:从已备份列表中读取该应用数据目录的目录权限(即原有权限), 将其目录权限设置为所述原有权限,并从已备份列表中删除该记录,然后进入步 骤S307。

步骤S307:清空系统常量,并等待上层应用再次设置该值,回到步骤S302。

图4是本发明实施例提供的上层备份/恢复应用数据的流程图,如图4所示, 步骤包括:

步骤S401:应用层将应用数据目录设置到系统常量中。

步骤S402:应用层定时读取该应用数据目录的目录权限,判断所述目录权 限是否为可读写,如果所述目录权限为不可读写就重复步骤S402继续等待,如 果所述目录权限为可读写,则进入步骤S403。

步骤S403:应用层判断是应用数据的备份操作还是恢复操作,执行应用数 据的备份或恢复操作。如果是备份操作,则执行步骤S404-步骤S406,如果是恢 复操作,则执行步骤S407-S408。

步骤S404、应用层进行差异性备份,也就是说,在上一次备份的基础上备 份发生了变化的文件。

步骤S405、应用层判断是否有差异文件,即差异部分应用数据。

步骤406、应用层将差异文件和当前的备份时间点保存进数据库,然后进入 步骤S409。

步骤407、主动将应用结束。

步骤S408、应用层从第一次备份的备份时间点开始,直到用户选择的备份 时间点,依次将备份的内容复制到应用数据目录下,然后进入步骤S409。

步骤S409:将应用数据目录设置到系统常量中,并使用所述已备份列表中 备份的目录权限,对应用数据目录的目录权限进行恢复,最后,清空所述系统常 量。

图5是本发明实施例提供的自动备份应用数据的流程图,如图5所示,步骤 包括:

步骤S501:对所述应用的运行状态进行检测。

具体地说,监控记录该应用所属界面的启动退出情况以及该应用的存活状态 (在Android系统中可通过注册接收该应用的死亡报告的方法获取其是否被系 统杀死)。一旦发现该应用从启动状态(即在没有该应用的任何界面存在的基础 上有该应用所属界面启动了,则该应用被认为处于启动状态)变化到关闭状态(即 该应用所有的界面都已退出),或者发现该应用被系统杀死,则进入步骤S502, 否则,继续监控。

步骤S502:将应用数据目录设置到系统常量中。

步骤S503:定时查询该应用数据目录的目录权限,判断所述目录权限是否 为可读写,如果所述目录权限为可读写则执行步骤S504,否则继续定时查询该 应用数据目录的目录权限。

步骤S504:如果备份过程中发现的确有差异文件存在,则将差异文件和当 前的备份时间点作为一条记录存放进数据库。

步骤S505:将应用数据目录设置到系统常量中,并使用所述已备份列表中 备份的目录权限,对应用数据目录的目录权限进行恢复,最后,清空所述系统常 量,并重复执行步骤S501。

下面以A游戏的应用数据备份流程为例,对本发明进行进一步说明。

系统启动,底层服务被启动,检查已备份列表后发现没有上次未恢复目录权 限的记录,开始定时监控系统常量的内容。

由于用户配置了自动备份A游戏,所以上层启动后会监控A游戏的界面切换 及其生存状况。

用户启动A游戏并游戏了一段时间,期间游戏应用自动保存了进度。A游戏 被退出后,启动自动备份流程。具体地说,应用层将A游戏的应用数据存放的应 用数据目录信息设置到系统常量中,以便底层利用所述应用数据目录,获取所述 应用数据目录的目录权限,并将所述目录权限修改为可读写,进一步地,底层将 所述应用数据目录及其原有的目录权限备份到已备份列表,并清空所述系统常 量。然后应用层在通过定时查询目录权限并发现目录权限是可读写之后,开始检 查A游戏的应用数据和上一次备份时的应用数据的差异,如有差异,则将差异部 分应用数据记录下来。特别地,如果在前没有继续备份,自然全部应用数据都是 差异点,结果自然是有差异。将当前的备份时间点和差异文件内容(即差异部分 应用数据)保存进数据库。再次将A游戏的应用数据存放的应用数据目录信息设 置到了系统常量中,以便底层使用所述已备份列表中备份的目录权限,对应用数 据目录的目录权限进行恢复,然后清空所述系统常量。

综上所述,本发明具有以下技术效果:

本发明通过应用数据的自动备份和按需恢复,对于某些应用(尤其是一些有 自动保存功能的游戏来说)特别有效果,必是能吸引用户(尤其是游戏玩家)的 一大亮点功能。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术 人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改, 都应当理解为落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号