应用程序的更新方法、更新数据的压缩方法、装置及设备转让专利

申请号 : CN202210046342.1

文献号 : CN114095037B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 不公告发明人

申请人 : 浙江地芯引力科技有限公司

摘要 :

本申请提供一种应用程序的更新方法、更新数据的压缩方法、装置及设备,属于软件更新技术领域。该方法包括:接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;基于解压数据对应用程序进行更新。本申请可以基于压缩后的数据进行传输,从而提高了数据传输的效率和安全性。

权利要求 :

1.一种应用程序的更新方法,其特征在于,所述方法应用于工作设备,所述工作设备与服务端设备通信连接,所述工作设备中安装有应用程序,所述工作设备为充电线的工作芯片,所述应用程序为用于对充电协议认证的应用程序,所述方法包括:接收所述服务端设备发送的所述应用程序的更新包,所述更新包中包括:霍夫曼编码压缩后的更新数据;

基于目标编码映射表对所述更新数据进行霍夫曼编码解压,得到解压数据,所述目标编码映射表用于记录压缩数据与解压数据的映射关系;

基于所述解压数据对所述应用程序进行更新;

所述目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各所述压缩后序列的长度均为预设长度;

所述基于目标编码映射表对所述更新数据进行霍夫曼编码解压,得到解压数据,包括:依次从所述更新数据中读取具有所述预设长度的至少一个实际序列;

基于所述目标编码映射表,确定所述至少一个实际序列中的可解压序列以及不可解压序列;

基于所述目标编码映射表对各所述可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及所述不可解压序列得到所述解压数据;

在生成所述目标编码映射表的过程中,所述方法包括:

对每个数据域进行数据词典提取;

转换每个数据域按数据词典差异性大小依次排列;

对每个数据域的数据词典进行差异部分提取。

2.如权利要求1所述的方法,其特征在于,所述基于所述目标编码映射表,确定所述至少一个实际序列中的可解压序列以及不可解压序列,包括:若第一实际序列与所述目标编码映射表中的任一压缩后序列相同,则确定所述第一实际序列为可解压序列;

若所述第一实际序列与所述目标编码映射表中的各压缩后序列均不相同,则确定所述第一实际序列为不可解压序列;

其中,所述第一实际序列为所述至少一个实际序列中的任一实际序列。

3.如权利要求1所述的方法,其特征在于,所述基于所述目标编码映射表对各所述可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及所述不可解压序列得到所述解压数据,包括:按照所述目标编码映射表中压缩后序列与解压后序列的映射关系,确定各所述可解压序列对应的解压后序列;

将所述更新数据中的不可解压序列以及所述解压后序列进行拼接,得到所述解压数据。

4.如权利要求1‑3任一项所述的方法,其特征在于,所述更新包中还包括:所述更新数据对应的编码映射表的标识信息;

所述基于目标编码映射表对所述更新数据进行霍夫曼编码解压,得到解压数据之前,所述方法还包括:确定所述更新数据对应的编码映射表的标识信息与预先在所述工作设备上存储的编码映射表是否匹配;

若是,确定所述预先在所述工作设备上存储的编码映射表为目标编码映射表。

5.如权利要求4所述的方法,其特征在于,所述确定所述更新数据对应的编码映射表的标识信息与预先在所述工作设备上存储的编码映射表是否匹配之后,所述方法还包括:若否,向所述服务端设备发送编码映射表获取请求;

接收所述服务端设备发送的目标编码映射表。

6.一种更新数据的压缩方法,其特征在于,所述方法应用于服务端设备,所述服务端设备与工作设备通信连接,所述工作设备中安装有应用程序,所述工作设备为充电线的工作芯片,所述应用程序为用于对充电协议认证的应用程序,所述方法包括:基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据,所述目标编码映射表用于记录压缩数据与解压数据的映射关系;

将所述压缩后的更新数据发送给所述工作设备,以使所述工作设备对所述压缩后的更新数据进行解压后,对所述工作设备中安装的所述应用程序进行更新;

所述目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各所述压缩后序列的长度均为预设长度;所述解压数据为依次从所述更新数据中读取具有所述预设长度的至少一个实际序列;基于所述目标编码映射表,确定所述至少一个实际序列中的可解压序列以及不可解压序列;基于所述目标编码映射表对各所述可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及所述不可解压序列得到的数据;

在生成所述目标编码映射表的过程中,所述方法包括:

对每个数据域进行数据词典提取;

转换每个数据域按数据词典差异性大小依次排列;

对每个数据域的数据词典进行差异部分提取。

7.一种应用程序的更新装置,其特征在于,所述装置应用于工作设备,所述工作设备与服务端设备通信连接,所述工作设备中安装有应用程序,所述工作设备为充电线的工作芯片,所述应用程序为用于对充电协议认证的应用程序,所述装置包括:接收模块、解压模块以及更新模块;

所述接收模块,用于接收所述服务端设备发送的所述应用程序的更新包,所述更新包中包括:霍夫曼编码压缩后的更新数据;

所述解压模块,用于基于目标编码映射表对所述更新数据进行霍夫曼编码解压,得到解压数据,所述目标编码映射表用于记录压缩数据与解压数据的映射关系;

所述更新模块,用于基于所述解压数据对所述应用程序进行更新;

所述目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各所述压缩后序列的长度均为预设长度;所述解压模块,具体用于依次从所述更新数据中读取具有所述预设长度的至少一个实际序列;基于所述目标编码映射表,确定所述至少一个实际序列中的可解压序列以及不可解压序列;基于所述目标编码映射表对各所述可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及所述不可解压序列得到所述解压数据;

在生成所述目标编码映射表的过程中,具体包括:

对每个数据域进行数据词典提取;

转换每个数据域按数据词典差异性大小依次排列;

对每个数据域的数据词典进行差异部分提取。

8.一种更新数据的压缩装置,其特征在于,所述装置应用于服务端设备,所述服务端设备与工作设备通信连接,所述工作设备中安装有应用程序,所述工作设备为充电线的工作芯片,所述应用程序为用于对充电协议认证的应用程序,所述装置包括:压缩模块以及发送模块;

所述压缩模块,用于基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据,所述目标编码映射表用于记录压缩数据与解压数据的映射关系;

所述发送模块,用于将所述压缩后的更新数据发送给所述工作设备,以使所述工作设备对所述压缩后的更新数据进行解压后,对所述工作设备中安装的所述应用程序进行更新;

所述目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各所述压缩后序列的长度均为预设长度;所述解压数据为依次从所述更新数据中读取具有所述预设长度的至少一个实际序列;基于所述目标编码映射表,确定所述至少一个实际序列中的可解压序列以及不可解压序列;基于所述目标编码映射表对各所述可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及所述不可解压序列得到的数据;

在生成所述目标编码映射表的过程中,具体包括:

对每个数据域进行数据词典提取;

转换每个数据域按数据词典差异性大小依次排列;

对每个数据域的数据词典进行差异部分提取。

9.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至6任一项所述的方法的步骤。

说明书 :

应用程序的更新方法、更新数据的压缩方法、装置及设备

技术领域

[0001] 本申请涉及软件更新技术领域,具体而言,涉及一种应用程序的更新方法、更新数据的压缩方法、装置及设备。

背景技术

[0002] 远端电子设备(如:充电线、耳机等)在使用的过程中,为了满足实际工作需求,通常需要对这些电子设备中预设的应用程序进行更新处理。
[0003] 现有技术中,通常是由服务端设备基于加密数据的方式进行传输对应的数据从而实现对应用程序的更新。
[0004] 然而,对于加密数据而言,数据量通常较为庞大,这就导致了在传输的过程中会占有较大的传输空间,因此,在进行更新时需要消耗大量的时间,更新传输的效率较低。

发明内容

[0005] 本申请的目的在于提供一种应用程序的更新方法、更新数据的压缩方法、装置及设备,可以基于压缩后的数据进行传输,从而提高了数据传输的效率和安全性。
[0006] 本申请的实施例是这样实现的:
[0007] 本申请实施例的一方面,提供一种应用程序的更新方法,该方法应用于工作设备,工作设备与服务端设备通信连接,工作设备中安装有应用程序,该方法包括:
[0008] 接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;
[0009] 基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0010] 基于解压数据对应用程序进行更新。
[0011] 可选地,目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各压缩后序列的长度均为预设长度;
[0012] 基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,包括:
[0013] 依次从更新数据中读取具有预设长度的至少一个实际序列;
[0014] 基于目标编码映射表,确定至少一个实际序列中的可解压序列以及不可解压序列;
[0015] 基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据。
[0016] 可选地,基于目标编码映射表,确定至少一个实际序列中的可解压序列以及不可解压序列,包括:
[0017] 若第一实际序列与目标编码映射表中的任一压缩后序列相同,则确定第一实际序列为可解压序列;
[0018] 若第一实际序列与目标编码映射表中的各压缩后序列均不相同,则确定第一实际序列为不可解压序列;
[0019] 其中,第一实际序列为至少一个实际序列中的任一实际序列。
[0020] 可选地,基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据,包括:
[0021] 按照目标编码映射表中压缩后序列与解压后序列的映射关系,确定各可解压序列对应的解压后序列;
[0022] 将更新数据中的不可解压序列以及解压后序列进行拼接,得到解压数据。
[0023] 可选地,更新包中还包括:更新数据对应的编码映射表的标识信息;
[0024] 基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据之前,该方法还包括:
[0025] 确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配;
[0026] 若是,确定预先在工作设备上存储的编码映射表为目标编码映射表。
[0027] 可选地,确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配之后,该方法还包括:
[0028] 若否,向服务端设备发送编码映射表获取请求;
[0029] 接收服务端设备发送的目标编码映射表。
[0030] 本申请实施例的另一方面,提供一种更新数据的压缩方法,该方法应用于服务端设备,服务端设备与工作设备通信连接,该方法包括:
[0031] 基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0032] 将压缩后的更新数据发送给工作设备,以使工作设备对压缩后的更新数据进行解压后,对工作设备中安装的应用程序进行更新。
[0033] 本申请实施例的另一方面,提供一种应用程序的更新装置,该装置应用于工作设备,工作设备与服务端设备通信连接,工作设备中安装有应用程序,该装置包括:接收模块、解压模块以及更新模块;
[0034] 接收模块,用于接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;
[0035] 解压模块,用于基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0036] 更新模块,用于基于解压数据对应用程序进行更新。
[0037] 可选地,目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各压缩后序列的长度均为预设长度;解压模块,具体用于依次从更新数据中读取具有预设长度的至少一个实际序列;基于目标编码映射表,确定至少一个实际序列中的可解压序列以及不可解压序列;基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据。
[0038] 可选地,解压模块,具体用于若第一实际序列与目标编码映射表中的任一压缩后序列相同,则确定第一实际序列为可解压序列;若第一实际序列与目标编码映射表中的各压缩后序列均不相同,则确定第一实际序列为不可解压序列;其中,第一实际序列为至少一个实际序列中的任一实际序列。
[0039] 可选地,解压模块,具体用于按照目标编码映射表中压缩后序列与解压后序列的映射关系,确定各可解压序列对应的解压后序列;将更新数据中的不可解压序列以及解压后序列进行拼接,得到解压数据。
[0040] 可选地,更新包中还包括:更新数据对应的编码映射表的标识信息;更新模块,还用于确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配;若是,确定预先在工作设备上存储的编码映射表为目标编码映射表。
[0041] 可选地,更新模块,还用于若否,向服务端设备发送编码映射表获取请求;接收服务端设备发送的目标编码映射表。
[0042] 本申请实施例的另一方面,提供一种更新数据的压缩装置,该装置应用于服务端设备,服务端设备与工作设备通信连接,该装置包括:压缩模块以及发送模块;
[0043] 压缩模块,用于基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0044] 发送模块,用于将压缩后的更新数据发送给工作设备,以使工作设备对压缩后的更新数据进行解压后,对工作设备中安装的应用程序进行更新。
[0045] 可选地,发送模块还用于接收所述工作设备发送的编码映射表获取请求;根据所述编码映射表获取请求将所述目标编码映射表发送给所述工作设备。
[0046] 本申请实施例的另一方面,提供一种计算机设备,包括:存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述应用程序的更新方法和/或更新数据的压缩方法的步骤。
[0047] 本申请实施例的另一方面,提供一种计算机可读存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述应用程序的更新方法和/或更新数据的压缩方法的步骤。
[0048] 本申请实施例的有益效果包括:
[0049] 本申请实施例提供的一种应用程序的更新方法、更新数据的压缩方法、装置及设备中,可以接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;基于解压数据对应用程序进行更新。其中,通过目标编码映射表可以对更新数据进行解压,从而得到解压数据,从而可以提高数据传输过程中的效率;并且,采用霍夫曼编码解压的方式,风险相对较低,也可以提高数据传输的安全性,避免数据泄露。

附图说明

[0050] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0051] 图1为本申请实施例提供的实际工作场景的场景示意图;
[0052] 图2为本申请实施例提供的应用程序的更新方法的流程示意图一;
[0053] 图3为本申请实施例提供的应用程序的更新方法的流程示意图二;
[0054] 图4为本申请实施例提供的应用程序的更新方法的流程示意图三;
[0055] 图5为本申请实施例提供的应用程序的更新方法的流程示意图四;
[0056] 图6为本申请实施例提供的更新数据的压缩方法的流程示意图一;
[0057] 图7为本申请实施例提供的更新数据的压缩方法的流程示意图二;
[0058] 图8为本申请实施例提供的工作设备与服务端设备之间信息传输的流程示意图;
[0059] 图9为本申请实施例提供的应用程序的更新装置的结构示意图;
[0060] 图10为本申请实施例提供的更新数据的压缩装置的结构示意图;
[0061] 图11为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

[0062] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0063] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0064] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0065] 在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0066] 需要说明的是,对于远端的电子设备(如:充电线),在面向诸如消费电子、工业联网、移动等物联网市场需求的多变和设备功能缺陷以及新增功能原因,需要进行设备远程升级功能方案。
[0067] 现有技术中在实现设备升级的过程中,通常使用的方式是加密或者使用芯片等方式,这都会给仅仅升级功能性能提升数据传输的负担,而若不进行加密又会存在数据安全问题。
[0068] 当下设备远程升级时大多以明文的方式或者增加密算法和芯片来解决安全问题,但这样会增加设备成本。在大批量设备需要升级软件版本时,时间的成本又变得特别突出。为解决这种问题,使用弱化的压缩方法,配以少量的设备资源对产品升级功能得到提升来满足升级方面的性能需求。
[0069] 为了解决现有技术中存在的技术问题,本申请提出了一种应用程序的更新方法,下面来解释本申请实施例中的实际应用场景中所包括的各个设备以及各个设备之间的连接关系。
[0070] 图1为本申请实施例提供的实际工作场景的场景示意图,请参照图1,该场景中,可以包括:工作设备110、服务端设备120;其中,工作设备110与服务端设备120通信连接。
[0071] 其中,工作设备110具体可以是远端工作的电子设备,例如:充电线上的工作芯片,耳机中的工作芯片等,这些电子设备在使用的过程中,通常会因为外界因素导致其所安装的应用程序需要进行对应的更新,以充电线上的工作芯片为例,当充电线对应的用电设备的工作系统升级后,为了继续满足对用电设备的工作需求,通常需要对充电线中的工作芯片也对应进行升级以实现适配。
[0072] 服务端设备120具体可以是上述用电设备或者也可以是专门用于对工作设备110进行更新的电子设备,在此不做限制,例如可以是计算机、笔记本电脑、手机等。
[0073] 服务端设备120可以与工作设备110通过连接线有线连接,或者,也可以是无线连接,本申请实施例中以有线连接为例进行解释。
[0074] 工作设备110中配置的应用程序具体可以是实现其工作的程序,例如:若工作设备110位充电线中的工作芯片,则应用程序可以是用于对充电协议认证的应用程序。
[0075] 下面基于上述实际工作场景来解释本申请实施例提供的应用程序的更新方法的具体实施过程。
[0076] 图2为本申请实施例提供的应用程序的更新方法的流程示意图一,请参照图2,该方法包括:
[0077] S210:接收服务端设备发送的应用程序的更新包。
[0078] 其中,更新包中包括:霍夫曼编码压缩后的更新数据。
[0079] 可选地,该方法的执行主体可以是上述工作设备,该工作设备可以接收服务端设备发送的应用程序的更新包,其中,具体可以是基于有线通信连接的方式(例如:数据线)实现应用程序的更新包的接收。
[0080] 应用程序的更新包具体可以是用于对工作设备中的应用程序进行更新升级的数据包,该数据包中可以是基于霍夫曼编码压缩后的更新数据。
[0081] 可选地,基于霍夫曼编码压缩后的更新数据可以是预设长度的编码序列,具体可以是二进制序列或者其他类型的序列,在此不作限制。
[0082] 其中,霍夫曼编码可以是用于将一段数据中经常出现的较长的数据段用较短的数据段代替的一种编码方式,具体应用于本申请中时,具体可以是将较长的编码序列代替为较短的编码序列的一种编码方式,例如:将6位长度的二进制编码序列代替为3位长度的二进制编码序列。
[0083] 霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。
[0084] S220:基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据。
[0085] 其中,目标编码映射表用于记录压缩数据与解压数据的映射关系。
[0086] 可选地,目标编码映射表可以是预先在工作设备的存储器中存储的表,具体可以是一种数据词典,用于表征压缩数据与解压数据的映射关系。
[0087] 需要说明的是,工作设备可以基于目标编码映射表对更新数据进行霍夫曼编码解压,从而得到解压数据,该解压数据也即是进行压缩之前的原始更新数据。
[0088] 可选地,对于编码映射表在生成的过程中,可以按一定的规律去提取数据中出现频次较高的数据串从而形成一种数据词典;根据数据词典去编码原先的数据,得到编码后数据,以达到压缩的目的;根据数据词典将编码后数据进行还原,得到原先的数据。也即是说,编码映射表既可以应用于压缩的过程也可以应用于解压的过程。
[0089] S230:基于解压数据对应用程序进行更新。
[0090] 可选地,解压数据也即是原始更新数据,而原始更新数据可以是对工作设备中的应用程序进行扩展或者增加功能的方式以实现更新,或者。也可以是直接替换原始的应用程序,将原始更新数据作为更新后的应用程序,从而实现对工作设备中的应用程序的更新。
[0091] 本申请实施例提供的一种应用程序的更新方法中,可以接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;基于解压数据对应用程序进行更新。其中,通过目标编码映射表可以对更新数据进行解压,从而得到解压数据,从而可以提高数据传输过程中的效率;并且,采用霍夫曼编码解压的方式,风险相对较低,也可以提高数据传输的安全性,避免数据泄露。
[0092] 下面来解释本申请实施例中提供的应用程序的更新方法的另一具体实施过程。
[0093] 图3为本申请实施例提供的应用程序的更新方法的流程示意图二,请参照图3,目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各压缩后序列的长度均为预设长度;基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,包括:
[0094] S310:依次从更新数据中读取具有预设长度的至少一个实际序列。
[0095] 可选地,更新数据具体可以是一定长度的编码序列,可以按照上述预设长度进行读取,从而依次获取多个实际序列,例如:若更新数据是300位编码序列,预设长度为3位,也即是每3位作为一个实际序列,则可以包括100个实际序列。
[0096] S320:基于目标编码映射表,确定至少一个实际序列中的可解压序列以及不可解压序列。
[0097] 可选地,目标编码映射表中具体可以包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,其中,压缩后序列的位数可以与上述预设长度相等,压缩后序列对应的解压后序列的位数即为原始更新数据中对应的位数。
[0098] 示例地,继续以上述举例为例,若原始更新数据中将每6位作为一个子序列进行压缩(例如:101001),得到3位的压缩后序列(例如:100),则在目标编码映射表中可以记录二者之间的映射关系,也即是压缩后序列中的“100”表示解压后序列(也即是原始更新数据中对应的序列)中的“101001”。
[0099] 可选地,目标编码映射表中可以记录多个上述映射关系,基于上述S310的读取方式可以得到多个实际序列。
[0100] 依次确定实际序列之后,可以从目标编码映射表确定每个实际序列在目标编码映射表中是否有对应的解压后序列,若有,可以确定该实际序列为可解压序列,相应地,若没有,可以确定该实际序列为不可解压序列。
[0101] 具体过程可以是,若第一实际序列与目标编码映射表中的任一压缩后序列相同,则确定第一实际序列为可解压序列;若第一实际序列与目标编码映射表中的各压缩后序列均不相同,则确定第一实际序列为不可解压序列;其中,第一实际序列为至少一个实际序列中的任一实际序列。
[0102] 目标编码映射表中可以如下表1所示:
[0103] 表1
[0104]压缩后序列 解压后序列
100 101001
111 110110
… …
[0105] 如上表1所示,目标编码映射表即可以是多个压缩后序列与其对应的解压后序列之间的映射关系。
[0106] 需要说明的是,上表1中所示仅为一种示例,在实际的工作过程中目标编码映射表的映射关系可以根据实际需求进行对应的设置,并不会以此为限。
[0107] S330:基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据。
[0108] 可选地,确定可解压序列和不可解压序列之后,可以对可解压数据进行对应的解压,得到实际解压序列,继续以上述示例为例,若该可解压序列为“100”则,其对应的实际解压序列即为“101001”。
[0109] 依次对每个可解压数据进行解压后,可以得到所有的实际解压序列,进而可以根据实际解压序列以及不可解压序列得到解压数据。
[0110] 下面来解释本申请实施例中提供的应用程序的更新方法的又一具体实施过程。
[0111] 图4为本申请实施例提供的应用程序的更新方法的流程示意图三,请参照图4,基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据,包括:
[0112] S410:按照目标编码映射表中压缩后序列与解压后序列的映射关系,确定各可解压序列对应的解压后序列。
[0113] 可选地,可以依次按照目标编码映射表中的映射关系,确定每个可解压序列对应的实际解压序列,该实际解压序列也即是上述各可解压序列对应的解压后序列。
[0114] S420:将更新数据中的不可解压序列以及解压后序列进行拼接,得到解压数据。
[0115] 可选地,得到解压后序列之后,可以按照原始顺序对所有的不可解压序列以及解压后序列(实际解压序列)进行拼接,拼接得到的结果也即是解压数据。
[0116] 示例地,更新数据为“100010”,其中,“100”为可解压序列,“010”为不可解压序列,则可以先对“100”进行解压得到“101001”,再将“101001”与不可解压序列“010”按照原始顺序进行拼接,从而得到“101001010”,该序列即为解压数据。
[0117] 上述仅以两个序列之间的拼接为例,在实际拼接中,会涉及多个序列的拼接,拼接原理以及过程与上述过程相同,在此不加赘述。
[0118] 下面来解释本申请实施例中提供的应用程序的更新方法的还一具体实施过程。
[0119] 图5为本申请实施例提供的应用程序的更新方法的流程示意图四,请参照图5,更新包中还包括:更新数据对应的编码映射表的标识信息;基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据之前,该方法还包括:
[0120] S510:确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配。
[0121] 可选地,更新数据对应的编码映射表的标识信息具体可以是用于标识编码映射表中的预设位数以及对应的映射规则等。
[0122] 当工作设备接收到更新数据之后,可以确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配。
[0123] 需要说明的是,工作设备的存储器中可以包括四个存储区域,其中第一个存储区域可以用于存储应用程序,第二个存储区域可以用于存储更新数据,第三个存储区域和第四个存储区域可以用于进行存储编码映射表,其中,第三个存储区域可以存储的是工作设备中预选配置的编码映射表,也即是上述预先在工作设备上存储的编码映射表;第四存储区域可以存储的是实际进行上述解码工作的编码映射表。
[0124] 其中上述存储区域可以在flash存储器中进行存储,该存储器为可擦写存储器,可以进行存储的更新替换。
[0125] 可选地,可以基于标识信息确定预先在工作设备上存储的编码映射表是否匹配,具体可以是查看上述标识信息与预先在工作设备上存储的编码映射表的标识信息是否一致,若一致,可以确定匹配,相对的,若不一致,则确定不匹配。
[0126] 若是,S520:确定预先在工作设备上存储的编码映射表为目标编码映射表。
[0127] 可选地,若确定匹配后,则可以确定预先在工作设备上存储的编码映射表为目标编码映射表。也即是说上述第三个存储区域和第四个存储区域中存储的编码映射表相同。
[0128] 若否,S530:向服务端设备发送编码映射表获取请求。
[0129] S540:接收服务端设备发送的目标编码映射表。
[0130] 可选地,若不相同,则可以向服务端设备发送编码映射表获取请求,服务端设备可以将在对更新数据进行压缩时使用的编码映射表发送给工作设备,工作设备接收到该目标编码映射表后,可以将该编码映射表存储于第四个存储区域,以进行对应的解码工作。
[0131] 下面基于上述实际工作场景来解释本申请实施例提供更新数据的压缩方法的具体实施过程。
[0132] 图6为本申请实施例提供的更新数据的压缩方法的流程示意图一,请参照图6,该方法包括:
[0133] S610:基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据。
[0134] 其中,目标编码映射表用于记录压缩数据与解压数据的映射关系。
[0135] 在执行上述方法之前可以先获取工作设备的相关信息,进而根据工作设备的相关信息生成目标编码映射表。
[0136] 可选地,该方法的执行主体可以是上述服务端设备,服务端设备可以根据人为操作生成的指令或者是自动更新的预设指令等开始对原始更新数据进行压缩,具体压缩方式与前述解压方式相类似,可以根据预先配置的目标编码映射表将预设位数的编码序列压缩为位数更短的编码序列。
[0137] 需要说明的是,上述解压数据也即是原始更新数据,在此不作限制。
[0138] 该方法在执行的具体过程中,可以先从目标编码映射表中找到对应的可以进行压缩的序列,并根据编码映射表中的映射关系对可以进行压缩的序列进行压缩,从而得到压缩后的更新数据。
[0139] 需要说明的是,为了便于传输以及解压后的识别,可以将原始更新数据的位数设置为每个可压缩序列的位数或者可解压序列的倍数,例如:若是将6位压缩为3位,则可以将原始更新数据的位数设置为6或者3的倍数,若不足,则可以进行空位的补位,在后续工作设备进行解压的过程中,对于补位的数据可以直接删除。
[0140] 示例的,在生成目标编码映射表的过程中,可以对序列进行每100位序列的数据域划分;对每个数据域进行数据词典的提取;转换每个数据域按数据词典差异性大小依次排列(和需要升级设备保存的数据词典进行比较);对每个数据区的数据词典进行差异部分提取;按照上述步骤对序列中每150位或者200位等生成几种升级方案(也即是生成多个目标编码映射表,在使用时选择其中的一个进行压缩以及解压)。
[0141] S620:将压缩后的更新数据发送给工作设备,以使工作设备对压缩后的更新数据进行解压后,对工作设备中安装的应用程序进行更新。
[0142] 可选地,对原始更新数据进行压缩之后,可以将压缩后的更新数据发送给工作设备,以使工作设备执行前述S210‑S230的具体实施步骤。
[0143] 本申请实施例提供的一种更新数据的压缩方法中,可以基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据;将压缩后的更新数据发送给工作设备,以使工作设备对压缩后的更新数据进行解压后,对工作设备中安装的应用程序进行更新。其中,通过目标编码映射表可以对更新数据进行解压,从而得到解压数据,从而可以提高数据传输过程中的效率;并且,采用霍夫曼编码解压的方式,风险相对较低,也可以提高数据传输的安全性,避免数据泄露。
[0144] 下面来解释本申请实施例提供更新数据的压缩方法的另一具体实施过程。
[0145] 图7为本申请实施例提供的更新数据的压缩方法的流程示意图二,请参照图7,该方法还包括:
[0146] S710:接收所述工作设备发送的编码映射表获取请求。
[0147] S720:根据所述编码映射表获取请求将所述目标编码映射表发送给所述工作设备。
[0148] 可选地,上述S710‑S720的具体实施过程在前述S530‑S540已经进行了具体解释,在此不加赘述。
[0149] 下面来基于本申请中提供的工作设备以及服务端设备之间的连接关系来解释本申请实施例中提供的应用程序的更新方法以及更新数据的压缩方法的具体实施过程。
[0150] 图8为本申请实施例提供的工作设备与服务端设备之间信息传输的流程示意图,请参照图8,该方法包括:
[0151] S810:服务端设备基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据。
[0152] S820:服务端设备将压缩后的更新数据发送给工作设备。
[0153] S830:工作设备基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据。
[0154] S840:工作设备基于解压数据对应用程序进行更新。
[0155] 可选地,上述方法的执行过程在前述S210‑S230以及S610‑S620已经进行了解释,在此不加赘述。
[0156] 下述对用以执行的本申请所提供的应用程序的更新方法以及更新数据的压缩方法对应的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
[0157] 图9为本申请实施例提供的应用程序的更新装置的结构示意图,请参照图9,该装置应用于工作设备,工作设备与服务端设备通信连接,工作设备中安装有应用程序,该装置包括:接收模块210、解压模块220以及更新模块230;
[0158] 接收模块210,用于接收服务端设备发送的应用程序的更新包,更新包中包括:霍夫曼编码压缩后的更新数据;
[0159] 解压模块220,用于基于目标编码映射表对更新数据进行霍夫曼编码解压,得到解压数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0160] 更新模块230,用于基于解压数据对应用程序进行更新。
[0161] 可选地,目标编码映射表中包括:至少一个压缩后序列以及各压缩后序列对应的解压后序列,各压缩后序列的长度均为预设长度;解压模块220,具体用于依次从更新数据中读取具有预设长度的至少一个实际序列;基于目标编码映射表,确定至少一个实际序列中的可解压序列以及不可解压序列;基于目标编码映射表对各可解压序列进行解压,得到各可解压序列对应的实际解压序列,并根据各可解压序列对应的实际解压序列以及不可解压序列得到解压数据。
[0162] 可选地,解压模块220,具体用于若第一实际序列与目标编码映射表中的任一压缩后序列相同,则确定第一实际序列为可解压序列;若第一实际序列与目标编码映射表中的各压缩后序列均不相同,则确定第一实际序列为不可解压序列;其中,第一实际序列为至少一个实际序列中的任一实际序列。
[0163] 可选地,解压模块220,具体用于按照目标编码映射表中压缩后序列与解压后序列的映射关系,确定各可解压序列对应的解压后序列;将更新数据中的不可解压序列以及解压后序列进行拼接,得到解压数据。
[0164] 可选地,更新包中还包括:更新数据对应的编码映射表的标识信息;更新模块230,还用于确定更新数据对应的编码映射表的标识信息与预先在工作设备上存储的编码映射表是否匹配;若是,确定预先在工作设备上存储的编码映射表为目标编码映射表。
[0165] 可选地,更新模块230,还用于若否,向服务端设备发送编码映射表获取请求;接收服务端设备发送的目标编码映射表。
[0166] 图10为本申请实施例提供的更新数据的压缩装置的结构示意图,请参照图10,提供一种更新数据的压缩装置,该装置应用于服务端设备,服务端设备与工作设备通信连接,该装置包括:压缩模块310以及发送模块320;
[0167] 压缩模块310,用于基于目标编码映射表对应用程序的原始更新数据进行霍夫曼编码压缩,得到压缩后的更新数据,目标编码映射表用于记录压缩数据与解压数据的映射关系;
[0168] 发送模块320,用于将压缩后的更新数据发送给工作设备,以使工作设备对压缩后的更新数据进行解压后,对工作设备中安装的应用程序进行更新。
[0169] 可选地,发送模块320,还用于接收所述工作设备发送的编码映射表获取请求;根据所述编码映射表获取请求将所述目标编码映射表发送给所述工作设备。
[0170] 上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0171] 以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system‑on‑a‑chip,简称SOC)的形式实现。
[0172] 图11为本申请实施例提供的计算机设备的结构示意图,请参照图11,计算机设备,包括:存储器410、处理器420,存储器410中存储有可在处理器420上运行的计算机程序,处理器420执行计算机程序时,实现上述应用程序的更新方法和/或更新数据的压缩方法的步骤。
[0173] 可选地,上述计算机设备具体可以是工作设备或者服务端设备,当为工作设备时,用于执行前述应用程序的更新方法;当为服务端设备时,用于执行前述更新数据的压缩方法。
[0174] 本申请实施例的另一方面,还提供一种计算机可读存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述应用程序的更新方法和/或更新数据的压缩方法的步骤。
[0175] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0176] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0177] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0178] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read‑Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:
RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0179] 上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
[0180] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。