[发明专利]不依赖文件系统的差分包合并方法与系统有效
申请号: | 201710158034.7 | 申请日: | 2017-03-16 |
公开(公告)号: | CN107423038B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 惠红磊;张天瑜;许宁 | 申请(专利权)人: | 深圳市广和通无线通信软件有限公司 |
主分类号: | G06F8/658 | 分类号: | G06F8/658 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 吴平 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 不依赖 文件系统 分包 合并 方法 系统 | ||
本发明提供一种不依赖文件系统的差分包合并方法与系统,拷贝差分包中前N字节,获得字节数据,根据字节数据,获取控制字段和差分数据,确定预设的内存指针,将预设的内存指针指向的地址传递至差分包中结构体,获得修改的差分包,预设的内存指针包括指向差分包最后字节的内存指针,循环读取修改的差分包中内容,并将循环读取的内容与旧版本内容进行差分运算生成新版本内容。整个过程中,将源码中读取文件的位置修改为内存,并且采用传递内存指针,在指针中包括用来传递指向差分包结尾的指针,从而把读取文件修改为从相应的地址拷贝差分包内容,最终实现把原差分包合并方式移植到不支持文件系统的平台上进行使用。
技术领域
本发明涉及计算机技术领域,特别是涉及不依赖文件系统的差分包合并方法与系统。
背景技术
目前,在计算机或终端程序中可以实现程序不同版本之间的增量升级,即采用差分方式实现版本的更新,采用这种方式更新,可以显著减少更新所需下载数据量,提高更效率。
以安卓系统为应用场景为例,在安卓开源代码智能应用更新可以实现程序不同版本中间的增量升级。然而由于安卓系统中的bsdiff工具用于生成差分包,bapatch工具用于把差分包和旧版本合成新的版本,这个两个工具在运行过程中,都要求新旧版本和差分包都以文件的形式给出,这样,如果把这套开源代码移植到其他不支持文件系统的操作系统中使用时,就会无法使用,如果再实现一套文件系统的话,无疑会增加很大的工作量,也会给系统带来很大的开销。
可见一般差分包和旧版本合成新的版本的过程中都有赖于文件系统,严重影响差分包合并技术的推广应用。
发明内容
基于此,有必要针对目前尚无不依赖文件系统的差分包合并的方法的问题,提供一种不依赖文件系统的差分包合并方法与系统。
一种不依赖文件系统的差分包合并方法,包括步骤:
将新旧版本的差分包保存在内存中;
拷贝差分包中前N字节,获得字节数据,N为正整数;
根据字节数据,获取控制字段和差分数据;
确定预设的内存指针,获取预设的内存指针所指向控制字段的地址和差分数据,并将预设的内存指针指向的地址传递至差分包中结构体,获得修改的差分包,预设的内存指针包括指向差分包最后字节的内存指针;
将旧版本内容读取到内存中;
循环读取修改的差分包中内容,并将循环读取的内容与旧版本内容进行差分运算生成新版本内容。
一种不依赖文件系统的差分包合并系统,包括:
存储模块,用于将新旧版本的差分包保存在内存中;
拷贝模块,用于拷贝差分包中前N字节,获得字节数据,N为正整数;
参数获取模块,用于根据字节数据,获取控制字段和差分数据;
指针处理模块,用于确定预设的内存指针,获取预设的内存指针所指向控制字段的地址和差分数据,并将预设的内存指针指向的地址传递至差分包中结构体,获得修改的差分包,预设的内存指针包括指向差分包最后字节的内存指针;
读取模块,用于将旧版本内容读取到内存中;
差分运算模块,用于循环读取修改的差分包中内容,并将循环读取的内容与旧版本内容进行差分运算生成新版本内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市广和通无线通信软件有限公司,未经深圳市广和通无线通信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710158034.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:应用程序接口定位方法及设备
- 下一篇:一种烟尘过滤装置