首页> 中国专利> 压缩版应用程序生成、执行方法与装置及应用方法与系统

压缩版应用程序生成、执行方法与装置及应用方法与系统

摘要

本发明公开了一种压缩版应用程序的生成方法,为解决应用程序的扩展与有限存储空间之间存在的矛盾而提出,该方法包括:获取待加载应用程序并无损压缩;将压缩后的应用程序作为源数据而生成压缩版应用程序,并插入有待加载应用程序的解压函数和搬移及加载函数。本发明还同时公开了一种实现前述方法的装置、生成的压缩版应用程序的执行方法与装置以及应用方法与系统。本发明突破了存储区较小的系统的升级限制,并可实现远程的自动升级。

著录项

  • 公开/公告号CN101135978A

    专利类型发明专利

  • 公开/公告日2008-03-05

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200710108444.7

  • 发明设计人 傅仁武;

    申请日2007-06-14

  • 分类号G06F9/445(20060101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人程殿军

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部

  • 入库时间 2023-12-17 19:54:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-01-19

    授权

    授权

  • 2008-04-30

    实质审查的生效

    实质审查的生效

  • 2008-03-05

    公开

    公开

说明书

技术领域

本发明涉及压缩版应用程序的生成、执行及应用技术,尤其涉及3G系统单板嵌入式系统中压缩版应用程序的生成方法与装置、压缩版应用程序的执行方法与装置以及压缩版应用程序的应用方法与系统。

背景技术

随着应用程序的日益发展,其功能日趋完善,以前很多硬件实现的功能,现在通过应用程序亦能实现。应用程序实现的功能有着硬件实现的功能无可比拟的优势,例如升级方便、实现简单且成本低等。随着应用程序功能不断壮大,其应用范围也更为广泛,人们对应用程序的需求也越来越多。但是,应用程序高速发展的同时也带来了一些问题,应用程序功能的完善必然会占用更多的存储空间,而要使系统实现更多的功能就必须满足应用程序对存储空间的要求。对于这一问题,目前的解决方案有两种:

1)硬件升级,扩大系统存储设备的容量以满足升级后应用程序的需求,无疑,这种方法的成本较高。

2)压缩应用程序,将压缩后的应用程序存储于系统的存储区,同时升级BOOT,在BOOT中增加应用程序的解压缩功能。这种方法对分布地点分散且不支持远程BOOT升级的系统,将带来较多的人力、物力成本。

应用程序的不断升级对于普通系统而言,敏感性还没有那么强烈,而对于嵌入式系统而言,由于应用场合的限制,其自身的体积一般都比较小,其存储区的大小是有严格限制的,对于应用程序的大小同样有严格的要求。而现实中为保证系统功能的完善,升级应用程序又是必然面对的问题。目前的压缩程序虽然适合嵌入式系统的升级,但操作不便,人力物力投入较高,成本相对较高。

发明内容

有鉴于此,本发明的主要目的在于提供一种压缩版应用程序的生成方法与装置、压缩版应用程序的执行方法与装置以及压缩版应用程序的应用方法与系统,大大降低了存储区域的占用,并能支持远程的自动升级。

为达到上述目的,本发明的技术方案是这样实现的:

一种压缩版应用程序的生成方法,包括以下步骤:

A、获取待加载应用程序并将其无损压缩;

B、将压缩后的待加载应用程序作为源数据生成压缩版应用程序,并在所述压缩版应用程序中插入有待加载应用程序的解压函数和搬移及加载函数。

其中,步骤B中所述将压缩后的待加载应用程序作为源数据具体为:将压缩后的待加载应用程序作为压缩版应用程序的源文件中全局数组的初始化数据。

其中,步骤B中所插入的解压函数的解压方法与步骤A中所采用的无损压缩方法相对应,所述压缩及解压方法包括但不限于:哈夫曼压缩及解压方法、部分匹配预测模型PPM压缩及解压方法、行程长度压缩及解压方法、Lempel-Ziv压缩及解压方法、Lemple-Ziv-Welch压缩及解压方法、WinZip压缩及解压方法和WinRar压缩及解压方法。

上述方法中,所述待加载应用程序为用于升级的应用程序。

一种压缩版应用程序的执行方法,包括以下步骤:

A1、接收到执行指令后调用压缩版应用程序中的解压函数对压缩的待加载应用程序进行解压;

B1、调用压缩版应用程序中的搬移及加载函数,将解压后的待加载应用程序加载到系统缓存中,执行所述待加载应用程序。

一种压缩版应用程序的应用方法,包括以下步骤:

A2、将压缩版应用程序存储至服务主机;

B2、各连接于所述服务主机的客户机复制所述服务主机上的压缩版应用程序,各客户机执行所述压缩版应用程序。

一种压缩版应用程序的生成装置,包括:

压缩器,对获取的待加载应用程序进行无损压缩;以及

编译器,将压缩后的待加载应用程序作为源数据生成压缩版应用程序,并在所述压缩版应用程序中插入有待加载应用程序的解压函数和搬移及加载函数。

一种压缩版应用程序的执行装置,包括:

解压器,调用压缩版应用程序中的解压函数对压缩的待加载应用程序进行解压;以及

加载执行器,调用压缩版应用程序中的搬移及加载函数,加载解压后的待加载应用程序并执行。

一种压缩版应用程序的应用系统,包括:压缩版应用程序的生成装置和执行装置;

其中,所述压缩版应用程序的生成装置包括:

压缩器,对获取的待加载应用程序进行无损压缩;以及

编译器,将压缩后的待加载应用程序作为源数据生成压缩版应用程序,并在所述压缩版应用程序中插入有待加载应用程序的解压函数和搬移及加载函数;

所述压缩版应用程序的执行装置包括:

解压器,调用压缩版应用程序中的解压函数对压缩的待加载应用程序进行解压;以及

加载执行器,调用压缩版应用程序中的搬移及加载函数,加载解压后的待加载应用程序并执行。

本发明所述的方法及装置将应用程序无损压缩后作为源数据编译到新的应用程序中,这样,虽然新应用程序中包含有升级用或更新的占用存储空间较大的应用程序,但由于其被压缩,因此新的应用程序反而变小,如此不仅方便升级应用程序地传输和复制,更突破了存储区较小的系统的升级限制。

由于压缩版应用程序中包括有解压函数和搬移及加载函数,在运行时可直接利用解压函数解压压缩后的应用程序,并利用搬移及加载函数加载运行,不需要对系统进行硬件改版、不需要升级BOOT,即可实现远程的自动升级。虽然应用程序的启动时间稍微变长,但升级的应用程序需要的存储空间变小,保证了存储区较小的系统的升级更新。

附图说明

图1为本发明压缩版应用程序生成装置的组成结构示意图;

图2为本发明压缩版应用程序生成方法的流程图;

图3为本发明压缩版应用程序执行装置的组成结构示意图;

图4为本发明压缩版应用程序执行方法的流程图;

图5为本发明压缩版应用程序应用方法的流程图。

具体实施方式

以下结合附图对本发明进行详细描述。

图1为本发明压缩版应用程序生成装置的组成结构示意图,如图1所示,本发明压缩版应用程序的生成装置1包括有压缩器10和编译器11。其中,压缩器10获取系统待加载的应用程序,如升级的应用程序或是其它更新的占用较大存储空间的应用程序,压缩器10将获取的应用程序进行无损压缩;压缩后的应用程序传送至编译器11中,编译器11将压缩后的待加载应用程序作为源数据生成压缩版应用程序,即:将压缩后升级用的或其它更新的占用较大存储空间的应用程序作为压缩版应用程序的源文件全局数组的初始化数据,同时在该压缩版应用程序中插入有待加载应用程序的解压函数和搬移及加载函数,将其作为新的应用程序(压缩版应用程序)输出。本发明的搬移及加载函数用于将解压后的应用程序复制到系统缓存中,并加载执行。编译器11是将压缩版应用程序作为压缩后升级用的或其它更新的占用较大存储空间的应用程序的一个载体,并在压缩版应用程序中插入解压和搬移及加载函数,使压缩版应用程序占用的存储空间小于升级用的或其它更新的占用较大存储空间的应用程序占用的存储空间。

本领域普通技术人员应当理解,压缩器10可由携带有无损压缩算法的处理器实现;编译器11可由程序编译器实现。本发明中无损压缩算法的压缩比越大越好,且无损压缩算法占用的存储空间越小越好。本发明所述的压缩算法可采用哈夫曼压缩算法、部分匹配预测模型PPM压缩算法、行程长度压缩算法、Lempel-Ziv压缩算法、Lemple-Ziv-Welch压缩算法、WinZip压缩算法和WinRar压缩算法中的一种,相应地,解压函数所采用的解压算法与上述压缩算法相对应即可。本领域普通技术人员应当理解,上述算法均为较成熟的算法,在压缩器中实现是比较容易的。

图2为本发明压缩版应用程序生成方法的流程图,如图2所示,该方法包括以下步骤:

步骤201:获取系统待加载的应用程序,如升级的应用程序或其它更新的占用较大存储空间的应用程序,然后将获取的待加载应用程序进行无损压缩。

如压缩版应用程序生成装置部分所描述的那样,本发明采用的压缩方法包括但并不限于哈夫曼压缩方法、部分匹配预测模型PPM压缩方法、行程长度压缩方法、Lempel-Ziv压缩方法、Lemple-Ziv-Welch压缩方法、WinZip压缩方法和WinRar压缩方法,且解压函数所采用的解压方法与上述压缩方法相对应。

步骤202:将压缩后的待加载应用程序作为源数据生成压缩版应用程序,即:将压缩后的升级用的或其它更新的占用较大存储空间的应用程序作为压缩版应用程序的源文件全局数组的初始化数据,同时在该压缩版应用程序中插入有待加载应用程序的解压函数和搬移及加载函数,即将压缩版应用程序作为待加载的应用程序的一个载体,而压缩版应用程序大小比待加载的应用程序还小。

这里,所述压缩版应用程序中还设置有解压函数和搬移及加载函数的调用控制指令,压缩版应用程序自身具有解压压缩后待加载应用程序的功能、待加载应用程序的搬移及加载功能。

图3为本发明压缩版应用程序执行装置的组成结构示意图,如图3所示,本发明压缩版应用程序的执行装置3包括有解压器30和加载执行器31,接收到指令后,解压器30调用压缩版应用程序中的解压函数对压缩的待加载应用程序进行解压;加载执行器31调用压缩版应用程序中的搬移及加载函数,将解压后的待加载应用程序存储于系统的缓存中,然后执行该解压后的待加载的应用程序。本领域普通技术人员应当理解,本发明的解压算法为哈夫曼解压算法、部分匹配预测模型PPM解压算法、行程长度解压算法、Lempel-Ziv解压算法、Lemple-Ziv-Welch解压算法、WinZip解压算法和WinRar解压算法中的一种,利用上述算法生成解压器是容易实现的。加载执行器31可由相应的逻辑电路或CPU来实现。

图4为本发明压缩版应用程序的执行方法的流程图,如图4所示,本发明的执行方法是基于前述生成方法生成的压缩版应用程序进行的,包括以下步骤:

步骤401:接收到执行指令后,调用压缩版应用程序中的解压函数对压缩的待加载应用程序进行解压。解压方法为上述解压方法中的一种,这里不再赘述。

步骤402:调用压缩版应用程序中的搬移及加载函数,将解压后的待加载应用程序复制到系统缓存中,加载并执行所述待加载应用程序。

本发明压缩版应用程序的应用系统包括:压缩版应用程序生成装置1以及压缩版应用程序执行装置3。其中,压缩版应用程序的执行装置3来执行压缩版应用程序的生成装置1生成的应用程序。

图5为本发明压缩版应用程序的应用方法的流程图,如图5所示,该应用方法包括以下步骤:

步骤501:将前述生成方法生成的压缩版应用程序存储至服务主机;

步骤502:各连接于所述服务主机的客户机复制所述服务主机上的压缩版应用程序,各客户机按前述执行方法执行压缩版应用程序。

以下列举本发明的一应用实例,以更详尽地理解本发明。

以3G系统中的单板嵌入式系统(即前台主机)为例:单板CPU为PPC860,RAM大小为32MBYTE,应用程序存储区的大小限制为2.5MBYTE,用于升级的应用程序A大小为5MBYTE,堆栈指针从高到低扩展。

在后台主机上获取用于升级的应用程序A,用前述的压缩方法将其无损压缩,之后将压缩后的内容Ac作为压缩版应用程序B中一个源文件全局数组Array_Ac的初始化数据;同时在压缩版应用程序B中插入解压压缩内容Ac的函数以及应用程序A的搬移及加载函数。使压缩版应用程序B具有解压压缩应用程序A的功能、应用程序A的搬移及加载功能。压缩版应用程序B的入口地址配置为0x60000,与应用程序A的入口地址相同。本领域普通技术人员应当理解,如果BOOT支持,压缩版应用程序B与应用程序A的入口地址可配置为不同的内存地址。

为使压缩版应用程序B达到前台主机的复制要求,其占用的存储区应小于2.5MBYTE,因此,本发明所采用的压缩方法需具有较高的压缩比,解压的算法占用的存储区应尽量小,并且,解压Ac的函数以及应用程序A的搬移及加载函数占用的存储区也尽量小。本应用实例可将应用程序A搬移和加载功能代码写为一个函数,该函数只使用局部变量,仅使用寄存器传送参数,没有函数调用。

各前台主机从后台主机上复制压缩版应用程序B,作为自身的应用程序下载到嵌入式系统的应用程序存储区中,并加载运行。

压缩版应用程序B启动后先设置堆栈起始指针0x1AF0000,堆栈大小限制为64KBYTE,运行解压功能,把压缩版应用程序B中特定数组Array_Ac中的初始化数据Ac解压成应用程序A,并置于RAM地址0x1B00000处,与最高端相隔5MBYTE。

接着,压缩版应用程序B将应用程序A搬移和加载功能代码移到RAM地址0x1ADF000,修改程序计数器PC指针指向地址0x1ADF000,堆栈指针不需要指定,然后跳转执行。本发明的应用程序A搬移和加载功能代码小限制为16KBYTE。

应用程序A搬移和加载功能代码把已解压的用于升级的应用程序A搬移到地址0x60000,并修改PC指针指向地址0x60000,执行用于升级的应用程序A。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号