一种数据迁移方法及系统与流程

文档序号:11250701阅读:909来源:国知局
一种数据迁移方法及系统与流程

本申请涉及通信领域,特别涉及一种数据迁移方法及系统。



背景技术:

随着移动互联网井喷式发展,移动网民数量呈现爆发趋势,为了能获取更好的移动终端使用体验,移动终端厂商在持续研发更先进的终端。

得利于移动厂商的研发成果,终端用户使用最新的终端产品可以获得更好的使用体验,但用户在更换终端后也会遇到一些问题,如应用程序和应用程序运行过程中产生的数据的迁移问题(即用户需要将旧终端上的应用程序和应用程序运行过程中产生的数据迁移到新终端上)。但,如何进行应用程序和应用程序运行过程中产生的数据的迁移成为问题。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种数据迁移方法及系统,以达到实现将历史终端的应用程序和应用程序运行过程中产生的数据迁移到当前终端上的目的,技术方案如下:

一种数据迁移方法,包括:

历史终端加载android安装包,并解析所述android安装包,得到可执行应用程序;

所述历史终端将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区;

所述历史终端从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序;

所述历史终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区;

所述历史终端将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区;

当前终端从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区。

优选的,还包括:

所述当前终端从所述第二私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序;

所述当前终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第二私有数据存储区。

优选的,还包括:

若所述历史终端与所述当前终端为不同的终端且所述第二私有数据存储区中的数据中存在与所述历史终端的硬件信息有关的数据,所述当前终端获取所述历史终端的硬件信息,并将获取到的所述历史终端的硬件信息发送至所述当前终端的第二私有应用程序存储区中的可执行应用程序,以使所述当前终端的第二私有应用程序存储区中的可执行应用程序利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据。

优选的,还包括:

若利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,所述当前终端不恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据,只恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的应用程序。

一种数据迁移系统,包括:历史终端和当前终端,所述历史终端包括:第一应用程序安装代理模块、第一应用程序运行代理模块和备份模块,所述当前终端包括:第一数据恢复模块;

所述第一应用程序安装代理模块,用于加载android安装包,并解析所述android安装包,得到可执行应用程序,并将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区;

所述第一应用程序运行代理模块,用于从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序,并截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区;

所述备份模块,用于将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区;

所述第一数据恢复模块,用于从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区。

优选的,所述当前终端还包括:

第二应用程序运行代理模块,用于从所述第二私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序,并截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第二私有数据存储区。

优选的,所述当前终端还包括:

获取模块,用于若所述历史终端与所述当前终端为不同的终端且所述第二私有数据存储区中的数据中存在与所述历史终端的硬件信息有关的数据,获取所述历史终端的硬件信息;

发送模块,用于将获取到的所述历史终端的硬件信息发送至所述当前终端的第二私有应用程序存储区中的可执行应用程序,以使所述当前终端的第二私有应用程序存储区中的可执行应用程序利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据。

优选的,所述当前终端还包括:

第二数据恢复模块,用于若利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,不恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据,只恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的应用程序。

与现有技术相比,本申请的有益效果为:

在本申请中,通过历史终端加载android安装包,并解析所述android安装包,得到可执行应用程序;所述历史终端将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区;所述历史终端从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序;所述历史终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区;所述历史终端将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区;当前终端从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区,实现了将历史终端的应用程序和应用程序运行过程中产生的数据迁移到当前终端上。

并且,将历史终端的应用程序和应用程序运行过程中产生的数据迁移到当前终端的过程中,不需要持续依赖网络连接,提高了迁移方案的通用性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的数据迁移方法的一种流程图;

图2是本申请提供的数据迁移方法的一种流程框图;

图3是本申请提供的数据迁移方法的另一种流程框图;

图4是本申请提供的数据迁移方法的再一种流程框图;

图5是本申请提供的数据迁移方法的另一种流程图;

图6是本申请提供的数据迁移方法的再一种流程图;

图7是本申请提供的数据迁移方法的再一种流程图;

图8是本申请提供的数据迁移系统的一种逻辑结构示意图;

图9是本申请提供的数据迁移系统的另一种逻辑结构示意图;

图10是本申请提供的数据迁移系统的再一种逻辑结构示意图;

图11是本申请提供的数据迁移系统的再一种逻辑结构示意图。

具体实施方式

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

实施例一

请参见图1,其示出了本申请提供的数据迁移方法的一种流程图,可以包括以下步骤:

步骤s11:历史终端加载android安装包,并解析所述android安装包,得到可执行应用程序。

在本实施例中,历史终端新增独立于历史终端操作系统的默认安装模块的应用程序安装代理模块和独立于历史终端操作系统的默认运行模块的应用程序运行代理模块。具体的,历史终端中的应用程序安装代理模块加载android安装包,并解析所述android安装包,得到可执行应用程序。更具体的,历史终端中的应用程序安装代理模块可以从本地或网络上加载android安装包。

步骤s12:所述历史终端将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区。

具体的,历史终端中的应用程序安装代理模块将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区。

步骤s13:所述历史终端从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序。

具体的,由历史终端中的应用程序运行代理模块中的应用程序虚拟运行模块从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序。

步骤s14:所述历史终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区。

在运行所述可执行应用程序之后,具体的,由历史终端中的应用程序运行代理模块中的虚拟文件系统模块监控可执行应用程序运行过程中的操作请求,在监控到可执行应用程序运行过程中的操作请求时,截获所述可执行应用程序运行过程中的操作请求,并代替可执行应用程序响应所述操作请求,实现了对可执行应用程序运行过程中产生的数据的存储路径的重定向,将响应所述操作请求产生的数据存储至指定的区域即第一私有数据存储区。

其中,可执行应用程序运行过程中的操作请求是由用户在使用可执行应用程序过程中触发的。

在本实施例中,第一私有应用程序存储区和第一私有数据存储区并不局限为历史终端的本地存储介质,如果网络满足要求也可以将云盘作为存储介质,存储区具体形式可以是目录,也可以是私有的镜像文件格式。

步骤s15:所述历史终端将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区。

在本实施例中,中转存储区可以但不局限于为云存储区。

步骤s16:当前终端从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区。

在本实施例中,当前终端同样新增独立于当前终端操作系统的默认安装模块的应用程序安装代理模块和独立于当前终端操作系统的默认运行模块的应用程序运行代理模块。

当前终端新增的独立于当前终端操作系统的默认安装模块的应用程序安装代理模块与上述历史终端新增的独立于历史终端操作系统的默认安装模块的应用程序安装代理模块的功能相同;以及,当前终端新增的独立于当前终端操作系统的默认运行模块的应用程序运行代理模块与上述历史终端新增的独立于历史终端操作系统的默认运行模块的应用程序运行代理模块的功能相同。

在本实施例中,第二私有应用程序存储区和第二私有数据存储区并不局限为当前终端的本地存储介质,如果网络满足要求也可以将云盘作为存储介质,存储区具体形式可以是目录,也可以是私有的镜像文件格式。

历史终端和当前终端之间可能存在多个应用程序和对应的数据需要迁移,每个应用程序和对应的数据的迁移过程均相同,即图1示出的数据迁移方法的过程。

在本申请中,通过历史终端加载android安装包,并解析所述android安装包,得到可执行应用程序;所述历史终端将所述可执行应用程序写入独立于所述历史终端的操作系统的默认安装区域的第一私有应用程序存储区;所述历史终端从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序;所述历史终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区;所述历史终端将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区;当前终端从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区,实现了将历史终端的应用程序和应用程序运行过程中产生的数据迁移到当前终端上。

并且,将历史终端的应用程序和应用程序运行过程中产生的数据迁移到当前终端的过程中,不需要持续依赖网络连接,提高了迁移方案的通用性。

进一步的,由于将历史终端上的可执行应用程序运行过程中产生的数据存储到了指定的存储区域即第一私有数据存储区,在进行数据迁移时,历史终端上的可执行应用程序运行过程中产生的数据全部备份到了中转存储区,同时当前终端同样设置有单独的第二私有数据存储区,保证历史终端上的可执行应用程序运行过程中产生的数据全部迁移到当前终端的第二私有数据存储区,进而保证了数据迁移的完整性。

为了更直观的体现图1示出的数据迁移方法的执行过程,在本实施例中提供流程框图,请参见图2至图4。

如图2所示,apk是androidpackage的缩写,即android安装包。

图4中的android旧终端即上述历史终端,android新终端即上述当前终端。

在本实施例中,在图1示出的数据迁移方法的基础上扩展出另外一种数据迁移方法,请参见图5,在图1示出的数据迁移方法的基础上还包括以下步骤:

步骤s17:所述当前终端从所述第二私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序。

在本实施例中,历史终端上的可执行应用程序和可执行应用程序运行过程中产生的数据迁移到当前终端上后,由于当前终端的第二私有应用程序存储区中存储的是可执行应用程序,因此当前终端可以直接从第二私有应用程序存储区中加载可执行应用程序,并运行所述可执行应用程序,不需要将迁移过来的可执行应用程序重新安装。

且历史终端和当前终端上的各个可执行应用程序自己不需要具备云存储功能。

步骤s18:所述当前终端截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第二私有数据存储区。

当前终端的第二私有应用程序存储区中的可执行应用程序和第二私有数据存储区的数据迁移到其他终端的过程可以参见图1示出的数据迁移方法的过程,在此不再赘述。只是,当前终端的第二私有应用程序存储区中的可执行应用程序和第二私有数据存储区的数据迁移到其他终端时,当前终端的角色转换为了历史终端。

在本实施例中,历史终端上某些可执行应用程序运行过程中产生的数据与终端硬件信息(如硬件id)有关,如可执行应用程序使用终端硬件id对数据加密存储,此类情况可执行应用程序运行过程中产生的数据从历史终端迁移到当前终端后,迁移到当前终端上的可执行应用程序无法识别这些数据,为了使解决这个问题,可以在以下两种场景中分别进行不同的处理,具体为:

场景一:同一终端恢复出厂后数据恢复

同一终端因为硬件信息没有改变,所以可执行应用程序和可执行应用程序运行过程中产生的数据恢复后都可以正常使用。

场景二:跨终端数据恢复

跨终端数据恢复,因为两台终端硬件信息不一致,所以对硬件信息有依赖的可执行应用程序解析迁移过来的数据会失败,针对此类情况本专利有相应的处理方法,具体请参见图6,在图5示出的数据迁移方法的基础上还包括以下步骤:

步骤s19:若所述历史终端与所述当前终端为不同的终端且所述第二私有数据存储区中的数据中存在与所述历史终端的硬件信息有关的数据,所述当前终端获取所述历史终端的硬件信息,并将获取到的所述历史终端的硬件信息发送至所述当前终端的第二私有应用程序存储区中的可执行应用程序,以使所述当前终端的第二私有应用程序存储区中的可执行应用程序利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据。

在本实施例中,当前终端新增虚拟硬件模块,由虚拟硬件模块获取所述历史终端的硬件信息,并将获取到的所述历史终端的硬件信息发送至所述当前终端的第二私有应用程序存储区中的可执行应用程序。

在本实施例中,在图6示出的数据迁移方法的基础上扩展出另外一种数据迁移方法,请参见图7,在图6示出的数据迁移方法的基础上还包括以下步骤:

步骤s110:若利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,所述当前终端不恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据,只恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的应用程序。

在本实施例中,可以预先配置当前终端的执行过程,使当前终端自动执行以下过程:若利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,当前终端不恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据,只恢复所述第二私有数据存储区中与所述历史终端的硬件信息有关的应用程序,以达到不迁移特定应用的数据,只迁移可执行应用程序本身的目的。

或者,可以预先配置当前终端的执行过程,使当前终端自动执行以下过程:若利用所述历史终端的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,所述当前终端删除所述第二私有数据存储区中的所有数据。

当前终端在删除所述第二私有数据存储区中的所有数据后,可以重新导入相应的数据至第二私有数据存储区,以完成数据的迁移。

实施例二

与上述方法实施例相对应,本实施例提供了一种数据迁移系统,请参见图8,数据迁移系统包括:历史终端1和当前终端2,其中,历史终端1包括:第一应用程序安装代理模块11、第一应用程序运行代理模块12和备份模块13;当前终端2包括:第一数据恢复模块21。

所述第一应用程序安装代理模块11,用于加载android安装包,并解析所述android安装包,得到可执行应用程序,并将所述可执行应用程序写入独立于所述历史终端1的操作系统的默认安装区域的第一私有应用程序存储区。

所述第一应用程序运行代理模块12,用于从所述第一私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序,并截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第一私有数据存储区。

所述备份模块13,用于将所述第一私有应用程序存储区中的可执行应用程序和所述第一私有数据存储区中的数据备份至中转存储区。

所述第一数据恢复模块21,用于从所述中转存储区中读取并存储所述第一私有应用程序存储区中的可执行应用程序至独立于所述当前终端2的操作系统的默认安装区域的第二私有应用程序存储区,并从所述中转存储区中读取并存储所述第一私有数据存储区中的数据至第二私有数据存储区。

在本实施例中,上述当前终端2还可以包括:第二应用程序运行代理模块22,如图9所示。

第二应用程序运行代理模块22,用于从所述第二私有应用程序存储区中加载所述可执行应用程序,并运行所述可执行应用程序,并截获所述可执行应用程序运行过程中的操作请求,并响应所述操作请求,将响应所述操作请求产生的数据存储至第二私有数据存储区。

在本实施例中,图9所示的当前终端2还可以包括:获取模块23和发送模块24,如图10所示。

获取模块23,用于若所述历史终端1与所述当前终端2为不同的终端且所述第二私有数据存储区中的数据中存在与所述历史终端1的硬件信息有关的数据,获取所述历史终端1的硬件信息;

发送模块24,用于将获取到的所述历史终端1的硬件信息发送至所述当前终端2的第二私有应用程序存储区中的可执行应用程序,以使所述当前终端2的第二私有应用程序存储区中的可执行应用程序利用所述历史终端1的硬件信息解析所述第二私有数据存储区中与所述历史终端1的硬件信息有关的数据。

在本实施例中,图10所示的当前终端2还可以包括:第二数据恢复模块25,如图11所示。

第二数据恢复模块25,用于若利用所述历史终端1的硬件信息解析所述第二私有数据存储区中与所述历史终端的硬件信息有关的数据失败,不恢复所述第二私有数据存储区中与所述历史终端1的硬件信息有关的数据,只恢复所述第二私有数据存储区中与所述历史终端1的硬件信息有关的应用程序。

或者,第二数据恢复模块25,用于若利用所述历史终端1的硬件信息解析所述第二私有数据存储区中与所述历史终端1的硬件信息有关的数据失败,删除所述第二私有数据存储区中的所有数据。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的一种数据迁移方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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