一种移动富媒体应用中大数据量压缩包的解压方法技术

技术编号:5252106 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种移动富媒体应用中大数据量压缩包的解压方法,从指定文件的入口信息的获取、指定文件的入口信息获取与解压压缩包流程分离、划分解压流程的操作粒度三个方面对现有的解压方法进行改进,适用于包含文件数量比较多和大文件的大数据量压缩包的解压。通过对比较耗时的指定文件的入口信息的获取进行合理的安排,将获取的指定文件的入口信息添加到缓存中,减小比较耗时的指定文件的入口信息获得步骤执行的次数,文件数量比较多的压缩包,可以显著提高解压效率。通过将较长的解压压缩包中的指定文件过程划分为若干较小的执行过程来处理,在单线程下,也使得UI事件在移动终端系统平台环境下,对含有大文件的压缩包进行解压,也不至于受到较长时间的阻塞,从而给移动终端富媒体应用程序的使用者带来良好用户体验。

【技术实现步骤摘要】

本专利技术属于数据压缩包解压
,更为具体地讲,涉及一种移动富媒体应 用中大数据量压缩包的解压方法。
技术介绍
随着智能手机的普及、3G及超3G时代的到来,各种应用的不断推出。在产业 链各方面的推动下,互联网已经从电脑走向手机及其他移动终端。移动互联网不再局限 于WAP上的图片、铃声、新闻和资讯等应用,博客、搜索、社区等早已延伸到移动互联 网业务,同时游戏、音乐、影视、动画、位置服务、商务等服务,大众也将随时、随地 体验到。可见,移动互联网的内容也将步入海量化,而移动富媒体应用正是移动互联网 中海量信息的一个最为典型的服务和展现形式,压缩和解压技术必然在移动富媒体应用 中得到广泛地应用。然而作为移动终端的智能手机等嵌入式设备,其处理能力极其有 限,并且这些移动终端系统平台种类繁多,不同的系统平台具有不同的特性,一套适应 不同移动终端系统平台的压缩和解压的方案,是当前快速发展的移动互联网所必需的。1、解压硬件软件的需求移动终端平台不仅硬件性能比较低,而且其嵌入式操作系统也具有多样化和差 异大的特点。众多移动终端系统平台其独特的特点,给大数据量压缩包的解压过程带来 的特殊要求,例如(I)Symbian操作系统虽然Symbian OS支持在进程内有多线程,但实际上并不鼓励使用多线程,应尽量避免使用多线程,而是使用一个“事件驱动的协作式多任务 处理模型”一“活动对象”来代替。原因之一就是,运行大量的线程可能会由于上 下文切换而使系统停顿下来。另外,线程之间的调度切换也需要系统的额外开销作为代 价。活动对象在单个进程中模拟多个线程,但实际上,却只在单线程下执行,是通过活 动调度器依次处理各个被激活的活动对象来模拟多个线程的。富媒体应用程序必定包含 图形用户界面,用户界面(Userlnterface,简称UI)事件也是由活动调度器来调度和处理 的,则必然要求每个活动对象中进行的操作必须能够快速的完成,否则会造成UI事件的 阻塞,影响用户体验。所以大数据量压缩包的解压过程要在Symbian平台上实现的话, 最好不使用新的线程来完成解压操作,以避免影响用户操作的响应。(2)brew平台brew平台支持多线程,但是它的线程不是抢占式的,当前正在 运行的线程必须主动放弃它的执行权,即当前线程要主动将自己挂起,然后其它线程才 会得以调度。那么,大数据量压缩包的解压过程要在brew平台上实现的话,同样会造成 UI事件的阻塞,影响用户体验。所以,能够适应移动终端平台多样化的特点的解压方案,应该是在不使用多线 程技术来完成解压操作的情况下也能够使UI事件得到很好的处理,不造成较长时间的UI 事件的阻塞,使移动终端上的富媒体应用程序对于用户操作的响应和UI图像显示能够在3用户可接受的时延范围内畅通的进行。2、解压效率需求对于一个数据量较大的压缩包,应用程序可能需要先检查压缩包中某个文件, 例如证书、配置文件等,然后根据检查结果再决定是否获取压缩包中的其它文件,或者 只需要压缩包中的一部分文件而并不需要将全部文件都解压出来。要支持部分文件解 压,那么必须要能够解压压缩包中的任意一个指定文件。要解压指定文件则必须要能够 遍历压缩包中所有文件的入口信息,同时匹配各项信息,以确定指定文件是否在压缩包 中,并获取指定文件的入口信息。获取文件的相关信息(如文件入口信息、文件名等)与 获取文件数据两个过程应该是可以分离的,即解压文件数据的操作不需要紧随获取文件 入口信息的操作之后,这样解压操作可以使用之前获取过并缓存下来的文件入口信息, 避免对同一文件重复进行获取文件入口信息的操作,开源项目LiteUnzip的解压方式就有 这种弊端。图1是现有技术中LiteUnzip的解压流程图。以ZIP/GZIP格式的压缩包的解压为例,对功能比较完善的开源项目LiteUnzip的解压流程进行说明,其解压步骤包括(1)、创建压缩句柄;(2)、判断操作类型可选操作类型包括获取压缩包中的指定文件的入口信息和解压压缩包中的指 定文件,是对压缩包中指定文件所进行的操作,在此步骤开始之前,必定是已经指定了 要对压缩包中的哪个文件进行操作;如果是获取压缩包中的指定文件的入口信息,则进 入步骤(3),如果是解压压缩包中的指定文件,则进入步骤(5),(3)、从压缩包中获取指定文件的入口信息;(4)、将指定文件的入口信息返回给函数调用者,进入步骤⑶;(5)、从压缩包中获取指定文件的入口信息;(6)、根据刚刚得到的文件入口信息,从压缩包中读取指定文件数据,并对读取 的指定文件数据进行解密、解压和crc校验,解压后的文件数据存储到指定的缓冲区内;(7)、返回解压后的指定文件数据将指定文件的入口信息返回给函数调用者;将指定文件数据缓冲区的指针,返 回给函数调用者,以返回解压指定文件得到的整个指定文件的数据;(8)、判断是否还有指定文件需处理,若是,返回步骤(2),否则销毁解压句柄 并退出对压缩包的处理流程。从以上流程,我们很容易就可以发现,获取指定文件的入口信息的操作在实际 的解压指定文件数据的过程中和仅获取指定文件入口信息的过程中是重复进行的,造成 效率上的损失。另外,实际的解压指定文件操作必须紧跟在获取文件入口信息的操作之 后,使得之前获取的指定文件入口信息不能够被本次解压操作所使用,也是造成了不必 要的效率损失。特别的,对大文件的指定文件进行解压时,LiteUnzip只能一次性将整个 文件解压出来,很容易造成UI事件的阻塞。4
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种移动富媒体应用中大数据量 压缩包的解压方法,在单线程下能使UI事件得到很好的处理,不会造成较长时间的UI事 件的阻塞,同时,提高解压效率。为实现上述目的,本专利技术移动富媒体应用中大数据量压缩包的解压方法,其特 征在于(1)、判断指定文件的入口信息是否已经存在于缓存中,如果已经存在,则进入 步骤(3),如果不存在,则进行下一步;(2),从压缩包中获取指定文件的入口信息,并将该入口信息添加到缓存中;(3)、从缓存中获取指定文件的入口信息;(4)、判断操作类型如果是获取压缩包中的指定文件的入口信息,则进入步骤 (3),如果是解压压缩包中的指定文件,则进行下一步;(5)、将从缓存中获取指定文件的入口信息设置为当前有效的文件入口信息;(6)、根据当前有效的文件入口信息,从压缩包中读取指定文件指定长度的一段 文件数据,并对这段数据进行解密、解压和crc校验;其中,指定长度是事先根据各个移动终端系统平台的处理能力而有针对性地设 置的一个缓冲区长度,处理能力强,则指定长度就越长,反之,就越短;(7)、存储解压得到的这部份文件数据到指定的接收解压后文件数据的缓冲区中;(8)、指定文件的所有数据是否都已解压完成?如果没有完成,则返回步骤 (6),否则,进行下一步;(9)、将文件数据缓冲区的指针,返回给函数调用者,以返回解压指定文件得到 的整个文件的数据,然后进行步骤(11);(10)、将指定文件的入口信息返回给函数调用者;(11)、判断是否还有指定文件需处理,即是否还需要提取压缩包中某一个指定 文件的入口信息或者对压缩包中某一个指定文件进行解压,若是,则返回步骤0),否 则,结束对压缩包的解压。本专利技术的专利技术本文档来自技高网
...

【技术保护点】
一种移动富媒体应用中大数据量压缩包的解压方法,其特征在于:(1)、判断指定文件的入口信息是否已经存在于缓存中,如果已经存在,则进入步骤(3),如果不存在,则进行下一步;(2)、从压缩包中获取指定文件的入口信息,并将该入口信息添加到缓存中;(3)、从缓存中获取指定文件的入口信息;(4)、判断操作类型:如果是获取压缩包中的指定文件的入口信息,则进入步骤(3),如果是解压压缩包中的指定文件,则进行下一步;(5)、将从缓存中获取指定文件的入口信息设置为当前有效的文件入口信息;(6)、根据当前有效的文件入口信息,从压缩包中读取指定文件指定长度的一段文件数据,并对这段数据进行解密、解压和crc校验;其中,指定长度是事先根据各个移动终端系统平台的处理能力而有针对性地设置的一个缓冲区长度,处理能力强,则指定长度就越长,反之,就越短;(7)、存储解压得到的这部份文件数据到指定的接收解压后文件数据的缓冲区中;(8)、指定文件的所有数据是否都已解压完成?如果没有完成,则返回步骤(6),否则,进行下一步;(9)、将文件数据缓冲区的指针,返回给函数调用者,以返回解压指定文件得到的整个文件的数据,然后进行步骤(11);(10)、将指定文件的入口信息返回给函数调用者;(11)、判断是否还有指定文件需处理,即是否还需要提取压缩包中某一个指定文件的入口信息或者对压缩包中某一个指定文件进行解压,若是,则返回步骤(2),否则,结束对压缩包的解压。...

【技术特征摘要】

【专利技术属性】
技术研发人员:丘志杰俸志刚罗建超
申请(专利权)人:电子科技大学
类型:发明
国别省市:90[中国|成都]

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

1