一种应用的压缩编码方法及装置制造方法及图纸

技术编号:8536341 阅读:175 留言:0更新日期:2013-04-04 21:00
一种应用的压缩编码方法,所述方法包括:解析应用的安装包,获取所述应用的字节码和资源文件;分别对所述字节码和资源文件进行压缩编码,再组装成形成压缩文件;其中,利用LZ77算法对所述字节码进行压缩编码。对字节码和资源文件分别采用不同的压缩方式编码,就能达到最大的压缩比,应用安装包越小,在相同下载条件下,用户花费的时间越短,需要支付的无线网络数据流量费用越低。

【技术实现步骤摘要】

本专利技术涉及移动互联网领域,尤其涉及一种应用的压缩编码方法及装置
技术介绍
随着智能终端功能的日益强大,智能终端已逐渐融入到人们的日常生活之中,用户可以通过互联网自行下载安装各种应用,以此来扩充终端功能。然而,因为目前应用的安装包都很大,一般在几兆至几十兆之间不等,而移动通信网络的数据传输速率为几千字节至几十千字节每秒之间,按照这种速率计算,如果用户不使用WiFi的话,就要花费几分钟甚至十几分钟的时间才能下载一个普通应用。用户在花费大量等待时间的同时,还要支付由此产生的数据流量费用。此外,由于下载等待的时间较长,用户可能会手动终止下载过程,在这种情况下,用户不仅没有下载到其期望的应用,还要支付本次下载产生的数据流量费用,极大地影响了用户体验。
技术实现思路
本专利技术实施例应用的压缩编码方法及装置,提高了应用安装包的压缩比,使安装包尽量小就能降低用户下载安装包的时间。为此,本专利技术实施例提供如下技术方案一种应用的压缩编码方法,所述方法包括解析应用的安装包,获取所述应用的字节码和资源文件;分别对所述字节码和资源文件进行压缩编码,再组装成形成压缩文件;其中,利用LZ77算法对所述字节码进行压缩编码。优选的,对所述资源文件进行压缩编码,具体包括根据所述资源文件的文件头判断所述资源文件是否为特定资源文件;如果为特定资源文件,则通过与所述特定资源文件相匹配的特定压缩算法进行压缩编码;如果为非特定资源文件,则通过通用压缩算法进行压缩编码。优选的,所述特定资源文件为图片文件、视频文件或者音频文件,则压缩所述特定资源文件的方式包括利用差分脉冲调制编码、DEFLATE算法、LZff算法对所述图片文件进行压缩编码;利用离散余弦变换以及运动补偿预测技术对所述视频文件进行压缩编码;利用子带编码、MDCT、感知模型、低比特率量化、量化以及哈夫曼编码对所述音频文件进行压缩编码;所述非特定资源文件为XML文件或者文本文件,则所述通用压缩算法为LZMA算法。优选的,所述利用LZ77算法对所述字节码进行压缩编码,具体包括判断当前待编码字符是否与滑动窗内的已编码字符相匹配,所述当前待编码字符为所述滑动窗外的第一个未编码字符;如果相匹配,则继续查找最长的匹配字符串,并输出指针(off、len、c),其中,off表示所述匹配字符串相对滑动窗的窗口边界的偏移量,Ien表示所述匹配字符串的长度,c为与所述匹配字符串相邻的下一个字符;如果未匹配,则输出指针(off、len、d),其中d表示所述当前待编码字符;将所述滑动窗向后移动(len+Ι)个字符,继续执行所述判断当前待编码字符是否与滑动窗内的已编码字符相匹配的步骤,直至将所有未编码字符全部转化为指向所述滑动窗的指针。优选的,所述利用LZ77算法对所述字节码进行压缩编码,具体包括将所述字节码包含的字符依次映射成9bit的编码,所述9bit的编码包括间隔符“I”以及该字符的8bitASCII码; 在映射编码过程中,如果存在与已映射编码的字符相同的字符序列,则将所述字符序列编码成指向所述已映射编码的字符的指针和所述字符序列的长度。优选的,根据字节码的大小、字符序列出现的位置和字符序列的长度,设置所述字符序列编码成的指针和长度的ASCII码表示方式。优选的,如果存在至少两种所述指针和长度的ASCII码表示方式,则所述字符序列的编码还包括标识位,所述标识位用于表示采用的ASCII码表示方式。一种应用的压缩编码装置,所述装置包括解析单元,用于解析应用的安装包,获取所述应用的字节码和资源文件;第一压缩单元,用于对所述资源文件进行压缩编码;第二压缩单元,用于利用LZ77算法对所述字节码进行压缩编码;组装单元,用于组装所述第一压缩单元和第二压缩单元输出的文件为压缩文件。优选的,所述第一压缩单元具体包括识别单元,用于根据所述资源文件的文件头判断所述资源文件是否为特定资源文件;第一压缩子单元,用于在所述资源文件为特定资源文件时,通过与所述特定资源文件相匹配的特定压缩算法进行压缩编码;第二压缩子单元,用于在所述资源文件为非特定资源文件时,通过通用压缩算法进行压缩编码。优选的,所述第二压缩单元具体包括匹配单元,用于判断当前待编码字符是否与滑动窗内的已编码字符相匹配,所述当前待编码字符为所述滑动窗外的第一个未编码字符;指针输出单元,用于在所述匹配单元判断为是时,继续查找最长的匹配字符串,并输出指针(off、len、c),在所述匹配单元判断为否时,输出指针(off、len、d),其中,off■表示所述匹配字符串相对滑动窗的窗口边界的偏移量,Ien表示所述匹配字符串的长度,c为与所述匹配字符串相邻的下一个字符,d表示所述当前待编码字符;移动单元,用于将所述滑动窗向后移动(len+Ι)个字符,通知所述匹配单元继续匹配字符,直至将所有未编码字符全部转化为指向所述滑动窗的指针。优选的,所述第二压缩单元具体包括映射单元,用于将所述字节码包含的字符依次映射成9bit的编码,所述9bit的编码包括间隔符“I”以及该字符的8bit ASCII码;编码单元,用于在映射编码过程中,如果存在与已映射编码的字符相同的字符序列,则将所述字符序列编码成指向所述已映射编码的字符的指针和所述字符序列的长度。优选的,根据字节码的大小、字符序列出现的位置和字符序列的长度,设置所述字符序列编码成的指针和长度的ASCII码表示方式。优选的,如果存在至少两种所述指针和长度的ASCII码表示方式,则所述编码单元对所述字符序列的编码还包括标识位,所述标识位用于表示采用的ASCII码表示方式。本专利技术实施例的应用的压缩编码方法及装置,解析应用的安装包,提取其中较大的字节码和资源文件,对二者分别采用不同的压缩方式编码,以期达到最大的压缩比,应用安装包越小,在相同下载条件下,用户花费的时间越短,需要支付的无线网络数据流量费用越低。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本专利技术实施例应用的压缩编码方法的流程图;图2是本专利技术实施例中对资源文件进行压缩编码的流程图;图3是本专利技术实施例中对字节码进行压缩编码实施例1的流程图;图4是本专利技术实施例中对字节码进行压缩编码实施例2的流程图;图5是本专利技术实施例中对字节码进行压缩编码实施例2的压缩映射关系图;图6是本专利技术实施例应用的压缩编码装置的示意图;图7是本专利技术实施例中第一压缩单元的示意图;图8是本专利技术实施例中第二压缩单元实施例1的示意图;图9是本专利技术实施例中第二压缩单元实施例2的示意图。具体实施例方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和实施方式对本专利技术实施例作进一步的详细说明。参见图1,示出了本专利技术实施例应用的压缩编码方法的流程图,包括步骤101,解析应用的安装包,获取所述应用的字节码和资源文件。以Android应用的安装包为例,目前用户从应用商店下载的应用安装包,一般只是简单地将可执行代码和资源文件组合在一起形成zip格式的压缩包,压缩比低,下载时间长。安装包中的执行程序是基于dalvik虚拟机的字节码,D本文档来自技高网
...

【技术保护点】
一种应用的压缩编码方法,其特征在于,所述方法包括:解析应用的安装包,获取所述应用的字节码和资源文件;分别对所述字节码和资源文件进行压缩编码,再组装成形成压缩文件;其中,利用LZ77算法对所述字节码进行压缩编码。

【技术特征摘要】
1.一种应用的压缩编码方法,其特征在于,所述方法包括 解析应用的安装包,获取所述应用的字节码和资源文件; 分别对所述字节码和资源文件进行压缩编码,再组装成形成压缩文件;其中,利用LZ77算法对所述字节码进行压缩编码。2.根据权利要求1所述的方法,其特征在于,对所述资源文件进行压缩编码,具体包括 根据所述资源文件的文件头判断所述资源文件是否为特定资源文件; 如果为特定资源文件,则通过与所述特定资源文件相匹配的特定压缩算法进行压缩编码; 如果为非特定资源文件,则通过通用压缩算法进行压缩编码。3.根据权利要求2所述的方法,其特征在于, 所述特定资源文件为图片文件、视频文件或者音频文件,则压缩所述特定资源文件的方式包括 利用差分脉冲调制编码、DEFLATE算法、LZff算法对所述图片文件进行压缩编码; 利用离散余弦变换以及运动补偿预测技术对所述视频文件进行压缩编码; 利用子带编码、MDCT、感知模型、低比特率量化、量化以及哈夫曼编码对所述音频文件进行压缩编码; 所述非特定资源文件为XML文件或者文本文件,则所述通用压缩算法为LZMA算法。4.根据权利要求1所述的方法,其特征在于,所述利用LZ77算法对所述字节码进行压缩编码,具体包括 判断当前待编码字符是否与滑动窗内的已编码字符相匹配,所述当前待编码字符为所述滑动窗外的第一个未编码字符; 如果相匹配,则继续查找最长的匹配字符串,并输出指针(off、len, c),其中,off表示所述匹配字符串相对滑动窗的窗口边界的偏移量,Ien表示所述匹配字符串的长度,c为与所述匹配字符串相邻的下一个字符;如果未匹配,则输出指针(off、len, d),其中d表示所述当前待编码字符; 将所述滑动窗向后移动(len+1)个字符,继续执行所述判断当前待编码字符是否与滑动窗内的已编码字符相匹配的步骤,直至将所有未编码字符全部转化为指向所述滑动窗的指针。5.根据权利要求1所述的方法,其特征在于,所述利用LZ77算法对所述字节码进行压缩编码,具体包括 将所述字节码包含的字符依次映射成9bit的编码,所述9bit的编码包括间隔符“I”以及该字符的8bit ASCII码; 在映射编码过程中,如果存在与已映射编码的字符相同的字符序列,则将所述字符序列编码成指向所述已映射编码的字符的指针和所述字符序列的长度。6.根据权利要求5所述的方法,其特征在于, 根据字节码的大小、字符序列出现的位置和字符序列的长度,设置所述字符序列编码成的指针和长度的ASCII码表示方式。7.根据权利要求6所述的方...

【专利技术属性】
技术研发人员:骆文平曹洪伟葛兵
申请(专利权)人:云之朗科技有限公司北京恒信彩虹科技有限公司北京恒信彩虹信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1