CN106462430A - 应用升级包获取方法及装置 - Google Patents
应用升级包获取方法及装置 Download PDFInfo
- Publication number
- CN106462430A CN106462430A CN201680001806.XA CN201680001806A CN106462430A CN 106462430 A CN106462430 A CN 106462430A CN 201680001806 A CN201680001806 A CN 201680001806A CN 106462430 A CN106462430 A CN 106462430A
- Authority
- CN
- China
- Prior art keywords
- file
- type
- original
- installation kit
- differential
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用升级包获取方法及装置,属于网络技术领域。所述方法包括:解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;确定各个文件的文件类型;根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。本公开差分升级包数据量更小,可以进一步减小应用升级所需的流量消耗。
Description
技术领域
本公开涉及网络技术领域,尤其涉及一种应用升级包获取方法及装置。
背景技术
随着网络技术的发展,多种多样的应用如雨后春笋般涌现。为了满足用户越来越多样化或针对性的需求,应用提供商也会积极对应用的版本不断进行更迭,以便进一步完善应用的功能。
对于终端来说,一个终端上会安装多个应用,于是在将这多个应用升级至最新版本时,会导致较大的流量消耗。为了减小流量消耗,目前的应用升级方法一般采用增量升级方式,在该增量升级过程中一般采用下述方法获取应用升级包:对新旧应用安装包之间直接进行二进制差分,以得到差分升级包,后续终端可以基于该差分升级包进行升级,由于差分升级包的数据量小于整个应用的安装包的数据量,因此,可以实现减小流量消耗的目的。
发明内容
为克服相关技术中存在的问题,本公开提供一种应用升级包获取方法及装置。
根据本公开实施例的第一方面,提供一种应用升级包获取方法,包括:
解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
本公开实施例提供的方法,通过对安装包进行解压,从而可以对解压后的文件根据文件是否能够被进一步分解来进行区别化的差分处理,以得到应用的差分升级包,由于一些可进一步分解的文件占安装包的相当大比重,因此,对解压后的文件进行差分所得到的差分结果相对于不解压而直接进行二进制差分的差分结果,其差分升级包数据量更小,可以进一步减小应用升级所需的流量消耗。
在一种可能实现方式中,所述确定各个文件的文件类型包括:
对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
对于文件名称相同的文件,说明原版本和新版本中均包含了该文件,可能发生变化的是文件的具体内容,例如,文件目录下是否增减了文件等,因此,可以根据是否能够被进一步分解,来确定文件类型,以进行区别化的差分处理。
在一种可能实现方式中,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
对于能够进一步分解的文件,该文件的目录内可以包含很多文件,因此,可以在更小的粒度下进行差分,使得差分结果更加准确,也使得数据量更小。
在一种可能实现方式中,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
在一种可能实现方式中,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
根据本公开实施例的第二方面,提供一种应用升级包获取装置,包括:
解压模块,用于解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定模块,用于确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
差分模块,用于根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
压缩模块,用于将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
在一种可能实现方式中,所述确定模块用于对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
在一种可能实现方式中,所述差分模块用于对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
在一种可能实现方式中,所述差分模块用于对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
在一种可能实现方式中,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
根据本公开实施例的第三方面,提供一种应用升级包获取装置,包括:
处理器;
用于存储处理器可执行的指令的存储器;
其中,所述处理器被配置为:
解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的应用升级包获取方法的流程图。
图2A是根据一示例性实施例示出的应用升级包获取方法的流程图。
图2B是一个应用的第二安装包解压后所得到的至少一个目标文件的示意图。
图2C是一个差分文件中文件的示意图。
图3是根据一示例性实施例示出的一种应用升级包获取装置框图。
图4是根据一示例性实施例示出的一种应用升级包获取装置400的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的应用升级包获取方法的流程图,如图1所示,应用升级包获取方法用于服务器中,包括以下步骤。
在步骤101中,解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本。
在步骤102中,确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解。
在步骤103中,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件。
在步骤104中,将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
本公开实施例提供的方法,通过对安装包进行解压,从而可以对解压后的文件根据文件是否能够被进一步分解来进行区别化的差分处理,以得到应用的差分升级包,由于一些可进一步分解的文件占安装包的相当大比重,因此,对解压后的文件进行差分所得到的差分结果相对于不解压而直接进行二进制差分的差分结果,其差分升级包数据量更小,可以进一步减小应用升级所需的流量消耗。
在一种可能实现方式中,所述确定各个文件的文件类型包括:
对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
在一种可能实现方式中,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:
对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
在一种可能实现方式中,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:
对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
结合上述任一种可能实现方式,在一种可能实现方式中,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图2A是根据一示例性实施例示出的应用升级包获取方法的流程图,如图2A所示,应用升级包获取方法用于服务器中,包括以下步骤。
在步骤201中,解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本。
其中,应用的第一安装包和第二安装包均用于指代应用的全量安装包,也即是,第一安装包内和第二安装包内均包括有对应版本所需的所有安装文件。其中,第二安装包可以为该应用当前最新版本的安装包。
发明人认识到,对于任一种应用来说,其应用的安装包事实上均为一种压缩包,因此,可以通过解压来得到该安装包内的所有安装文件,因此,服务器可以通过解压后的安装文件,来进行升级包的获取过程。
在本公开实施例中,应用提供商在应用新版本开发后,可以将该新版本也即是应用的第二安装包上传或发布至服务器。因此,服务器在获取到应用的第二安装包后,可以根据该应用获取该应用的第一安装包,从而对第一安装包和第二安装包分别进行解压,以得到至少一个原文件和至少一个目标文件。其中,至少一个原文件和至少一个目标文件可以分别存储于独立的文件夹中,以便区别。
对于服务器来说,本公开实施例所提供的应用升级包获取过程可以是由接收到应用的第二安装包后自动触发,也可以是由服务器管理人员通过操作指令触发,服务器可以维护一个应用管理列表,该应用管理列表用于记录当前服务器上已有的应用的版本信息、存储地址等,当接收到任一个应用的第二安装包,则可以根据应用查询该应用管理列表,以获取应用的第一安装包的存储地址,进而从该存储地址获取到该应用的第一安装包,以执行步骤201的解压步骤,而对于通过操作指令触发的过程也可以与上述过程同理,当然,也可以由管理人员直接从服务器的其他位置或是其他接入设备上将该应用的第一安装包复制过来,本公开实施例对此不做具体限定。
当然,服务器在接收到应用的第二安装包后,可以首先对第二安装包进行安全监测,以避免恶意应用的上传,该安全监测可以包括采用杀毒引擎进行检测以及对敏感信息进行检测等过程,本公开实施例对此不做限定。
在步骤202中,确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解。
在该步骤202中所涉及的各个文件是指上述至少一个原文件和至少一个目标文件,对于应用的至少一个原文件和至少一个目标文件来说,由于文件的存在形式不同,有的文件是不可进一步分解文件,例如,classes.dex文件,是作为一个独立文件存在,则该文件不可被进一步分解,有的文件如用于放置资源文件的文件夹等可以被进一步分解,例如res文件夹是一个文件夹,该文件夹的目录内具有多个资源文件如图片等,则该文件属于可被进一步分解。
综上,则可以对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型,从而确定各个文件的文件类型。
发明人认识到,对于至少一个原文件和至少一个目标文件来说,由于目标文件是更新了的应用所包括的安装文件,因此,该至少一个目标文件和至少一个原文件如果对比来看,具有一定的关系,例如,至少一个目标文件中可以包括以下几类文件:(1)与至少一个原文件中某些原文件的文件名称相同的文件。这种文件,可能是新版本应用中并未对该文件进行更新,也可能是虽然对该文件进行了更新,但是并未进行如删除文件或增加文件等更新,而是在该文件的目录文件内进行了删除或增加等更新。(2)至少一个原文件中没有的文件。这种文件则是新版本应用中所增加的功能等所对应的文件。当然,上述所涉及的原文件和目标文件,均是指通过步骤201的解压得到的同一层级的文件,例如,在一次解压后,得到了文件A、文件B和文件夹C,文件夹C中还包括文件C1、C2和C3,则文件A、文件B和文件夹C属于同一层级的文件,而文件C1、C2和C3则属于下一层级的文件,该层级关系可以以此类推,在此不做赘述。
在步骤203中,对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
对于第一文件和第二文件来说,由于均为可进一步分解的文件,因此,第一文件目录内可以包括至少一个文件,而第二文件目录内也可以包括至少一个文件,此时,为了获知更新的应用对目录内哪个文件进行了更新,可以通过对比文件特征值来进行对比,从而获取目录内删除了哪个文件、增加了哪个文件,根据该删除以及增加,生成一个文件记录,用于记录第二文件相对于所述第一文件的目录内的文件增减。当然,如果该文件中还包括可进一步分解的文件,则可以再基于下一层文件采取与上述类似的方式来进行差分,本公开实施例对此不做具体限定。
需要说明的是,该第一类型的文件可以为文件夹类型的文件,例如,res文件夹和assets文件夹,其中,res文件夹是存放安卓(Android)应用程序中的资源文件夹,该资源可以包括各种图标、图片等。因此,可以通过对比res目录下的所有文件的特征值(例如,md5),得到哪些是新的图片,哪些图片在新版本中被删除了,从而生成第一差分文件,当然,该第一差分文件也可以是文件夹形式,本公开实施例对此不做限定。assets文件夹类似于res文件夹,也可以生成差分assets文件夹。
例如,参见图2B和图2C,图2B是一个应用的第二安装包解压后所得到的至少一个目标文件的示意图。其中,第一栏为解压后的目标文件,第二栏为目标文件中“mishopWebView_new”文件夹中包括的二级文件,而第三栏为二级文件中res文件夹所包括的三级文件,第四栏则为三级文件中“drawable-xxhdpi-v4”文件夹所包括的四级文件。在进行差分时,当确定“mishopWebView_new”文件夹是一个第一类型的文件时,则可以进一步确定该文件夹内的文件的类型,从图2B上所示可以看出,res文件夹以外的均为第二类型,则进一步确定该res文件夹内的文件的类型,从图2B上所示可以看出,res文件夹内均为第一类型的文件,则进一步确定该“drawable-xxhdpi-v4”内文件的类型,从图2B上所示可以看出,“drawable-xxhdpi-v4”内的文件均为第二类型,则可以对其进行文件特征值的一一对比,确定该第二文件的“drawable-xxhdpi-v4”文件夹相对于第一文件的“drawable-xxhdpi-v4”文件夹内,增加了pay_A.png,可以将该增加图片记录至文件记录,以便与其他增减一同生成整个文件夹的文件记录,再根据该文件记录可以生成第一差分文件,在所生成的第一差分文件中可以包括如图2C所示的“mishopWebView_patch”文件夹内的数据。当然,上述举例仅是一种实现方式的示例,本公开实施例对生成的文件记录以及根据文件记录生成的差分文件的具体文件形式可以不做限定。
在步骤204中,对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
对于第三文件和第四文件来说,由于均为无法进一步分解的文件,因此,可以直接采用对文件进行二进制差分的方式,得到文件之间的差别,当然,通过二进制差分,可能得到的结果是该两个文件之间没有改变,说明新版本并未对该部分进行修改,而如果通过二进制差分所得到的差分结果不为0,则说明新版本对该部分进行了一定修改,则可以基于差分结果生成第二差分文件。
需要说明的是,该第二类型的文件可以包括后缀有.dex的文件,例如,classes.dex文件,该第二类型的文件还可以是后缀为.rasc的文件,例如,resources.arsc文件。其中,classes.dex是安卓(Android)系统中可以在Dalvik虚拟机上直接运行的文件格式,无法再次分解,因此,把原文件和目标文件中的classes.dex文件作二进制对比差分,得到classes.patch的差分文件。而resources.arsc文件是用来描述具有ID值的资源配置信息,其内容相当于是一个资源索引表,也无法再次分解,因此可以采用与classes.dex文件一样的二进制差分处理,生成resources.patch的差分文件。
上述步骤203至步骤204为根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件。当然,对于上述(2)中所涉及的至少一个原文件中没有的文件,则可以通过文件名称的对比确定,服务器可以将这些文件名称存在于至少一个目标文件中,但不存在于至少一个原文件中的文件,获取为第三差分文件。
在步骤205中,将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
通过将上述步骤所得到的至少一个差分文件合并后进行压缩,以得到应用的差分升级包。此时,服务器可以得到一个较小的差分升级包。当然,如果服务器上存储有一个应用的多个版本,还可以针对每个版本以及这个最新版本,生成至少一个差分升级包,每个差分升级包对应于一个原版本和一个目标版本,每个差分升级包的具体内容会根据版本之间的数据变化而不同。
针对上述至少一个差分升级包,终端在需要进行版本升级时,可以在升级请求中携带终端已有的应用版本信息,由服务器根据接收到的应用版本信息以及最新版本,获取对应的差分升级包,并将改获取到的差分升级包发送至终端,使得终端能够在已有的应用版本的基础上,将已有应用的安装文件和该差分升级包合并,以实现应用的版本升级。当然,根据差分升级包内具体内容的不同,该合并可以是指在终端已有应用的安装文件中增加、减少某些数据,本公开实施例对此不做具体限定。
本公开实施例提供的方法,通过对安装包进行解压,从而可以对解压后的文件根据文件是否能够被进一步分解来进行区别化的差分处理,以得到应用的差分升级包,由于一些可进一步分解的文件占安装包的相当大比重,因此,对解压后的文件进行差分所得到的差分结果相对于不解压而直接进行二进制差分的差分结果,其差分升级包数据量更小,可以进一步减小应用升级所需的流量消耗。并且,通过上述解压后根据文件是否能够被进一步分解来进行区别化的差分处理,使得差分处理所得到的差分结果更加稳定,不容易出现数据错误。进一步地,这种差分升级包的获取方式,也更加适用于一些本身数据量较小的应用。
图3是根据一示例性实施例示出的一种应用升级包获取装置框图。参照图3,该装置包括解压模块301,确定模块302,差分模块303和压缩模块304。
解压模块301,用于解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定模块302,用于确定所述解压模块301解压得到的各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
差分模块303,用于根据所述确定模块302所确定的各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
压缩模块304,用于将所述差分模块303所得到的所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
在一种可能实现方式中,所述确定模块302用于对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
在一种可能实现方式中,所述差分模块303用于对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
在一种可能实现方式中,所述差分模块303用于对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
在一种可能实现方式中,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种应用升级包获取装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理部件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述应用升级包获取方法。
装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种应用升级包获取方法,所述方法包括:解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种应用升级包获取方法,其特征在于,所述方法包括:
解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
2.根据权利要求1所述的方法,其特征在于,所述确定各个文件的文件类型包括:
对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
3.根据权利要求2所述的方法,其特征在于,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:
对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;
根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
4.根据权利要求2所述的方法,其特征在于,根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件包括:
对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
6.一种应用升级包获取装置,其特征在于,所述装置包括:
解压模块,用于解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定模块,用于确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
差分模块,用于根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
压缩模块,用于将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
7.根据权利要求6所述的装置,其特征在于,所述确定模块用于对于所述至少一个原文件和至少一个目标文件中文件名称相同的文件,判断所述文件是否能够被进一步分解,如果是,则确定所述文件为第一类型,如果否,则确定所述文件为第二类型。
8.根据权利要求7所述的装置,其特征在于,所述差分模块用于对于文件名称相同的第一文件和第二文件,如果所述第一文件和所述第二文件为第一类型,则对比所述第一文件和所述第二文件的目录内的文件特征值,生成一个文件记录,所述文件记录用于记录所述第二文件相对于所述第一文件的目录内的文件增减;根据所述文件记录,生成第一差分文件;其中,所述第一文件为原文件,所述第二文件为目标文件。
9.根据权利要求7所述的装置,其特征在于,所述差分模块用于对于文件名称相同的第三文件和第四文件,如果所述第一文件和所述第二文件为第二类型,则对所述第三文件和所述第四文件进行二进制差分,生成第二差分文件;其中,所述第三文件为原文件,所述第四文件为目标文件。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述第一类型的文件包括后缀为.dex的文件、后缀为.arsc的文件,所述第二类型的文件包括文件夹文件。
11.一种应用升级包获取装置,其特征在于,包括:
处理器;
用于存储处理器可执行的指令的存储器;
其中,所述处理器被配置为:
解压应用的第一安装包和第二安装包,得到至少一个原文件和至少一个目标文件,所述第一安装包的版本低于所述第二安装包的版本;
确定各个文件的文件类型,所述文件类型用于指示文件是否能够被进一步分解;
根据所述各个文件的文件类型,对所述至少一个原文件和所述至少一个目标文件进行与所述文件类型相应的差分处理,得到至少一个差分文件;
将所述至少一个差分文件进行压缩,得到所述应用的差分升级包。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/097181 WO2018039875A1 (zh) | 2016-08-29 | 2016-08-29 | 应用升级包获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462430A true CN106462430A (zh) | 2017-02-22 |
CN106462430B CN106462430B (zh) | 2020-06-02 |
Family
ID=58215731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680001806.XA Active CN106462430B (zh) | 2016-08-29 | 2016-08-29 | 应用升级包获取方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106462430B (zh) |
WO (1) | WO2018039875A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648712A (zh) * | 2017-02-27 | 2017-05-10 | 百度在线网络技术(北京)有限公司 | 增量更新包的生成方法、装置和服务器 |
CN107168733A (zh) * | 2017-04-25 | 2017-09-15 | 北京五八信息技术有限公司 | 差分文件包的生成及应用程序的更新方法、装置和系统 |
CN107391145A (zh) * | 2017-07-27 | 2017-11-24 | 中兴通讯股份有限公司 | 升级包制作方法及装置、升级文件的方法及装置 |
CN107766062A (zh) * | 2017-12-08 | 2018-03-06 | 北京小米移动软件有限公司 | 用于安装软件的方法、系统和第一终端 |
CN110162330A (zh) * | 2019-07-08 | 2019-08-23 | 上海赫千电子科技有限公司 | 一种应用于汽车ecu升级文件的系统及方法 |
CN111556127A (zh) * | 2020-04-24 | 2020-08-18 | 广东乐心医疗电子股份有限公司 | 一种可穿戴设备升级方法及相关设备 |
WO2021114101A1 (zh) * | 2019-12-10 | 2021-06-17 | 深圳市欢太科技有限公司 | 文件的增量更新方法、装置、终端及计算机可读存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102471221B1 (ko) * | 2016-11-14 | 2022-11-28 | 삼성에스디에스 주식회사 | 애플리케이션 변환 장치 및 방법 |
CN112558994A (zh) * | 2020-12-23 | 2021-03-26 | 上海眼控科技股份有限公司 | 一种应用软件的升级方法、装置、设备和存储介质 |
CN112988691A (zh) * | 2021-03-31 | 2021-06-18 | 深圳市优必选科技股份有限公司 | 一种基于嵌入式系统的文件更新方法、装置及终端设备 |
CN116257277B (zh) * | 2023-05-12 | 2023-08-01 | 天津卓朗昆仑云软件技术有限公司 | 镜像文件的更新方法、装置及voi系统 |
CN116501363A (zh) * | 2023-06-29 | 2023-07-28 | 杭州美创科技股份有限公司 | 软件离线快速升级方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473099A (zh) * | 2013-09-13 | 2013-12-25 | 惠州Tcl移动通信有限公司 | 一种移动终端的软件升级方法和系统 |
CN103713928A (zh) * | 2013-12-31 | 2014-04-09 | 优视科技有限公司 | 增量文件生成方法、应用程序安装文件更新方法及装置 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN105573785A (zh) * | 2015-12-11 | 2016-05-11 | 青岛海信电器股份有限公司 | 一种差分包的制作方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095838B (zh) * | 2013-01-16 | 2016-03-30 | 百度时代网络技术(北京)有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN104714819B (zh) * | 2013-12-16 | 2019-11-15 | 中兴通讯股份有限公司 | 文件系统升级包制作方法、升级方法及装置、终端 |
-
2016
- 2016-08-29 CN CN201680001806.XA patent/CN106462430B/zh active Active
- 2016-08-29 WO PCT/CN2016/097181 patent/WO2018039875A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473099A (zh) * | 2013-09-13 | 2013-12-25 | 惠州Tcl移动通信有限公司 | 一种移动终端的软件升级方法和系统 |
CN103713928A (zh) * | 2013-12-31 | 2014-04-09 | 优视科技有限公司 | 增量文件生成方法、应用程序安装文件更新方法及装置 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN105573785A (zh) * | 2015-12-11 | 2016-05-11 | 青岛海信电器股份有限公司 | 一种差分包的制作方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648712A (zh) * | 2017-02-27 | 2017-05-10 | 百度在线网络技术(北京)有限公司 | 增量更新包的生成方法、装置和服务器 |
CN107168733A (zh) * | 2017-04-25 | 2017-09-15 | 北京五八信息技术有限公司 | 差分文件包的生成及应用程序的更新方法、装置和系统 |
CN107168733B (zh) * | 2017-04-25 | 2020-07-17 | 北京五八信息技术有限公司 | 差分文件包的生成及应用程序的更新方法、装置和系统 |
CN107391145A (zh) * | 2017-07-27 | 2017-11-24 | 中兴通讯股份有限公司 | 升级包制作方法及装置、升级文件的方法及装置 |
CN107766062A (zh) * | 2017-12-08 | 2018-03-06 | 北京小米移动软件有限公司 | 用于安装软件的方法、系统和第一终端 |
CN107766062B (zh) * | 2017-12-08 | 2021-02-09 | 北京小米移动软件有限公司 | 用于安装软件的方法、系统和第一终端 |
CN110162330A (zh) * | 2019-07-08 | 2019-08-23 | 上海赫千电子科技有限公司 | 一种应用于汽车ecu升级文件的系统及方法 |
WO2021114101A1 (zh) * | 2019-12-10 | 2021-06-17 | 深圳市欢太科技有限公司 | 文件的增量更新方法、装置、终端及计算机可读存储介质 |
CN111556127A (zh) * | 2020-04-24 | 2020-08-18 | 广东乐心医疗电子股份有限公司 | 一种可穿戴设备升级方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018039875A1 (zh) | 2018-03-08 |
CN106462430B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462430A (zh) | 应用升级包获取方法及装置 | |
US10534773B2 (en) | Intelligent query parameterization of database workloads | |
US8782635B2 (en) | Reconfiguration of computer system to allow application installation | |
RU2419854C2 (ru) | Основанное на шаблоне управление службами | |
US10609140B2 (en) | Dynamic resource management systems and methods | |
US8417764B2 (en) | Dynamic mashup creation from a set of resources and resource relationships | |
US20180121672A1 (en) | Restricting access to content | |
US8667578B2 (en) | Web management authorization and delegation framework | |
US10691658B2 (en) | Automatically optimizing resource usage on a target database management system to increase workload performance | |
US11768883B2 (en) | System and method for in-place record content management | |
CN111324606B (zh) | 数据分片的方法及装置 | |
KR102042230B1 (ko) | 로컬 데이터와 원격 데이터의 동기화 기법 | |
US11580294B2 (en) | Techniques for web framework detection | |
US10878089B2 (en) | Identifying malware based on content item identifiers | |
US20140245068A1 (en) | Using linked data to determine package quality | |
CN108563697B (zh) | 一种数据处理方法、装置和存储介质 | |
EP2704031A1 (en) | Improved schema mapping based on data views and database tables | |
CN114416667A (zh) | 快速分享网盘文件的方法、装置、网盘及存储介质 | |
US9971789B2 (en) | Selective disk volume cloning for virtual disk creation | |
EP3062245B1 (en) | Dynamic modular ontology | |
CN115344688B (zh) | 业务数据展示方法、装置、电子设备和计算机可读介质 | |
US10884704B2 (en) | Sorting a table in analytical databases | |
US9542457B1 (en) | Methods for displaying object history information | |
US10936550B2 (en) | Synchronizing different representations of content | |
US9467452B2 (en) | Transferring services in a networked environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |