[发明专利]一种应用程序多次压缩解压方法有效
申请号: | 201210239317.1 | 申请日: | 2012-07-11 |
公开(公告)号: | CN102779060A | 公开(公告)日: | 2012-11-14 |
发明(设计)人: | 吴军平;杨帅伟 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F11/36 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 多次 压缩 解压 方法 | ||
技术领域
本发明涉及机盘上FLASH存储空间内应用程序存储、运行技术领域,具体说是一种应用程序多次压缩解压方法。尤指一种应用程序制作时多次压缩,启动时多次解压的方法。
背景技术
由于机盘上FLASH存储空间的大小有限,用于存放应用程序的空间往往也限定了大小。为了使较大的应用程序能够存储在较小的FLASH空间内,一般情况下制作应用程序时都会对应用程序进行压缩,当压缩后的应用程序启动时,CPU不能直接执行压缩后的应用程序,所以还需要对压缩后的应用程序进行解压处理。
随着软件功能的不断增加,应用程序大小也在不断加大,会出现应用程序过大而没有足够的FLASH空间存放的问题。如果增大FLASH大小就会增加硬件成本,而且CPU支持的FLASH空间大小也不是无限大的,并且已经生产使用的机盘再增加FLASH硬件也是不现实的,应用中就出现了由于应用程序过大而导致没有足够空间存储的问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种应用程序多次压缩解压方法,在制作应用程序时多次压缩,实现了大的应用程序经过多次压缩体积变小,最终实现小FLASH空间存储大应用程序的目的;当压缩后的应用程序启动时,压缩后的应用程序自动完成多次解压、拷贝和内存清理,最终得到能够被CPU执行的应用程序,并且放在正确的内存空间,为应用程序的执行做好准备;节省了硬件成本。
为达到以上目的,本发明采取的技术方案是:
一种应用程序多次压缩解压方法,其特征在于,包括以下几个步骤:
第一步,在制作新版本的应用程序时,对应用程序进行多次压缩,以达到减小新版本的应用程序体积的目的,且多次压缩时每一次均采用不同的压缩算法,所述多次指两次以上;
多次压缩的具体步骤如下:
1)首先编译生成没有压缩的应用程序;
2)用一种压缩算法对应用程序进行压缩,给压缩后的应用程序添加自解压头,该自解压头用于当压缩后的应用程序启动时能够自动完成对本次压缩的解压;
3)根据需要确定压缩的总次数,然后用另一种压缩算法对应用程序进行压缩,给压缩后的应用程序添加自解压头;
4)重复步骤3),直到压缩次数等于需要压缩的总次数,且在执行最后一次压缩时,选用BOOTROM能够解压的压缩算法对应用程序进行压缩;
5)对最终压缩好的应用程序添加用于检查和校验的文件头;
第二步,当压缩后的应用程序启动时,对经过多次压缩的应用程序进行多次解压、拷贝和内存清理,最终得到CPU能够执行的应用程序。
在上述技术方案的基础上,压缩后的应用程序启动的具体步骤如下:
1)板卡启动完成硬件初始化;
2)BOOTROM拷贝自己到内存中;
3)BOOTROM完成对最终压缩好的应用程序的第一次解压,并把解压后的应用程序放在正确的地址空间;
4)解压后的应用程序包括自解压头和压缩文件两部分,把自解压头和压缩文件分别拷贝到不同的内存空间,实现压缩文件和自解压头的分离;
5)自解压头和压缩文件拷贝完成后,清理原来程序占用的内存空间;
6)自解压头完成与其对应的压缩文件的解压,并再次把解压后的应用程序放在正确的地址空间;
7)根据应用程序压缩的总次数,重复步骤4)、5)和6),依次完成应用程序的多次解压,最终得到能够被CPU执行的没有压缩的应用程序,并把这个没有压缩的应用程序放在能够被CPU执行的内存空间;
8)清理使用过的内存,CPU开始执行没有压缩的应用程序,完成没有压缩的应用程序的启动。
在上述技术方案的基础上,每次解压完成后,判断解压结果是否正确,如果正确就进行下一步,如果不正确就重新解压再次判断,如果连续三次解压都不正确,则认为应用程序损坏。
本发明所述的应用程序多次压缩解压方法,提供了一套完整的制作时多次压缩,启动时多次解压及内存空间分配方案,在制作应用程序时多次压缩,实现了大的应用程序经过多次压缩体积变小,最终实现小FLASH空间存储大应用程序的目的;当压缩后的应用程序启动时,压缩后的应用程序自动完成多次解压、拷贝和内存清理,最终得到能够被CPU执行的应用程序,并且放在正确的内存空间,为应用程序的执行做好准备;该方法能够在不改变硬件FLASH存储空间的条件下存储更大的应用程序,这样既节省了硬件成本又能满足原有软件的兼容。
附图说明
本发明有如下附图:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210239317.1/2.html,转载请声明来源钻瓜专利网。