CN106708522A - 安装包批量分发方法及装置 - Google Patents
安装包批量分发方法及装置 Download PDFInfo
- Publication number
- CN106708522A CN106708522A CN201611209603.8A CN201611209603A CN106708522A CN 106708522 A CN106708522 A CN 106708522A CN 201611209603 A CN201611209603 A CN 201611209603A CN 106708522 A CN106708522 A CN 106708522A
- Authority
- CN
- China
- Prior art keywords
- file
- installation kit
- benchmark
- differential
- list
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种安装包批量分发方法及装置,涉及信息技术领域,解决了现有技术中安装包批量分发消耗时间较长的问题。本发明的方法包括:加载基准安装包和待修改列表,并解析基准安装包中的信息摘要文件;根据修改信息对所述基准安装包中的文件进行修改,并根据修改后的文件对信息摘要文件进行更新;将更新后的信息摘要文件和基准安装包中原有的信息摘要文件进行对比,并根据对比结果查找多个增量安装包相对于基准安装包的差异文件;根据差异文件更新预设差异列表,预设差异列表用于记录增量安装包相对于基准安装包的差异文件;将基准安装包和更新后的预设差异列表进行压缩,得到目标压缩文件,并将目标压缩文件进行分发。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种安装包批量分发方法及装置。
背景技术
随着信息技术的不断发展,各种应用程序层出不穷,作为各种应用程序的应用市场也是各种各样的,为了更好的推广应用程序,应用程序开发商通常会将应用程序的安装包发布到不同的应用市场中。为了方便后续统计不同应用市场的下载量、用户活跃度、使用习惯等,应用程序开发商通常需要针对不同应用市场生成不同的安装包,以区分用户是通过哪个应用市场下载的应用程序。由于针对不同应用市场的不同安装包只有少量文件不同,因此在每次应用程序发布时,都会批量生成相似安装包,将批量相似安装包分发给后续工程师进行处理,如传递给测试工程师进行安装包测试。
目前,在进行安装包批量分发时,通常将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将压缩文件进行分发。然而,需要经过,从硬盘读取批量相似安装包的过程,会消耗大量时间,从而造成安装包批量分发的时间较长。
发明内容
有鉴于此,本发明提供一种安装包批量分发方法及装置。主要目的在于能够减少安装包批量分发的时间。
依据本发明一个方面,提供了一种安装包批量分发方法,包括:
加载基准安装包和待修改列表,并解析所述基准安装包中的信息摘要文件,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息;
根据所述修改信息对所述基准安装包中的文件进行修改,并根据修改后的文件对所述信息摘要文件进行更新;
将所述更新后的信息摘要文件和所述基准安装包中原有的信息摘要文件进行对比,并根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件;
根据所述差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件;
将所述基准安装包和更新后的预设差异列表进行压缩,得到目标压缩文件,并将所述目标压缩文件进行分发。
依据本发明另一个方面,提供了一种安装包批量分发装置,包括:
加载单元,用于加载基准安装包和待修改列表,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息;
解析单元,用于解析所述加载单元加载的基准安装包中的信息摘要文件;
修改单元,用于根据所述加载单元加载的待修改列表中的修改信息对所述基准安装包中的文件进行修改;
第一更新单元,用于根据所述修改单元得到的修改后的文件对所述信息摘要文件进行更新;
对比单元,用于将所述第一更新单元更新后的信息摘要文件和所述加载单元加载的基准安装包中原有的信息摘要文件进行对比;
查找单元,用于根据对所述对比单元得到的比结果查找所述多个增量安装包相对于所述基准安装包的差异文件;
第二更新单元,用于根据所述查找单元查找的差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件;
压缩单元,用于将所述加载单元加载的基准安装包和所述第二更新单元更新后的预设差异列表进行压缩,得到目标压缩文件;
分发单元,用于将所述压缩单元得到目标压缩文件进行分发。
本发明提供了一种安装包批量分发方法及装置,与目前将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将批量相似安装包的压缩文件进行分发相比,本发明通过在生成批量安装包时,直接根据增量安装包相对于基准安装包的差异文件更新预设差异列表,再根据所述的更新后的预设差异列表以及基准安装包生成目标压缩文件并进行分发,避免了批量安装包的硬盘写入过程和硬盘的读取过程,从而减少了安装包批量分发的时间,进而提高了安装包批量分发的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种安装包批量分发方法流程图;
图2示出了本发明实施例提供的另一种安装包批量分发方法的流程图;
图3示出了本发明实施例提供的又一种安装包批量分发方法流程图;
图4示出了本发明实施例提供的再一种安装包批量分发方法的流程图;
图5示出了本发明实施例提供的一种安装包批量分发装置结构示意图;
图6示出了本发明实施例提供的另一种安装包批量分发装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种安装包批量分发方法,如图1所示,所述方法包括:
101、加载基准安装包和待修改列表,并解析所述基准安装包中的信息摘要文件。
其中,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息。所述的待修改列表可以包含所述待修改文件的标识信息,所述标识信息可以为所述文件的名称及其对应的修改描述等不同内容,在此不做具体的限定,可以根据实际情况选取。所述的基准安装包可以为针对不同应用平台或为实现不同需要可生成其他不同安装包的“母本”安装包。例如,以奇虎360安全卫士的安装包为例,一般网络上存在纯净版(即只包含360安全卫士相关安装文件的安装包)和包含绑定插件的完整版(除包含360安全卫士相关安装文件外,还包含如360手机助手或其他360安全组件的等安装文件的安装包)两种安装包。所述的360纯净版安装包可以看作是此类360安装包中的基准安装包。
需要说明的是,所述信息摘要文件可以理解为对安装包的简要介绍文件。因此,在不了解安装包中文件的情况下,可以通过信息摘要文件中的信息摘要得到安装包中所包含文件的信息。
102、根据所述修改信息对所述基准安装包中的文件进行修改,并根据修改后的文件对所述信息摘要文件进行更新。
根据步骤101中所述的待修改列表中包含的修改信息,对基准安装包中相应的文件进行修改,具体的修改方式可以根据待修改列表中对应文件的修改描述内容进行。并且,在对相应的文件进行了修改后,根据步骤101中对所述信息摘要文件的描述,当安装包的文件发生变化时,需要对所述安装包中对应的信息摘要文件根据所述安装包中修改后的文件进行更新。其中,更新的内容与所述基准安装包修改后的文件相对应。
103、将所述更新后的信息摘要文件和所述基准安装包中原有的信息摘要文件进行对比,并根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件。
在本步骤中,将所述更新后的信息摘要文件和所述基准安装包中原有的信息摘要文件进行对比。通过对比结果,能够比较出述基准安装包与增量安装包中文件的差异,并以此查找出对应的所述差异文件。
例如,若所述基准安装包为安卓安装包(Android Package,APK),APK是一种压缩格式安装包,常用于安卓系统操作平台中。一般情况下,可以通过将APK安装包直接传到Android模拟器或Android手机中,即可实现所述安装包安装。在本步骤中,解析出的信息摘要文件可以为MANIFEST.MF文件。所述MANIFEST.MF文件中可以存放经SHA-1信息摘要算法处理过的信息摘要SHA-1,不同文件对应的SHA-1值不同。具体对比的方式可以根据信息摘要中的不同的文件名称以及文件对应的SHA-1值进行对比:若基准APK信息摘要与增量APK信息摘要中文件名相同而文件SHA-1值不同,则说明此名称对应的文件在增量APK安装包中所述文件进行过修改;若基准APK信息摘要中没有,而增量APK信息摘要中含有的文件名称,则说明在基准APK中没有所述名称对应的文件;若基准APK信息摘要中含有,而增量APK信息摘要中没有的名称,则说明所述的名称对应的文件在增量APK安装包中不存在。
104、根据所述差异文件更新预设差异列表。
其中,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件。所述预设差异列表可以包括差异文件名称,差异文件名称对应的差异内容,差异文件的数量等相关数据。具体的差异列表的格式、内容以及项数可以根据实际需要进行具体的设定,在此不做具体的限定,但是所选的格式及项数应满足能包含所有的差异文件及其对应的差异方式。
通过前述步骤103中对信息摘要文件中的摘要内容进行对比后,可以得到信息摘要内容之间的差异部分,所述差异部分包括文件的增减、文件的改变等不同方式的差异内容。由于信息摘要文件是所述安装包中所有文件的记录文件,因此可以通过当前得到的信息摘要内容的差异,对所述差异部分对应的安装包文件进行查询,并将查询到的差异文件用于所述预设的差异列表的更新。
105、将所述基准安装包和更新后的预设差异列表进行压缩,得到目标压缩文件,并将所述目标压缩文件进行分发。
其中,文件的压缩方式有很多种,包括:ZIP、RAR、7Z、GZ及BZ2等多种文件压缩方式。所述文件的压缩过程所涉及的两项重要指标中包括:压缩率及压缩时间,即不同的压缩方式都有不同的压缩率及压缩时间。具体的压缩方式在此不做具体的限定,可以根据实际需要自行进行选取。
具体的,在本步骤中通过前述步骤104中对预设的差异列表进行更新,得到更新后的差异列表,并通过所述更新后的差异列表以及基准安装包进行压缩,即可得到目标压缩文件,并将所述目标压缩文件进行分发。
需要说明的是,在进行本步骤的操作后,还需要判断是否需要继续进行安装包的分发操作:若是,则在进行本步骤后可以重复步骤101至105所述的步骤;若否,则可以停止操作。具体的实施过程,可根据图2所示。
本发明实施例提供了一种安装包批量分发方法,与目前将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将批量相似安装包的压缩文件进行分发相比,本发明通过在生成批量安装包时,直接根据增量安装包相对于基准安装包的差异文件更新预设差异列表,再根据所述的更新后的预设差异列表以及基准安装包生成目标压缩文件并进行分发,避免了批量安装包的硬盘写入过程和硬盘的读取过程,从而减少了安装包批量分发的时间,进而提高了安装包批量分发的效率。
本发明实施例提供了另一种安装包批量分发方法,如图3所示,所述方法包括:
201、加载基准安装包和待修改列表,并解析所述基准安装包中的信息摘要文件。
其中,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息。所述信息摘要文件用于记录安装包中文件的信息摘要。所述待修改列表以及所述基准安装包的描述如步骤101中所述,在此不做赘述。
本步骤的具体过程可以为:通过预设的加载算法对待修改列表以及对应的基准安装包进行加载,然后在加载的基准安装包内进行查询,然后将基准安装包内查询到的信息摘要文件进行解析。需要说明的是,不同的安装包对应的信息摘要文件是不同的,例如,若所述基准安装包为APK安装包时,则在本步骤中的所述信息摘要文件为MANIFEST.MF文件。
202、根据所述修改信息对所述基准安装包中的文件进行修改,并根据修改后的文件对所述信息摘要文件进行更新。
对于本发明实施例,所述根据所述修改信息对所述基准安装包中的文件进行修改的步骤具体可以包括:根据所述修改信息从所述基准安装包中提取待修改文件的压缩包;对所述待修改文件的压缩包进行解压;根据所述修改信息对所述待修改文件进行修改。
其中,很多应用程序的基准安装包为压缩状态。例如,APK安装包就是一种压缩的安装包。因此,在进行文件修改前,需要根据所述待修改列表中的修改信息将基准文件包内的文件进行查询,找到待修改文件;然后选定出待修改的文件的压缩包并对该文件进行解压缩;最后根据修改信息中具体的描述对对应的解压缩文件进行对照修改。需要说明的是,由于文件的解压缩过程的时间长度与文件的数据量大小有关,因此,不同大小的文件在进行解压缩的过程中所需的时间是不同的。在本步骤中,不需要对基准安装包的全部文件进行解压缩,而是直接选择出待修改文件,然后仅将该文件的压缩包解压缩即可。
对于本发明实施例,所述根据修改后的文件对所述信息摘要文件进行更新的步骤具体可以包括:对所述修改后的文件进行信息摘要处理;根据所述信息摘要处理结果,对所述信息摘要文件中所述修改后的文件原有的信息摘要进行更新。所述对修改后文件进行信息摘要处理的步骤,具体可以为:通过安全散列算法(Secure Hash Algorithm,SHA)对修改后文件进行信息摘要处理。而SHA-1作为SHA的衍生版本,是一种可以从最大不超过2的64次幂字节数的数据中产生160位信息摘要的算法。所述SHA-1可以用于本步骤中对修改后得到的文件进行摘要处理。
例如,若所述安装包为APK安装包时,则根据本步骤中方法,则需要通过SHA-1摘要算法对APK安装包中修改后得到的文件进行信息摘要处理,并根据处理后得到的信息摘要更新到APK安装包对应的MANIFEST.MF信息摘要文件中。其中,所述经SHA-1摘要信息算法处理的信息摘要中都包含SHA-1值,同一文件如发生改变时,可根据所述信息摘要中对应文件的SHA-1值是否发生变化来进行判断。
203、将所述更新后的信息摘要文件和所述基准安装包中原有的信息摘要文件进行对比,并根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件。
其中,所述差异文件包括第一差异文件、新增文件或删除文件。所述第一差异文件可以为在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同的文件。
对于本发明实施例,所述根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件的步骤具体可以包括:若对比结果为第一文件在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同,则确定所述第一文件为所述第一差异文件;若对比结果为第二文件在所述增量安装包存在,但在所述基准安装包不存在,则确定所述第二文件为所述新增文件;若对比结果为第三文件在所述增量安装包不存在,但在所述基准安装包存在,则确定所述第三文件为所述删除文件。
例如,若差异文件为第一差异文件时,以APK安装包为例,则对应的信息摘要文件则为MANIFEST.MF文件,其中所述信息摘要文件中的信息摘要为经过SHA-1信息摘要算法处理过的数据。若基准APK安装包为安装包A,增量APK安装包为安装包B,则本步骤具体可以为:若当前判断出在某文件在安装包A及安装包B的MANIFEST.MF文件中均存在,但是对应的摘要信息SHA-1值不同时,可以判断当前差异文件为第一差异文件。
204、根据所述差异文件更新预设差异列表。
其中,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件。
对于本发实施例,若步骤203中根据对比结果查找到的所述差异文件为第一差异文件,则本步骤中所述根据所述差异文件更新预设差异列表的步骤具体可以包括:根据所述第一差异文件和差异比较算法,生成所述第一差异文件与所述基准安装包中对应文件的差异数据;将所述差异数据添加到预设差异列表中。
例如,若差异文件为第一差异文件时,以APK安装包为例,则对应的信息摘要文件为MANIFEST.MF文件,其中,所述的信息摘要文件中的信息摘要为经过SHA-1信息摘要算法处理过的数据。若基准APK安装包为安装包A,增量APK安装包为安装包B,则本步骤具体可以为:若当前判断出在某文件在安装包A及安装包B的MANIFEST.MF文件中均存在,但是对应的摘要信息SHA-1值不同时,可以判断当前差异文件为第一差异文件。则对应的通过差异比较算法,将安装包A及安装B中的MANIFEST.MF中所述差异文件通过比较算法进行计算,得出差异数据,并将得出的差异数据添加到预设的差异列表中。
其中,所述的差异数据内容中包含差异数据在基准安装包中文件的起始位置,结束位置以及差异数据的名称以及具体描述内容,所述差异数据的具体添加位置可以理解为在起始位置和结束位置之间。差异数据的具体格式可以如表1所示。其中,表中所述基准文件为基准安装包中对应文件,所述增量文件为增量安装包中对应的文件。
表1
名称 | 描述 |
起始位置 | 基准文件中差异的起始位置 |
结束位置 | 基准文件中差异的结束位置 |
差异数据 | 增量文件中一个差异部分的数据 |
对于本发实施例,若步骤203中根据对比结果查找到的所述差异文件为新增文件时,则本步骤中所述根据所述差异文件更新预设差异列表的步骤具体可以为将所述新增文件的标识信息和所述新增文件添加到所述预设差异列表。
例如,若差异文件为新增文件时,以APK安装包为例,则对应的信息摘要文件则为MANIFEST.MF文件,其中,所述信息摘要文件中的信息摘要为经过SHA-1信息摘要算法处理过的数据。若基准APK安装包为安装包A,增量APK安装包为安装包C,则本步骤具体可以为:若当前判断出在某文件的标识信息在安装包C的MANIFEST.MF文件中存在,但是在安装包A的MANIFEST.MF文件中不存在,可以判断当前差异文件为所述新增文件。则对应的对预设差异列表进行更新的具体操作可以为将安装包C中的所述文件的标识信息以及文件添加到预设的差异列表中。
对于本发实施例,若步骤203中根据对比结果查找到的所述差异文件为删除文件时,则本步骤中所述根据所述差异文件更新预设差异列表的步骤具体可以为将所述删除文件的标识信息添加到所述预设差异列表。
例如,若差异文件为删除文件时,以APK安装包为例,则对应的信息摘要文件则为MANIFEST.MF文件,其中,所述信息摘要文件中的信息摘要为经过SHA-1信息摘要算法处理过的数据。若基准APK安装包为安装包A,增量APK安装包为安装包D,则本步骤具体可以为:若当前判断出在某文件的标识信息在安装包D的MANIFEST.MF文件中不存在,但是在安装包A的MANIFEST.MF文件中存在,可以判断当前差异文件为所述删除文件。则对应的对预设差异列表进行更新的具体操作可以为将安装包D中的所述删除文件的标识信息添加到预设的差异列表中。
其中,所述的预设差异列表中,可以包括安装包名称、新增文件名称新增文件内容、新增文件个数、删除文件名称、删除文件个数、差异文件名称、差异数据内容、差异文件个数以及上述文件对应为具体描述。具体的,如表2所示。
表2
205、将所述基准安装包和更新后的预设差异列表进行压缩,得到目标压缩文件,并将所述目标压缩文件进行分发。
其中,文件在选择压缩的方式时,可供选择的压缩方式有多种,具体的压缩方式包括:ZIP、RAR、7Z、GZ及BZ2等多种文件压缩方式。由于压缩方式的选取取决于两项重要指标,即压缩率及压缩时间。其中,所述压缩率越小,说明压缩后文件的数据量越小,压缩率越大,说明压缩后文件的数据量越大。因此我们在选择压缩方式时,都会选择压缩时间短,压缩率小的压缩方式。具体的,可以根据需要自行选取,在此不做具体的限定。
在本步骤中,在通过对基准安装包中将所述差异列表一同进行压缩,得到目标压缩文件后,随后根据需要进行判断,是否继续需要进行其他的安装包压缩操作:若是,则重复前序步骤201至205所述的步骤;若否,则结束操作。具体的实施过程,可以根据图4所示。
需要说明的是,在本步骤中将所述目标压缩文件进行分发的步骤之前,还可以对所述目标压缩文件进行签名处理,具体的步骤可以包括:对所述更新后的信息摘要文件进行签名处理,得到签名文件;将所述签名文件添加到所述目标压缩文件中。
对于本发明实施例,所述的签名处理的过程具体可以包括:加载密钥文件,所述密钥文件用于保存签名所需的私钥;通过所述私钥和非对称加密算法对所述更新后的信息摘要文件进行加密签名,得到签名文件。
其中所述密钥文件为保存签名所述私钥的文件。所述私钥为数字签名领域中常见的一种加密方式,对应的还有公钥。公钥与私钥往往成对出现。前者私钥可以为信息的发送者或创建者用于加密所使用的。后者公钥可以为信息的接收者用于解密所使用。
在加载了私钥后,通过私钥和非对称加密算法对信息摘要文件进行加密签名处理,得到的文件即为签名文件。其中所述非对称加密算法可以选择RSA算法。该算法由由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法是一种常用的非对称加密算法,常用于加密和数字签名。所述非对称加密算法和私钥可以根据需要进行选取,在此不做具体的限定。
例如,若待进行签名安装包为APK安装包时,所述信息摘要文件则为MANIFEST.MF文件,则根据私钥和RSA非对称加密算法,可以得到CERT.RSA文件,此CERT.RSA文件则为签名文件。
本发明实施例提供了另一种安装包批量分发方法。与目前将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将批量相似安装包的压缩文件进行分发相比,本发明通过在生成批量安装包时,直接根据增量安装包相对于基准安装包的差异文件更新预设差异列表,再根据所述的更新后的预设差异列表以及基准安装包生成目标压缩文件并进行分发,避免了批量安装包的硬盘写入过程和硬盘的读取过程,从而减少了安装包批量分发的时间,进而提高了安装包批量分发的效率。并且进一步的通过对所述差异文件进行分析,确定所述差异文件具体是第一差异文件、新增文件或删除文件中哪一种情况,并根据差异文件具体情况对预设的差异列表进行与之对应的更新操作、如将差异数据添加到预设差异列表、将新增文件的标识信息和所述新增文件添加到所述预设差异列表或将删除文件的标识信息添加到所述预设差异列表等,进而确保了对预设差异列表进行更新操作的准确性,进而确保了安装包的准确性。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种安装包批量分发装置,如图5所示,该装置包括:加载单元31、解析单元32、修改单元33、第一更新单元34、对比单元35、查找单元36、第二更新单元37、压缩单元38、分发单元39、其中
加载单元31,可以用于加载基准安装包和待修改列表,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息。
解析单元32,可以用于解析所述加载单元31加载的基准安装包中的信息摘要文件。
修改单元33,可以用于根据所述加载单元31加载的待修改列表中的修改信息对所述基准安装包中的文件进行修改。
第一更新单元34,可以用于根据所述修改单元33得到的修改后的文件对所述信息摘要文件进行更新。
对比单元35,可以用于将所述第一更新单元34更新后的信息摘要文件和所述加载单元31加载的基准安装包中原有的信息摘要文件进行对比。
查找单元36,可以用于根据对所述对比单元35得到的对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件。
第二更新单元37,可以用于根据所述查找单元36查找的差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件。
压缩单元38,可以用于将所述加载单元31加载的基准安装包和所述第二更新单元37更新后的预设差异列表进行压缩,得到目标压缩文件。
分发单元39,可以用于将所述压缩单元38得到目标压缩文件进行分发。
本发明实施例提供了一种安装包批量分发装置,所述装置包括:加载单元、解析单元、修改单元、第一更新单元、对比单元、查找单元、第二更新单元、压缩单元、分发单元。与目前将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将批量相似安装包的压缩文件进行分发相比,本发明通过在生成批量安装包时,直接根据增量安装包相对于基准安装包的差异文件更新预设差异列表,再根据所述的更新后的预设差异列表以及基准安装包生成目标压缩文件并进行分发,避免了批量安装包的硬盘写入过程和硬盘的读取过程,从而减少了安装包批量分发的时间,进而提高了安装包批量分发的效率。
进一步的,作为对上述图3所示方法的实现,本发明实施例提供了另一种安装包批量分发装置,如图6所示,该装置包括:加载单元41、解析单元42、修改单元43、第一更新单元44、对比单元45、查找单元46、第二更新单元47、压缩单元48、分发单元49、其中,
加载单元41,可以用于加载基准安装包和待修改列表,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息。
解析单元42,可以用于解析所述加载单元41加载的基准安装包中的信息摘要文件。
修改单元43,可以用于根据所述加载单元41加载的待修改列表中的修改信息对所述基准安装包中的文件进行修改。
第一更新单元44,可以用于根据所述修改单元43得到的修改后的文件对所述信息摘要文件进行更新。
对比单元45,可以用于将所述第一更新单元44更新后的信息摘要文件和所述加载单元41加载的基准安装包中原有的信息摘要文件进行对比。
查找单元46,可以用于根据对所述对比单元45得到的对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件。
第二更新单元47,可以用于根据所述查找单元46查找的差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件。
压缩单元48,可以用于将所述加载单元41加载的基准安装包和所述第二更新单元47更新后的预设差异列表进行压缩,得到目标压缩文件。
分发单元49,可以用于将所述压缩单元48得到目标压缩文件进行分发。
进一步的,所述查找单元46包括:
第一确定模块4601,可以用于若对比结果为第一文件在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同,则确定所述第一文件为所述第一差异文件。
所述第二更新单元47包括:
第一生成模块4701,可以用于根据所述第一差异文件和差异比较算法,生成所述第一差异文件与所述基准安装包中对应文件的差异数据。
第一添加模块4702,可以用于将所述第一生成模块4701生成的差异数据添加到预设差异列表中。
进一步的,所述查找单元46包括:
第二确定模块4602,可以用于若对比结果为第二文件在所述增量安装包存在,但在所述基准安装包不存在,则确定所述第二文件为所述新增文件。
所述第二更新单元47包括:
第二添加模块4703,可以用于将所述新增文件的标识信息和所述新增文件添加到所述预设差异列表。
进一步的,所述查找单元46包括:
第三确定模块4603,可以用于若对比结果为第三文件在所述增量安装包不存在,但在所述基准安装包存在,则确定所述第三文件为所述删除文件。
所述第二更新单元47包括:
第三添加模块4704,可以用于将所述删除文件的标识信息添加到所述预设差异列表。
进一步的,所述修改单元43包括:
提取模块4301,可以用于根据所述修改信息从所述基准安装包中提取待修改文件的压缩包。
解压模块4302,可以用于对所述提取模块4301提取的待修改文件的压缩包进行解压。
修改模块4303,可以用于根据所述修改信息对所述解压模块4302得到待修改文件进行修改。
所述第一更新单元44包括:
处理模块4401,可以用于对所述修改后的文件进行信息摘要处理。
更新模块4402,可以用于根据所述处理模块4401得到的信息摘要处理结果,对所述信息摘要文件中所述修改后的文件原有的信息摘要进行更新。
本发明实施例提供了另一种安装包批量分发装置。所述装置包括:加载单元、解析单元、修改单元、第一更新单元、对比单元、查找单元、第二更新单元、压缩单元、分发单元。与目前将生成的批量相似安装包写入到硬盘然后从硬盘中读取批量相似安装包进行压缩,最后将批量相似安装包的压缩文件进行分发相比,本发明通过在生成批量安装包时,直接根据增量安装包相对于基准安装包的差异文件更新预设差异列表,再根据所述的更新后的预设差异列表以及基准安装包生成目标压缩文件并进行分发,避免了批量安装包的硬盘写入过程和硬盘的读取过程,从而减少了安装包批量分发的时间,进而提高了安装包批量分发的效率。并且进一步的通过对所述差异文件进行分析,确定所述差异文件具体是第一差异文件、新增文件或删除文件中哪一种情况,并根据差异文件具体情况对预设的差异列表进行与之对应的更新操作、如将差异数据添加到预设差异列表、将新增文件的标识信息和所述新增文件添加到所述预设差异列表或将删除文件的标识信息添加到所述预设差异列表等,进而确保了对预设差异列表进行更新操作的准确性,进而确保了安装包的准确性。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安装包批量分发装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种安装包批量分发方法,其特征在于,包括:
加载基准安装包和待修改列表,并解析所述基准安装包中的信息摘要文件,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息;
根据所述修改信息对所述基准安装包中的文件进行修改,并根据修改后的文件对所述信息摘要文件进行更新;
将所述更新后的信息摘要文件和所述基准安装包中原有的信息摘要文件进行对比,并根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件;
根据所述差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件;
将所述基准安装包和更新后的预设差异列表进行压缩,得到目标压缩文件,并将所述目标压缩文件进行分发。
2.根据权利要求1所述的方法,其特征在于,所述差异文件包括第一差异文件、新增文件或删除文件,所述第一差异文件为在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同的文件。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述差异文件为第一差异文件,所述根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件包括:
若对比结果为第一文件在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同,则确定所述第一文件为所述第一差异文件;
所述根据所述差异文件更新预设差异列表包括:
根据所述第一差异文件和差异比较算法,生成所述第一差异文件与所述基准安装包中对应文件的差异数据;
将所述差异数据添加到预设差异列表中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述差异文件为新增文件,所述根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件包括:
若对比结果为第二文件在所述增量安装包存在,但在所述基准安装包不存在,则确定所述第二文件为所述新增文件;
所述根据所述差异文件更新预设差异列表包括:
将所述新增文件的标识信息和所述新增文件添加到所述预设差异列表。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述差异文件为删除文件,所述根据对比结果查找所述多个增量安装包相对于所述基准安装包的差异文件包括:
若对比结果为第三文件在所述增量安装包不存在,但在所述基准安装包存在,则确定所述第三文件为所述删除文件;
所述根据所述差异文件更新预设差异列表包括:
将所述删除文件的标识信息添加到所述预设差异列表。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述修改信息对所述基准安装包中的文件进行修改包括:
根据所述修改信息从所述基准安装包中提取待修改文件的压缩包;
对所述待修改文件的压缩包进行解压;
根据所述修改信息对所述待修改文件进行修改;
所述根据修改后的文件对所述信息摘要文件进行更新包括:
对所述修改后的文件进行信息摘要处理;
根据所述信息摘要处理结果,对所述信息摘要文件中所述修改后的文件原有的信息摘要进行更新。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述信息摘要文件用于记录所述基准安装包中文件的信息摘要。
8.一种安装包批量分发装置,其特征在于,包括:
加载单元,用于加载基准安装包和待修改列表,所述待修改列表用于记录生成多个增量安装包需对所述基准安装包进行修改的修改信息;
解析单元,用于解析所述加载单元加载的基准安装包中的信息摘要文件;
修改单元,用于根据所述加载单元加载的待修改列表中的修改信息对所述基准安装包中的文件进行修改;
第一更新单元,用于根据所述修改单元得到的修改后的文件对所述信息摘要文件进行更新;
对比单元,用于将所述第一更新单元更新后的信息摘要文件和所述加载单元加载的基准安装包中原有的信息摘要文件进行对比;
查找单元,用于根据对所述对比单元得到的比结果查找所述多个增量安装包相对于所述基准安装包的差异文件;
第二更新单元,用于根据所述查找单元查找的差异文件更新预设差异列表,所述预设差异列表用于记录增量安装包相对于所述基准安装包的差异文件;
压缩单元,用于将所述加载单元加载的基准安装包和所述第二更新单元更新后的预设差异列表进行压缩,得到目标压缩文件;
分发单元,用于将所述压缩单元得到目标压缩文件进行分发。
9.根据权利要求8所述的装置,其特征在于,所述差异文件包括第一差异文件、新增文件或删除文件,所述第一差异文件为在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同的文件。
10.根据权利要求8-9中任一项所述的装置,其特征在于,所述差异文件为第一差异文件,所述查找单元包括:
第一确定模块,用于若对比结果为第一文件在所述增量安装包中的标识信息与在所述基准安装包中的标识信息相同但信息摘要不同,则确定所述第一文件为所述第一差异文件;
所述第二更新单元包括:
第一生成模块,用于根据所述第一差异文件和差异比较算法,生成所述第一差异文件与所述基准安装包中对应文件的差异数据;
第一添加模块,用于将所述第一生成模块生成的差异数据添加到预设差异列表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209603.8A CN106708522A (zh) | 2016-12-23 | 2016-12-23 | 安装包批量分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209603.8A CN106708522A (zh) | 2016-12-23 | 2016-12-23 | 安装包批量分发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106708522A true CN106708522A (zh) | 2017-05-24 |
Family
ID=58895723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611209603.8A Pending CN106708522A (zh) | 2016-12-23 | 2016-12-23 | 安装包批量分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708522A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479939A (zh) * | 2017-09-29 | 2017-12-15 | 厦门天锐科技股份有限公司 | 一种apk安装包重复打包的实现方法 |
CN108933681A (zh) * | 2017-05-22 | 2018-12-04 | 贵州白山云科技有限公司 | 一种云计算系统配置更新方法、控制中心及云计算节点 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577271A (zh) * | 2003-07-21 | 2005-02-09 | 微软公司 | 数据的包内增量压缩的系统和方法 |
CN1866821A (zh) * | 2006-06-05 | 2006-11-22 | 中国人民解放军国防科学技术大学 | 基于相似数据集的网络监测数据压缩存储和联合检测方法 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN106210742A (zh) * | 2016-07-15 | 2016-12-07 | 东北大学 | 基于共性特征的批量图像压缩传输与还原的系统及方法 |
-
2016
- 2016-12-23 CN CN201611209603.8A patent/CN106708522A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577271A (zh) * | 2003-07-21 | 2005-02-09 | 微软公司 | 数据的包内增量压缩的系统和方法 |
CN1866821A (zh) * | 2006-06-05 | 2006-11-22 | 中国人民解放军国防科学技术大学 | 基于相似数据集的网络监测数据压缩存储和联合检测方法 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN106210742A (zh) * | 2016-07-15 | 2016-12-07 | 东北大学 | 基于共性特征的批量图像压缩传输与还原的系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933681A (zh) * | 2017-05-22 | 2018-12-04 | 贵州白山云科技有限公司 | 一种云计算系统配置更新方法、控制中心及云计算节点 |
CN108933681B (zh) * | 2017-05-22 | 2021-12-14 | 贵州白山云科技股份有限公司 | 一种云计算系统配置更新方法、控制中心及云计算节点 |
CN107479939A (zh) * | 2017-09-29 | 2017-12-15 | 厦门天锐科技股份有限公司 | 一种apk安装包重复打包的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010803B2 (en) | Methods and apparatus for automated export compliance | |
US20160202972A1 (en) | System and method for checking open source usage | |
CN104217140B (zh) | 一种应用程序的加固方法和装置 | |
CN106681720A (zh) | 安装包压缩、解压方法及装置 | |
TW201729089A (zh) | 用於可信執行環境的可信應用產生及安裝方法 | |
CN106843909A (zh) | 支持渠道定制的渠道打包方法及装置 | |
CN108829396B (zh) | 脚本编译的方法、脚本执行的方法、相关装置及系统 | |
CN108595187A (zh) | 安卓安装包集成软件开发工具包的法、装置及存储介质 | |
CN111443912A (zh) | 基于组件的页面渲染方法、装置、计算机设备和存储介质 | |
JP4575416B2 (ja) | テストデータ生成システム、テストデータ生成方法及びテストデータ生成プログラム | |
US20180203677A1 (en) | Method and System for Modifying Machine Instructions within Compiled Software | |
CN111694613A (zh) | 应用程序模块间的解耦方法、电子装置及存储介质 | |
US20140115720A1 (en) | License verification method and apparatus | |
CN108279941A (zh) | 一种应用程序的压缩方法和装置 | |
CN106708522A (zh) | 安装包批量分发方法及装置 | |
CN112947981A (zh) | 应用程序资源更新方法、装置、终端设备及服务器 | |
CN105049514A (zh) | 一种文件下载方法和装置 | |
CN111181805A (zh) | 一种基于测试用例的微服务测试挡板生成方法及系统 | |
WO2021151347A1 (zh) | 基于iOS应用的加固方法、装置、设备及存储介质 | |
CN112214256B (zh) | 机器学习的运行控制方法、装置、电子设备及存储介质 | |
US20240095218A1 (en) | Customizable deliminated text compression framework | |
CN106843843A (zh) | 安装包批量生成方法及装置 | |
CN113434122A (zh) | 多角色页面创建方法、装置、服务器及可读存储介质 | |
US10248789B2 (en) | File clustering using filters working over file attributes | |
Zytnicki et al. | srnaMapper: an optimal mapping tool for sRNA-Seq reads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170524 |