一种软件安装包的制作方法

文档序号:6597751阅读:576来源:国知局
专利名称:一种软件安装包的制作方法
技术领域
本方案适用于无线通信领域,尤其涉及一种软件安装包的制作方法。
背景技术
如图1所示,现有的软件安装包主要由两部分组成,第一部分(即Packages (包) 部分)中包括应用程序(App)部分,在需要的时候还包括驱动(Drv)部分,其中,A卯部分 由使用开发工具编译出来的UI (Userlnterface,用户界面)编译程序及运行UI编译程序 (亦可称为开发该软件安装包)所需要的UI支持库文件组成,Drv部分由设备驱动安装包 构成;第二部分(即Resources (资源)部分)由UI支持相关部分及执行脚本组成,其中, UI支持相关部分中包括安装该软件所需要的图片、声音、多语言支持库等文件,执行脚本用 于控制Packages部分被安装到终端设备上后需要执行的相关动作,如改变系统设置或根 据系统情况设置UI启动、运行等相关动作。 当前,电信领域日新月异,无线终端设备的PC管理软件需要支持多个操作系统 (如主流操作系统Windows、 Mac和Linux)。跨平台语言是很好的选择,但是这些语言对操 作系统不同版本的支持不足,因此为了兼容,需要将所用语言的支持库打入安装包。这就带 来了安装包很大、无法满足实际应用需要的问题。

发明内容
本发明要解决的技术问题提供一种软件安装包的制作方法,以克服现有技术中当 支持库较大时软件安装包占用空间很大的缺陷。
为解决上述问题,本发明提供了一种软件安装包的制作方法,包括 在所述软件安装包的制作过程中,将开发该软件所需的多个支持库文件按照文件
类型进行划分,然后将同类支持库文件压縮在一起,并将压縮后的同类支持库文件放在软
件安装包的同一部分中。
进一步地,上述制作方法还可具有以下特征 所述将压縮后的同类支持库文件放在软件安装包的同一部分中是指在制作 Packages部分时,将除了压縮后占用空间最大的一类支持库文件之外的其它类压縮后的支 持库文件连同用户界面(UI)编译程序一起制作成应用程序(App)部分;在制作Resources 部分时,将所述压縮后占用空间最大的一类支持库文件添加到所述Resources部分。
进一步地,上述制作方法还可包括 在制作Resources部分时,将能解压縮所述压縮后的同类支持库文件的解压縮软
件添加到所述Resources部分。 进一步地,上述制作方法还可包括 在制作Resources部分时,将执行脚本添加到所述Resources部分;其中,所述执 行脚本用于在Packages部分被安装到终端上后控制所述终端按照下述流程进行操作将 所述Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到所述终端上,然后用所述解压縮软件分别对所述终端上保存的Resources部分及Packages部分的压縮后的同类支持库文件进行解压縮操作;解压縮操作完成后,执行UI支持相关部分的拷贝及相关后续操作。 进一步地,上述制作方法还可具有以下特征 在将所述Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到所述终端之前,先判断终端中是否存在开发该软件所需的所有支持库文件,如有,则直接执行所述UI支持相关部分的拷贝及相关后续操作;否则,将所述Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到所述终端上并进行后续流程。
进一步地,上述制作方法还可具有以下特征 将同类支持库文件压縮在一起是指利用7z压縮软件将同类支持库文件压縮在一起; 将能解压縮所述压縮后的同类支持库文件的解压縮软件添加到所述Resources部分是指将7z压縮软件添加到所述Resources部分。 采用本发明后,可以大大减小应用程序安装包的大小,应用于网络传输领域时,可以大大加快网络传播速度;当将软件安装包直接烧写到Flash(闪存)中时,可以大大节约Flash空间,节约成本。


图1为现有技术中软件安装包的组织结构图; 图2为本发明实施例中软件安装包的组织结构图; 图3为本发明实施例中Packages部分的构造流程图; 图4为本发明实施例中Resources部分的构造流程图。 图5为本发明实施例中执行脚本控制的安装过程的流程图; 图6为本发明实施例中软件安装过程的流程图。
具体实施例方式
将同类文件放在一起进行压縮时,压縮比率最大。因此,根据此规则,本发明所述方法的基本构思是在软件安装包的制作过程中,将开发该软件所需的多个支持库文件按照文件类型进行划分,然后将同类支持库文件压縮在一起,并将压縮后的同类支持库文件放在软件安装包的同一部分中。其中,本发明所指同类文件为文件名后缀相同的文件。
根据在执行脚本中易于控制的文件在安装时易于解压縮这一原则,将压縮后的同类支持库文件放在软件安装包的同一部分中可通过下述方式实现在制作Packages部分时,将除了压縮后占用空间最大的一类支持库文件之外的其它类支持库文件连同UI编译程序一起制作成App部分;在制作Resources部分时,将上述压縮后占用空间最大的一类支持库文件添加到Resources部分。如图2所示,经过划分压縮后,UI支持库文件被分为三部分,其中一部分保存在第一UI支持库中,另一部分保存在第二UI支持库中,占用空间最大的那部分保存在UI支持库动态库中。 由于在制作软件安装包过程中对支持库文件进行了压縮操作,那么在安装该软件包的过程中就需要对这些支持库文件进行解压縮操作。因此,为了便于用户的使用,还可以在制作Resources部分时,将能解压縮上述压縮文件的解压縮软件一同添加到Resources部分。 如上所述,Resources部分的执行脚本用于控制Packages部分被安装到终端后需要执行的相关动作,由于在制作软件安装包时对同类支持库文件进行了压縮的操作,而在安装时还需要进行相应的解压縮操作,因此,在采用上述软件安装包的制作方法制作出安装包后,为了便于安装,就需要重新部署执行脚本中规定的动作执行流程。故而,需要在执行脚本中添加下述流程,包括将Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到终端上,然后用该解压縮软件对该终端上保存的Resources部分及Packages部分的压縮后的同类支持库文件进行解压縮操作。解压縮操作完成后,可执行UI支持相关部分的拷贝及相关后续操作,此处的实现可参考现有技术,在此不再进行赘述。
为了进一步提高安装效率,节省终端的资源,可以在上述执行脚本定义的流程中进一步增加下述流程先判断终端中是否存在开发该软件所需的所有支持库文件,如有,则直接执行UI支持相关部分的拷贝及相关后续操作;否则,执行将Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到终端上的操作及后续流程。
下面用本发明的一应用实例进一步加以说明。 软件安装包中Packages部分的生成流程,如图3所述,包括以下步骤 S301 :根据所在系统所使用语言的开发工具配置开发编译环境,并安装开发所需
要的支持软件(如python、wxPython、glib等); S302 :对开发出的应用程序代码进行编译后得到UI编译程序; S303 :将开发机器上安装的开发支持软件进行裁剪得到支持库文件,使得在未安
装开发所需要的支持软件的机器上能够正常运行上述UI编译程序; S304 :将上述支持库文件按照文件类型进行划分; S305 :采用压縮率较高的压縮软件分别将划分出的同类支持库文件压縮在一起;
S306 :使用InstallShield、 PackageMaker等安装包制作工具将除了压縮后占用空间最大的一类支持库文件之外的其它类压縮后的支持库文件与UI编译程序一起制作成App安装包;其中,App安装包部分是Packages部分中最重要的部分,其直接与用户交互,是区别于其它应用程序的主要体现; S307 :如果需要驱动,从设备制造商处获取设备驱动安装包; S308 :将A卯安装包和设备驱动安装包一同拷贝到Packages部分。 软件安装包Resources部分的生成流程,如图4所述,包括以下步骤 S401 :从上述步骤S305获取UI支持库动态库部分,即压縮后占用空间最大的一类
支持库文件; S402 :获取UI相关内容,如服务程序或UI后台支撑程序等(一般由第三方提供或专门的UI设计部门提供)。 S403 :获取上述步骤S305压縮过程对应的解压縮软件; S404 :将上述解压縮软件、UI支持库动态库部分、UI支持相关及人工编写的执行脚本拷贝到Resources部分;其中,如图5所示,人工编写的执行脚本中定义的Packages部分被安装到终端上后,终端上执行的具体流程如下 S501 :判断当前系统中是否有开发该软件所需的所有支持库文件(可以通过判断注册表或是系统路径下是否存在所需要的文件的方式实现),如果有则执行步骤S504,否则执行下一步骤; S502 :将UI支持库动态库部分和解压縮软件拷贝到终端本地; S503 :利用解压縮软件将本地保存的Packages部分及Resources部分中的压縮后
的同类支持库文件分别解压到本地对应的目录; S504 :安装UI支持相关内容部分; S505:启动UI。 在Resources部分和Packages部分制作完成后,再次使用安装包制作工具(如InstallShield、PackageMaker等)将步骤S308和S404生成的Packages部分和Resources部分制作成最终的软件安装包。 本发明适用于需要小容量安装包而应用程序运行支持库较大的情况。以本方案在wxPython应用程序安装包中实现为例。首先wxPython应用程序需要打入Python和wxPython的支持库,对同类文件的分离分为动态库和py文件两部分。其次,采用的压縮软件为7z压縮软件,其性能参数为压縮等级——极限压縮,压縮方法——LZMA(Lempel-Ziv
-Markovchain-Algorithm,马尔科夫链算法),字典大小-64M,单词大小-128个字符;
并支持多线程,可以进一步加快解压縮速度。按上述具体实施的流程,得到软件安装包后,具体的安装过程(如图6所示),包括如下步骤 S601 :安装A卯部分,包括UI编译程序,python、 wxPython支持的py部分;
S602 :安装设备驱动部分; S603 :按照执行脚本执行后续流程,安装内容及过程如S501-S505的描述。
同理此方案可以应用于其它支持库较大的软件安装包中,如python软件、Java软件支持库、glib库、视频编解码库和QT支持库等,对于压縮软件的选取主要看所能接受的安装包的大小,比较好的压縮算法如7z、 zip和bz2等。 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
一种软件安装包的制作方法,其特征在于,在所述软件安装包的制作过程中,将开发该软件所需的多个支持库文件按照文件类型进行划分,然后将同类支持库文件压缩在一起,并将压缩后的同类支持库文件放在软件安装包的同一部分中。
2. 如权利要求l所述的制作方法,其特征在于,所述将压縮后的同类支持库文件放在软件安装包的同一部分中是指在制作 Packages(包)部分时,将除了压縮后占用空间最大的一类支持库文件之外的其它类压 縮后的支持库文件连同用户界面(UI)编译程序一起制作成应用程序(App)部分;在制 作Resources (资源)部分时,将所述压縮后占用空间最大的一类支持库文件添加到所述 Resources部分。
3. 如权利要求1或2所述的制作方法,其特征在于,还包括在制作Resources部分时,将能解压縮所述压縮后的同类支持库文件的解压縮软件添 加到所述Resources部分。
4. 如权利要求3所述的制作方法,其特征在于,还包括在制作Resources部分时,将执行脚本添加到所述Resources部分;其中,所述执行脚 本用于在Packages部分被安装到终端上后控制所述终端按照下述流程进行操作将所述 Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到所述终端上,然后 用所述解压縮软件分别对所述终端上保存的Resources部分及Packages部分的压縮后的 同类支持库文件进行解压縮操作;解压縮操作完成后,执行UI支持相关部分的拷贝及相关 后续操作。
5. 如权利要求4所述的制作方法,其特征在于,在将所述Resources部分中包含的解压縮软件及压縮后的同类支持库文件拷贝到所 述终端之前,先判断终端中是否存在开发该软件所需的所有支持库文件,如有,则直接执行 所述UI支持相关部分的拷贝及相关后续操作;否则,将所述Resources部分中包含的解压 縮软件及压縮后的同类支持库文件拷贝到所述终端上并进行后续流程。
6. 如权利要求3所述的方法,其特征在于,将同类支持库文件压縮在一起是指利用7z压縮软件将同类支持库文件压縮在一起; 将能解压縮所述压縮后的同类支持库文件的解压縮软件添加到所述Resources部分 是指将7z压縮软件添加到所述Resources部分。
全文摘要
本发明公开了一种软件安装包的制作方法,包括在软件安装包的制作过程中,将开发该软件所需的多个支持库文件按照文件类型进行划分,然后将同类支持库文件压缩在一起,并将压缩后的同类支持库文件放在软件安装包的同一部分中。采用本发明后,可以大大减小应用程序安装包的大小,应用于网络传输领域时,可以大大加快网络传播速度;当将软件安装包直接烧写到Flash(闪存)中时,可以大大节约Flash空间,节约成本。
文档编号G06F9/44GK101763269SQ20101010311
公开日2010年6月30日 申请日期2010年1月27日 优先权日2010年1月27日
发明者杨洪刚 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1