应用数据备份和恢复方法、装置、设备及存储介质与流程

文档序号:20780977发布日期:2020-05-19 21:14阅读:314来源:国知局
应用数据备份和恢复方法、装置、设备及存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种应用数据备份和恢复方法、装置、设备及存储介质。



背景技术:

随着移动互联网的飞速发展,人们越来越依赖随身携带、在手中使用的移动设备。但是对于移动设备来说,可能会发生丢失,损坏等意外情况,导致其中珍贵的信息、数据丢失,因此数据的备份及恢复被重视起来。另外,在一些企业级场景下,需要将移动设备中应用程序的数据从云端同步到员工的手机端,或将应用程序数据备份到云端,这些需求依赖轻量化的数据备份恢复。

相关技术中的应用数据备份恢复大多依赖操作系统来实现,虽然可以达到数据备份的效果,但是有如下问题:

1)依赖操作系统,从而导致在操作系统不支持情况下,无法实现数据备份恢复;兼容性差,不同厂商,甚至同厂商不同版本的系统,不能彼此兼容。

2)备份的数据存在本地,易丢失或损坏。

3)只支持备份应用程序内部存储的数据,外部存储数据无法备份,造成数据丢失。

4)不够轻量化,对企业级场景来说难以管理备份的数据。

针对相关技术中数据备份恢复方法依赖操作系统、易丢失或损坏、无法备份外部存储数据、不够轻量化等的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种应用数据备份和恢复方法、装置、设备及存储介质,以解决至少上述问题之一。

为了实现上述目的,根据本申请的一个方面,提供了一种应用数据备份方法,该方法包括:接收数据备份指令;根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据;将所述备份数据上传至云端服务器。

进一步的,如前述的方法,在所述接收数据备份指令之前,所述方法还包括:管理端向所述沙箱化应用发送所述数据备份指令;所述接收数据备份指令,包括:所述沙箱化应用接收所述数据备份指令;所述根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,包括:所述沙箱化应用根据所述数据备份指令启动备份进程,对所述内部存储数据和所述外部存储数据进行备份操作;在所述获得所述备份数据之后,在所述将所述备份数据上传至云端服务器之前,所述方法还包括:所述沙箱化应用将备份完成消息发送至所述管理端;所述将所述备份数据上传至云端服务器,包括:所述管理端根据所述备份完成消息将所述备份数据上传至所述云端服务器。

进一步的,如前述的方法,所述沙箱化应用根据所述数据备份指令启动备份进程,对所述内部存储数据和所述外部存储数据进行备份操作,包括:所述沙箱化应用根据所述数据备份指令启动备份进程,将所述内部存储数据进行打包并压缩处理,获得所述内部存储数据的压缩包,其中,所述内部存储数据的压缩包保留所述的内部存储数据的文件路径结构。

进一步的,如前述的方法,所述沙箱化应用根据所述数据备份指令启动备份进程,对所述内部存储数据和所述外部存储数据进行备份操作,包括:所述沙箱化应用根据所述数据备份指令启动备份进程,利用钩子机制通过所述沙箱化应用的接口记录所述外部存储数据,生成所述外部存储数据的索引;根据所述外部存储数据的索引将所述外部存储数据进行打包并压缩处理,获得所述外部存储数据的压缩包,其中,所述外部存储数据的压缩包保留所述的外部存储数据的文件路径结构。

进一步的,如前述的方法,在所述接收数据备份指令之前,所述方法还包括:启动所述沙箱化应用,加载所述沙箱化应用的数据备份模块;所述根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,包括:所述数据备份模块根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作。

为了实现上述目的,根据本申请的另一方面,提供了一种应用数据恢复方法,该方法包括:接收数据恢复指令,所述数据恢复指令包括请求恢复沙箱化应用沙箱化应用的内部存储数据和外部存储数据;根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据;将所述内部存储数据和所述外部存储数据恢复到所述沙箱化应用中。

进一步的,如前述的方法,在所述接收数据恢复指令之前,所述方法还包括:管理端向所述沙箱化应用发送所述数据恢复指令;所述接收数据恢复指令,包括:所述沙箱化应用接收所述数据恢复指令;所述根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据,包括:所述沙箱化应用根据所述数据恢复指令启动恢复进程;所述根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据,包括:在所述恢复进程中,通过所述管理端从所述云端服务器下载所述内部存储数据和所述外部存储数据。

为了实现上述目的,根据本申请的另一方面,提供了一种应用数据备份装置,该装置包括:沙箱化应用模块、管理模块和云端服务器,其中:所述沙箱化应用模块,用于接收数据备份指令;根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据;所述管理模块,还用于将所述备份数据上传至所述云端服务器;所述云端服务器,用于接收所述备份数据。

为了实现上述目的,根据本申请的另一方面,提供了一种设备,包括存储器和处理器,所述存储器中存储有计算机程序,其中,所述处理器被设置为通过所述计算机程序执行上述任一项所述的方法。

为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项所述的方法。

在本申请实施例中,采用接收数据备份指令后根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作的方式,获得备份数据,通过将备份数据上传至云端服务器,达到了对应用进行内部存储数据和外部存储数据备份的目的,实现了将应用数据云端备份的技术效果,进而解决了由于相关技术中备份的数据存在本地、无法备份外部存储导致的备份数据易丢失或损坏、外部数据丢失的技术问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请一个实施例提供的一种应用数据备份方法的流程示意图;

图2是本申请一个实施例提供的另一种应用数据备份方法的流程示意图;

图3是本申请一个实施例提供的再一种应用数据备份方法的流程示意图;

图4是本申请一个实施例提供的一种应用数据恢复方法的流程示意图;

图5是本申请一个实施例提供的一种应用数据备份装置的框图;以及

图6是本申请一个实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

沙箱,对使用者来说可以理解为一种安全环境,对恶意访问者来说是一种限制。在安卓(android)系统中,应用(通常)都在一个独立的沙箱中运行,即每一个android系统中应用程序都在这个程序自己的进程中运行,都拥有一个独立的达尔维克(dalvik)虚拟机实例。dalvik经过优化,允许在有限的内存中同时高效地运行多个虚拟机的实例,并且每一个dalvik应用作为一个独立的linux进程执行。android这种基于linux的进程“沙箱”机制,是整个安全设计的基础之一。

应用程序进程之间,应用程序与操作系统之间的安全性由linux操作系统的标准进程级安全机制实现。在默认状态下,应用程序之间无法交互,运行在进程沙箱内的应用程序没有被分配权限,无法访问系统或资源。因此,无论是直接运行于操作系统之上的应用程序,还是运行于dalvik虚拟机的应用程序都得到同样的安全隔离与保护,被限制在各自“沙箱”内的应用程序互不干扰,对系统与其他应用程序的损害可降至最低。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

根据本发明实施例,提供了一种应用数据备份方法,如图1所示,该方法包括如下的步骤:

在步骤s11中,接收数据备份指令;可通过独立于应用(application,缩写为app)的管理端模块的软件开发工具包(softwaredevelopmentkit,缩写为sdk)与沙箱化的应用进行通讯,通过providercall,管理端向沙箱化应用发送数据备份指令,应用接收该指令。

在步骤s12中,根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据;沙箱化的应用启动独立进程进行数据备份,备份前,退出该应用的其他进程,防止备份的同时数据在同步进行修改。备份完成后,通过广播(broadcast)通知管理端sdk备份结果。

在步骤s13中,将所述备份数据上传至云端服务器。管理端sdk收到broadcast备份成功的消息,将备份数据上传到云端服务器,备份流程结束。

从以上的描述中,可以看出,在本申请实施例中,采用接收数据备份指令后根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作的方式,获得备份数据,通过将备份数据上传至云端服务器,达到了对应用进行内部存储数据和外部存储数据备份的目的,实现了将应用数据云端备份的技术效果,进而解决了由于相关技术中备份的数据存在本地、无法备份外部存储导致的备份数据易丢失或损坏、外部数据丢失的技术问题。

根据本发明实施例,提供了一种应用数据备份方法,如图2所示,该方法包括如下的步骤:

在步骤s21中,管理端向所述沙箱化应用发送所述数据备份指令。可在androidmanifest.xml增加一个provider,用于应用接受管理端的备份请求,该provider运行在独立进程中。通过独立于应用的管理端模块的软件开发工具包(softwaredevelopmentkit,缩写为sdk)与沙箱化的应用进行通讯,通过providercall,管理端向沙箱化应用发送数据备份指令。

在步骤s22中,所述沙箱化应用接收所述数据备份指令。

在步骤s23中,所述沙箱化应用根据所述数据备份指令启动备份进程,对所述内部存储数据和所述外部存储数据进行备份操作,获得所述备份数据。沙箱化的应用启动独立进程进行数据备份,备份前,退出该应用的其他进程,防止备份的同时数据在同步进行修改。

进一步地,所述沙箱化应用根据所述数据备份指令启动备份进程,将所述内部存储数据进行打包并压缩处理,获得所述内部存储数据的压缩包,其中,所述内部存储数据的压缩包保留所述的内部存储数据的文件路径结构。

进一步地,所述沙箱化应用根据所述数据备份指令启动备份进程,利用钩子机制通过所述沙箱化应用的接口记录所述外部存储数据,生成所述外部存储数据的索引。通过钩(hook)安卓系统输入输出(inputoutput,缩写为io)相关的应用程序接口(applicationprogramminginterface,缩写为api),记录app运行过程中在外部存储产生的所有文件,并生成文件索引。

根据所述外部存储数据的索引将所述外部存储数据进行打包并压缩处理,获得所述外部存储数据的压缩包,其中,所述外部存储数据的压缩包保留所述的外部存储数据的文件路径结构。

在步骤s24中,所述沙箱化应用将备份完成消息发送至所述管理端。备份完成后,沙箱化应用通过广播(broadcast)通知管理端sdk备份结果。

在步骤s25中,所述管理端根据所述备份完成消息将所述备份数据上传至所述云端服务器。管理端sdk收到broadcast备份成功的消息,将备份数据上传到云端服务器,备份流程结束。

从以上的描述中,可以看出,在本申请实施例中,采用沙箱化应用根据管理端发送的数据备份指令对其内部存储数据和外部存储数据进行备份操作的方式,获得备份数据,通过管理端接收应用发送的备份完成消息将备份数据上传至云端服务器,达到了将应用内部存储数据和外部存储数据云端备份的目的,实现了独立于操作系统进行备份的技术效果,进而解决了相关技术中由于依赖操作系统、备份的数据存在本地、无法备份外部存储导致的兼容性差、备份数据易丢失或损坏、外部数据丢失的技术问题。

根据本发明实施例,提供了一种应用数据备份方法,如图3所示,该方法包括如下的步骤:

在步骤s31中,启动所述沙箱化应用,加载所述沙箱化应用的数据备份模块。将app进行打包并沙箱化,在app启动时,加载数据备份的相关代码。

在步骤s32中,接收数据备份指令。可通过独立于应用的管理端模块的sdk与沙箱化的应用进行通讯,通过providercall,管理端向沙箱化应用发送数据备份指令,应用接收该指令。

在步骤s33中,所述数据备份模块根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据。沙箱化的应用启动独立进程进行数据备份,备份前,退出该应用的其他进程,防止备份的同时数据在同步进行修改。备份完成后,通过broadcast通知管理端sdk备份结果。

在步骤s34中,将所述备份数据上传至云端服务器。管理端sdk收到broadcast备份成功的消息,将备份数据上传到云端服务器,备份流程结束。

从以上的描述中,可以看出,在本申请实施例中,通过启动所述沙箱化应用时加载沙箱化应用的数据备份模块,采用接收数据备份请求后根据所述数据备份请求对沙箱化应用的内部存储数据和外部存储数据进行备份操作的方式,获得备份数据,通过将备份数据上传至云端服务器,达到了对应用进行内部存储数据和外部存储数据云端备份的目的,实现了轻量化应用数据备份的技术效果,进而解决了由于相关技术中备份的数据存在本地、无法备份外部存储导致的备份数据易丢失或损坏、外部数据丢失的技术问题。

根据本发明实施例,提供了一种应用数据恢复方法,如图4所示,该方法包括如下的步骤:

在步骤s41中,接收数据恢复指令,所述数据恢复指令包括请求恢复沙箱化应用沙箱化应用的内部存储数据和外部存储数据。管理端sdk通过providercall,向沙箱化app发送数据恢复指令。可在androidmanifest.xml增加一个provider,用于应用接受管理端的恢复请求,该provider运行在独立进程中。通过独立于应用的管理端模块的软件开发工具包(softwaredevelopmentkit,缩写为sdk)与沙箱化的应用进行通讯,通过providercall,管理端向沙箱化应用发送数据恢复指令。

在步骤s42中,根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据。管理端sdk从云端下载备份数据到移动端。

在步骤s43中,将所述内部存储数据和所述外部存储数据恢复到所述沙箱化应用中。沙箱化app启动独立进程进行数据恢复,恢复前,退出该app的其他进程。恢复时,解压备份数据的压缩包分别到app的内部存储和外部存储,实现数据恢复。恢复成功后,重新生成外部存储数据的索引,通过broadcast通知sdk结果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本发明实施例,还提供了一种用于实施上述应用数据备份方法和/或应用数据恢复方法的装置,如图5所示,该装置包括沙箱化应用模块51、管理模块52和云端服务器53,其中:

所述沙箱化应用模块51,用于接收数据备份指令;根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据。

所述管理模块52,用于将所述备份数据上传至所述云端服务器。

所述云端服务器53,用于接收所述备份数据。

所述沙箱化应用模块51,还用于根据所述数据备份指令启动备份进程,对所述内部存储数据和所述外部存储数据进行备份操作。

所述沙箱化应用模块51,还用于将备份完成消息发送至所述管理端。

所述管理模块52,还用于根据所述备份完成消息将所述备份数据上传至所述云端服务器。

所述沙箱化应用模块51,还用于根据所述数据备份指令启动备份进程,将所述内部存储数据进行打包并压缩处理,获得所述内部存储数据的压缩包,其中,所述内部存储数据的压缩包保留所述的内部存储数据的文件路径结构。

所述沙箱化应用模块51,还用于根据所述数据备份指令启动备份进程,利用钩子机制通过所述沙箱化应用的接口记录所述外部存储数据,生成所述外部存储数据的索引;根据所述外部存储数据的索引将所述外部存储数据进行打包并压缩处理,获得所述外部存储数据的压缩包,其中,所述外部存储数据的压缩包保留所述的外部存储数据的文件路径结构。

所述沙箱化应用模块51包括数据备份模块(附图中未示出),所述数据备份模块在启动所述沙箱化应用时加载,用于根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作。

所述管理模块52,还用于向所述沙箱化应用发送所述数据恢复指令,所述数据恢复指令包括请求恢复沙箱化应用沙箱化应用的内部存储数据和外部存储数据。

所述沙箱化应用模块51,还用于接收所述数据恢复指令。

所述沙箱化应用模块51,还用于根据所述数据恢复指令启动恢复进程。

所述管理模块52,还用于在所述恢复进程中从所述云端服务器下载所述内部存储数据和所述外部存储数据。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

根据本发明实施例,还提供了一种用于实施上述应用数据备份方法和/或应用数据恢复方法的电子设备。图6是根据本发明实施例的一种电子设备的结构框图,如图6所示,该电子设备可以包括:一个或多个(图中仅示出一个)处理器601、存储器603,其中,存储器603中可以存储有计算机程序,处理器601可以被设置为运行所述计算机程序以执行本发明实施例的应用数据备份方法和/或应用数据恢复方法。其中,存储器603可用于存储计算机程序以及模块,如本发明实施例中的应用数据备份方法和/或应用数据恢复方法方法和装置对应的程序指令/模块,处理器601通过运行存储在存储器603内的计算机程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用数据备份方法和/或应用数据恢复方法。存储器603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器603可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

可选地,如图6所示,该电子设备还可以包括:传输装置605以及输入输出设备607。其中,传输装置605用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置605包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置605为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

本领域普通技术人员可以理解,图6所示的结构仅为示意,电子设备可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图6其并不对上述电子装置的结构造成限定。例如,电子装置还可以包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或具有与图6所示不同的配置。可选地,在本实施例中,上述存储器603可以用于存储计算机程序。可选地,在本实施例中,上述处理器可以被设置为运行计算机程序,以执行以下步骤:

接收数据备份指令;

根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据;

将所述备份数据上传至云端服务器。

接收数据恢复指令,所述数据恢复指令包括请求恢复沙箱化应用沙箱化应用的内部存储数据和外部存储数据;

根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据;

将所述内部存储数据和所述外部存储数据恢复到所述沙箱化应用中。

根据本发明实施例,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述实施例中应用数据备份方法和/或应用数据恢复方法的步骤。

可选地,在本实施例中,存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的计算机程序:

接收数据备份指令;

根据所述数据备份指令对沙箱化应用的内部存储数据和外部存储数据进行备份操作,获得所述备份数据;

将所述备份数据上传至云端服务器。

接收数据恢复指令,所述数据恢复指令包括请求恢复沙箱化应用沙箱化应用的内部存储数据和外部存储数据;

根据所述数据恢复指令从云端服务器下载所述内部存储数据和所述外部存储数据;

将所述内部存储数据和所述外部存储数据恢复到所述沙箱化应用中。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1