CN104516764B - 压缩文件动态打包方法及系统 - Google Patents
压缩文件动态打包方法及系统 Download PDFInfo
- Publication number
- CN104516764B CN104516764B CN201510042244.0A CN201510042244A CN104516764B CN 104516764 B CN104516764 B CN 104516764B CN 201510042244 A CN201510042244 A CN 201510042244A CN 104516764 B CN104516764 B CN 104516764B
- Authority
- CN
- China
- Prior art keywords
- original document
- content
- field
- needing
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种压缩文件动态打包方法及系统。该压缩文件动态打包方法包括以下步骤:解析原始文件的目录源数据字段二进制流,确定压缩算法;获取需要修改的字段在原始文件中的位置;根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除;采用原始文件的压缩算法压缩需要添加的内容,根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加待添加内容;更新目录源数据字段以形成更新后的文件。本发明的压缩文件动态打包方法及系统能更快速高效地完成应用程序文件的升级更新,相较于传统方法更为节省网络资源,并且能够实现动态更新,灵活性也更高。
Description
技术领域
本发明涉及一种压缩文件动态打包方法及系统。
背景技术
现有技术在处理应用程序(例如针对apk文件、ipa文件)升级更新问题时,其基本步骤如下:
a)解压原apk文件或ipa文件,生成对应的解压缩文件;
b)修改解压后的文件内容,如开发新功能代码等;
c)打包生成新的apk文件或ipa文件;
d)重新下载新的apk文件或ipa文件。
上述方法步骤存在严重的耗时问题,解压后重新压缩打包工作量大,时间复杂度高,每个版本的应用程序的更新都需要重新下载也将占用大量时间。并且上述步骤还存在严重的资源损耗问题,不失一般性地以apk文件为例,在实际应用中,原apk文件通过上述现有技术更新生成新的apk文件后,新旧文件中的大部分内容是不变的。因此,删除原安装包,下载新安装包的过程中,大部分文件内容是不需要变更的,这样就造成了不必要的网络资源损耗。
另一方面,现在的应用程序的版本迭代更新速度较快,这就加剧了上述问题,因此亟需一种更为灵活动态的应用程序安装包更新方法,提高版本更新效率的同时,优化用户体验。
发明内容
本发明要解决的技术问题是为了克服现有技术中的应用程序文件升级更新方法存在严重的资源损耗、时间复杂度大、灵活性低的缺陷,提出一种压缩文件动态打包方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种压缩文件动态打包方法,其特点在于,包括以下步骤:
S1、解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法;
S2、获取需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容;
S3、根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段;
S4、采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容;
S5、根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容;
S6、更新目录源数据字段,以形成更新后的文件。
本发明的压缩文件动态打包方法,生成包过程无需压缩,而是通过修改文件二进制流完成,而其中需要添加的内容可以为任意内容。
较佳地,原始文件的文件格式为apk格式或ipa格式。
较佳地,原始文件为应用程序安装包。
较佳地,需要添加的内容为图片或者文字。
本发明还提供了一种压缩文件动态打包系统,其特点在于,包括:
一解析模块,用于解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法;
一修改字段定位模块,用于确定需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容;
一字段删除模块,用于根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段;
一添加模块,用于采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容,然后根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容;
一更新模块,用于更新目录源数据字段,以形成更新后的文件。
较佳地,原始文件的文件格式为apk格式或ipa格式。
较佳地,原始文件为应用程序安装包。
较佳地,需要添加的内容为图片或文字。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
本发明的压缩文件动态打包方法及系统能更快速高效地完成应用程序文件的升级更新,相较于传统方法更为节省网络资源,并且能够实现动态更新,灵活性也更高。
附图说明
图1为本发明实施例1的压缩文件动态打包方法的流程图。
图2为本发明实施例2的压缩文件动态打包系统的示意图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例的压缩文件动态打包方法包括以下步骤:
S1、解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法;
S2、获取需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容;
S3、根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段;
S4、采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容;
S5、根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容;
S6、更新目录源数据字段,以形成更新后的文件。
本实施例的压缩文件动态打包方法,生成包过程无需压缩,而是通过修改文件二进制流完成。其中,原始文件为文件格式为apk格式或ipa格式的应用程序安装包。
实施例2
参考图2所示,本实施例的压缩文件动态打包系统,包括一解析模块1、一修改字段定位模块2、一字段删除模块3、一添加模块4和一更新模块5。
其中,该解析模块1用于解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法。
该修改字段定位模块2用于确定需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容。
该字段删除模块3用于根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段。
该添加模块4用于采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容,然后根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容。
该更新模块5用于更新目录源数据字段,以形成更新后的文件。
其中,原始文件为文件格式为apk格式或ipa格式的应用程序安装包。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种压缩文件动态打包方法,其特征在于,包括以下步骤:
S1、解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法;
S2、获取需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容;
S3、根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段;
S4、采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容;
S5、根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容;
S6、更新目录源数据字段,以形成更新后的文件。
2.如权利要求1所述的压缩文件动态打包方法,其特征在于,原始文件的文件格式为apk格式或ipa格式。
3.如权利要求1所述的压缩文件动态打包方法,其特征在于,原始文件为应用程序安装包。
4.如权利要求1所述的压缩文件动态打包方法,其特征在于,需要添加的内容为图片或文字。
5.一种压缩文件动态打包系统,其特征在于,包括:
一解析模块,用于解析原始文件的目录源数据字段二进制流,根据解析结果确定原始文件的压缩算法;
一修改字段定位模块,用于确定需要修改的字段在原始文件中的位置,其中需要修改的字段包括需要删除的字段和需要添加的内容;
一字段删除模块,用于根据局部文件头的相对偏移量和目录源所记录的原始文件存储位置找到需要删除的字段对应的位置并删除需要删除的字段;
一添加模块,用于采用原始文件的压缩算法压缩需要添加的内容以获得待添加内容,然后根据局部文件头的相对偏移量和目录源找到该待添加内容的插入位置,并添加该待添加内容;
一更新模块,用于更新目录源数据字段,以形成更新后的文件。
6.如权利要求5所述的压缩文件动态打包系统,其特征在于,原始文件的文件格式为apk格式或ipa格式。
7.如权利要求5所述的压缩文件动态打包系统,其特征在于,原始文件为应用程序安装包。
8.如权利要求5-7中任意一项所述的压缩文件动态打包系统,其特征在于,需要添加的内容为图片或文字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510042244.0A CN104516764B (zh) | 2015-01-27 | 2015-01-27 | 压缩文件动态打包方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510042244.0A CN104516764B (zh) | 2015-01-27 | 2015-01-27 | 压缩文件动态打包方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104516764A CN104516764A (zh) | 2015-04-15 |
CN104516764B true CN104516764B (zh) | 2018-01-12 |
Family
ID=52792127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510042244.0A Active CN104516764B (zh) | 2015-01-27 | 2015-01-27 | 压缩文件动态打包方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104516764B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354525B (zh) * | 2016-08-11 | 2019-10-01 | 深圳市宜搜科技发展有限公司 | 应用软件安装包差分存储方法及系统 |
CN106919656A (zh) * | 2017-01-25 | 2017-07-04 | 百度在线网络技术(北京)有限公司 | 自定义压缩文件的生成方法和装置 |
CN110362338B (zh) * | 2019-07-14 | 2020-04-10 | 广州泳泳信息科技有限公司 | 一种在移动平台下的游戏资源打包和资源快速访问方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421647B1 (en) * | 1999-01-12 | 2002-07-16 | Texas Instruments Incorporated | Deterministic method and system for verifying synchronization words |
CN101814069A (zh) * | 2009-02-20 | 2010-08-25 | 苏州市蜗牛电子有限公司 | 电子文件打包方法 |
CN103365672B (zh) * | 2012-03-29 | 2016-04-06 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理应用程序的描述信息的方法和系统 |
CN104391728B (zh) * | 2014-12-12 | 2018-01-16 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
-
2015
- 2015-01-27 CN CN201510042244.0A patent/CN104516764B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104516764A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103713928B (zh) | 增量文件生成方法、应用程序安装文件更新方法及装置 | |
CN103051723B (zh) | 一种增量升级方法及服务器、终端 | |
CN103942058B (zh) | 一种嵌入式电子设备软件升级方法及系统 | |
KR101735719B1 (ko) | 운영 체제 자동 업데이트 절차 | |
CN107526743B (zh) | 用于压缩文件系统元数据的方法和设备 | |
US20120296983A1 (en) | Managing compression dictionaries | |
KR102319657B1 (ko) | 저장된 데이터 유닛들의 동작 관리 | |
CN105635835B (zh) | 一种微课制作存储播放的方法 | |
CN104516764B (zh) | 压缩文件动态打包方法及系统 | |
CN110058873A (zh) | 应用页面更新方法、装置、设备和存储介质 | |
CN103517141B (zh) | 基于ip机顶盒分段式数据升级方法 | |
CN105045631A (zh) | 一种升级客户端侧应用程序的方法和装置 | |
US9922041B2 (en) | Storing data files in a file system | |
CN104199951B (zh) | 网页处理方法及装置 | |
CN104753540A (zh) | 数据压缩方法、数据解压方法和装置 | |
CN105446975A (zh) | 一种文件打包方法及装置 | |
CN104184814A (zh) | 嵌入式固件差分升级的文件生成和合成的方法和系统 | |
CN110870287B (zh) | 对部分压缩固件的空中(ota)更新 | |
CN105573785A (zh) | 一种差分包的制作方法及装置 | |
CN103713926B (zh) | 一种预更新软件客户端的方法及系统 | |
CN109408682A (zh) | 一种正则表达式匹配的方法、系统及设备 | |
CN105808282A (zh) | 一种更新应用程序网页内容的方法和装置 | |
CN110020281A (zh) | 浏览器目标资源文件加载方法 | |
CN105740298A (zh) | 文件处理方法、装置及服务端设备 | |
CN111309424A (zh) | 一种页面还原方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160205 Address after: 200335 Shanghai city Changning District Admiralty Road No. 968 Building No. 16 10 floor Applicant after: SHANGHAI XIECHENG BUSINESS CO., LTD. Address before: 200335 Shanghai City, Changning District Fuquan Road No. 99, Ctrip network technology building Applicant before: Ctrip computer technology (Shanghai) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |