发明内容
本发明的目的在于提供一种构建跨平台软件运行环境的方法及装置,其用于解决现有技术中采用不同***平台各自专用的软件打包工具制作出来的软件安装包不能兼容的缺点。
为了达到本发明的目的,本发明采用以下技术方案实现:
一种构建跨平台软件运行环境的方法,包括:
A、启动二进制启动文件,建立跨平台软件运行环境入口;
B、启动解压缩模块,对核心编译解释和图形化环境模块执行解压缩操作,以构建核心编译解释和图形化环境;对跨平台可视化软件安装模块执行解压缩操作,以构建可视化软件安装包界面,并获得安装业务;
C、调用解压缩模块,对平***立模块以及多平台共享模块执行解压缩操作,以提供可视化软件安装包界面以及安装业务所需的数据;对扩展编译解释和图形化环境模块执行解压缩操作,以构建扩展编译解释和图形化环境;
D、根据不同***平台的差异性设置软件安装包运行的环境变量,启动可视化软件安装包界面,并据其执行软件安装包跨平台及可视化的安装。
优选地,在所述步骤B中,依据所述二进制启动文件,触发对核心编译解释和图形化环境模块、跨平台可视化软件安装模块的解压缩操作。
优选地,在所述步骤B中,在执行完对核心编译解释和图形化环境模块执行解压缩操作之后,还包括设置***环境变量和参数的步骤。
优选地,在所述步骤B中,所述解压缩模块的首次调用是依据所述二进制启动文件触发的。
优选地,在所述步骤C中,所述扩展编译解释和图形化环境用以完善核心编译解释和图形化环境中缺失的软件运行的必要功能、环境、图形化***的控件及功能。
更为优选地,所述必要功能包括正则表达式功能、XML文件读写功能以及编解码功能。
更为优选地,在所述步骤B中,所述跨平台可视化软件安装模块采用跨平台语言开发。
更为优选地,所述跨平台语言为python或wxpython。
优选地,在所述步骤C中,所述多平台共享模块包含可以为多个平台共享的程序代码文件及程序运行的资源文件。
优选地,在所述步骤C中,所述平***立模块包括跨平台软件运行环境依赖的***平***立使用的库函数、配置文件、运行脚本、驱动程序以及为屏蔽不同***平台兼容性问题增加的差异性文件。
一种构建跨平台软件运行环境的装置,其包括:二进制启动文件、安装处理模块、解压缩模块、核心编译解释和图形化环境模块、跨平台可视化软件安装模块、扩展编译解释和图形化环境模块、平***立模块以及多平台共享模块,其中,
二进制启动文件,用于建立跨平台软件运行环境入口;
安装处理模块,用于依据二进制启动文件触发解压缩模块,控制解压缩模块执行对核心编译解释和图形化环境模块、跨平台可视化软件安装模块、扩展编译解释和图形化环境模块、平***立模块以及多平台共享模块的解压缩操作;
解压缩模块,用于响应安装处理模块的控制,执行对核心编译解释和图形化环境模块、跨平台可视化软件安装模块、扩展编译解释和图形化环境模块、平***立模块以及多平台共享模块的解压缩操作;
核心编译解释和图形化环境模块,在被解压缩之后用于构建核心编译解释和图形化环境;
跨平台可视化软件安装模块,在被解压缩之后用于构建可视化软件安装包界面,并获得安装业务;
扩展编译解释和图形化环境模块,在被解压缩之后用于构建扩展编译解释和图形化环境;
平***立模块,用于保存各个平台之间无法共享的平***立数据;
多平台共享模块,在被解压缩之后用于提供可视化软件安装包界面以及安装业务所需的数据。
通过以上本发明的技术方案可以看出,由于目前对于设备制造厂家而言,存储模块容量需要满足这些安装包大小总和的需求。安装包越大,所需要的存储模块的容量越大,通常情况下成本也就越高。在当今通信行业的激烈竞争中,取得制造成本的优势往往就能够占据市场的主动。在本发明中,使用跨平台软件安装包将有利于缩减软件安装包的大小,降低设备存储模块容量的需求。
除此之外,目前Linux***上尚很少有可视化的软件安装包,因此本发明提供的跨平台软件安装包将有利于缩减安装包大小和有利于Linux下用户对软件的使用和认知,更有利于在不同平台下统一软件的安装过程。除此之外,还可以统一多个平台的软件安装界面,增强跨平台软件安装界面友好性和业务流程的统一性。
优选实施方式下,在所述步骤C中,所述平***立模块包括跨平台软件运行环境依赖的***平***立使用的库函数、配置文件、运行脚本、驱动程序以及为屏蔽不同***平台兼容性问题增加的差异性文件。
除此之外,本发明还提供了一种构建跨平台软件运行环境的装置,如图1所示,其包括:二进制启动文件20、安装处理模块10、解压缩模块30、核心编译解释和图形化环境模块50、跨平台可视化软件安装模块40、扩展编译解释和图形化环境模块60、平***立模块70以及多平台共享模块80,其中,
二进制启动文件20,用于建立跨平台软件运行环境入口;对于所述二进制启动文件,这个文件的功能是针对不同***平台下的特性,编写的入口函数,目的是根据配置文件调用解压缩模块,建立核心编译解释和图形化环境,触发跨平台可视化软件安装模块40的运行,将安装过程交由跨平台可视化软件安装模块40进行控制。
在上述的装置和设备中,二进制启动文件是针对各个平台的特性,使用平台相关的方法建立的平台相关入口。在代码编写时,这部分代码固定统一不变,按照不同***平台的***接口,统一的执行一组***命令。这组***命令保存在文件中,将触发解压缩模块30对安装包中的核心编译解释和图形化环境模块50进行解压缩,建立核心编译解释和图形化环境。同时设置必要的***环境变量和相关参数。触发解压缩模块30对跨平台可视化软件安装模块40进行解压缩,启动跨平台可视化软件安装包。将软件安装带入跨平台可视化软件安装控制范围。
安装处理模块10,用于依据二进制启动文件触发解压缩模块30,控制解压缩模块30执行对核心编译解释和图形化环境模块50、跨平台可视化软件安装模块40、扩展编译解释和图形化环境模块60、平***立模块70以及多平台共享模块80的解压缩操作;
解压缩模块30,用于响应安装处理模块10的控制,执行对核心编译解释和图形化环境模块50、跨平台可视化软件安装模块40、扩展编译解释和图形化环境模块60、平***立模块70以及多平台共享模块80的解压缩操作;此模块的首次调用是通过二进制启动文件触发的,其目的是解压缩核心编译解释和图形化部分以及跨平台可视化软件安装模块40。通过首次调用,建立跨平台可视化软件安装包可以独立运行的编译解释和图形化环境。当跨平台可视化软件安装包运行之后,解压缩模块30将由跨平台可视化软件安装包调用来解压缩他相关压缩文件。
核心编译解释和图形化环境模块50,在被解压缩之后用于构建核心编译解释和图形化环境;该模块是跨平台可视化软件安装包可以独立运行的最小环境,当核心编译解释和图形化环境就绪的时候,跨平台可视化软件安装包模块的所有功能将可以正常运行。核心编译解释和图形化环境不同于扩展编译解释和图形化环境的是,它是经过分类和裁减的,仅仅保留了安装包运行的必须的功能,其他的功能比如:正则表达式功能、XML读写功能、编解码功能等这些可能都不能使用。同时对于图形化界面环境,可能一些控件和控件的方法也不能使用,比如:列表控件ListCtrl不能使用,或者列表控件的排序或者镶嵌Check按钮的功能不能使用等。将这些功能和控件剥离到核心编译解释和图形化环境之外能够缩减核心编译解释和图形化环境的大小、目录层次、解压缩得时间。这样从用户能够更加快速的进入跨平台的软件安装包模块,感受到安装进度的可视化显示。
跨平台可视化软件安装模块40,在被解压缩之后用于构建可视化软件安装包界面,并获得安装业务;跨平台可视化软件安装模块运行在核心编译解释和图形化环境下,其功能就是提供跨平台可视化且界面具有一致性的软件安装界面。跨平台可视化软件安装模块40针对不同***平台下的安装配置文件对软件进行安装,安装的部分包括:扩展编译解释和图形化环境模块60,多平台共享模块80,平***立模块70等。跨平台可视化软件安装模块40由跨平台语言开发,比如:python、wxpython等,能够屏蔽不同***在软件安装中界面上的差异性。由于跨平台语言的开发,该跨平台可视化软件安装模块40所安装的内容在很大程度上具有一致性,这些一致性可以在不同的平台上一致的显示在用户界面上,从而避免了不同***平台下安装程序所表现出来的巨大的差异性。对于驱动和***相关的内容的安装,在不同平台上也可能拥有共同的特征,这部分也可以放在相同的界面上,只是在不同的***平台上表现出不同的内容。
扩展编译解释和图形化环境模块60,在被解压缩之后用于构建扩展编译解释和图形化环境;扩展的这部分是针对核心编译解释和图形化环境来说的,由于核心编译解释和图形化环境是对软件运行的完整环境的一次裁减和筛选。那么扩展的编译解释和图形化环境就是在核心环境正常运行之后由跨平台可视化软件安装模块控制的,针对核心环境中缺失的软件运行的必要功能、环境以及图形化***的控件及功能的一次完善。比如:增加正则表达式功能,XML文件读写功能,编解码功能等等。对于控件***,有可能增加一些软件正常运行时需要的控件及控件功能,比如:列表控件,及列表控建的排序功能,菜单控件等。
平***立模块70,用于保存各个平台之间无法共享的平***立数据,例如平***立模块70里面保存的是各个平台不能共享的数据和运行库驱动数据等。
多平台共享模块80,在被解压缩之后用于提供可视化软件安装包界面以及安装业务所需的数据。
对于所述平***立模块70,即便采用跨平台语言开发,也有可能会遇到***平台之间的差异性引入的问题。例如程序运行库的问题,驱动的问题,执行脚本命令的问题,相同平台间的***差异性的问题等等。凡是需要在不同***平台或者***分别处理的都可以归结到平***立模块70。通常情况下跨平台的开发语言在运行的时候也是需要有运行库的支持的,在不同的平台或***所使用的运行库是不一样的,比如:Window下使用lib库,Mac下使用dylib、或者so库,Linux下使用so库等。因此在安装包中这些平***立的模块需要根据具体的平***立安装,那么在做包的时候就应该开辟出一块位置用来保存平***立的相关内容,这里我们称之为平***立模块。
对于所述多平台共享模块,由于采用的跨平台的开发语言和图形库,那么软件中就可能有很多是多个平台可以共享的。比如:程序代码、程序运行的资源文件等。这些文件的共同特性是,可以直接拷贝各个***下使用不需要担心***间的兼容性问题。程序代码中的文件比如py文件,资源文件比如,图片、语言文件、配置文件以及***兼容的声音文件等。
为了更好的解释本发明的精神,下面将结合具体实施例以及附图予以详细说明。
本发明实施例通过对跨平台开发语言以及跨平台软件安装的深入分析,提出了一种跨平台的软件安装包模型,如图1所示,依托此模型,生产制造人员可以针对终端用户的特殊定制需求,利用跨平台开发语言的特性,开发出一套跨平台的软件安装发布工具,即一种跨平台可视化软件安装包,或言之为一种构建跨平台软件运行环境的方法。生产研发人员根据终端用户的定制需求,通过跨平台开发语言及图形库设计并实现一组软件安装界面。依托这一组约定好的软件安装界面,按照如图1所示的软件安装包组织结构,将可以实现在多个***平台(如Windows、Mac、Linux)下风格统一、业务统一的软件安装过程。当用户提出修改需求时,只需要对现有状态的一次修改就可以实现多个平台***的集体响应,极大地提升了效率。
为实现下述本发明的实施例方案,需要在安装包中提供一组二进制启动文件、一组解压缩模块、核心编译解释和图形化环境模块、扩展编译解释和图形化环境模块、多平台共享模块、平***立模块,以及跨平台可视化软件安装模块。
如图1所示,二进制启动文件20承担不同***下安装包的入口,通过***触发解压缩模块30快速核心编译解释和图形化环境所需要的文件解压,同时解压缩跨平台可视化软件安装模块40,启动可视化安装模块,将软件安装交付跨平台可视化软件安装模块40控制。跨平台可视化软件安装模块40将进一步调用解压缩模块30对核心编译解释和图形化环境模块50、扩展编译解释和图形化环境模块60、多平台共享模块80、平***立模块70进行解压和文件拷贝。建立完整的软件运行环境,设置相关的***环境变量及运行参数,安装设备驱动等。最终软件安装的全部过程都将在跨平台可视化软件安装模块40的界面上进行显示。
本发明实施例中跨平台可视化软件安装包启动时将按照图2所示的流程进行运行,包括以下步骤:
S201:跨平台可视化软件安装模块调用二进制启动文件。此二进制启动文件为调起跨平台软件安装包的壳,被编译成平***立运行,其目的就是触发并执行后续的软件安装和操作;
S202:解压缩和执行脚本。跨平台可视化软件安装模块通过执行脚本调用解压缩模块并执行后续的步骤。例如,解压缩模块对安装包中的核心编译解释和图形化环境,跨平台可视化的软件安装模块的全部以及平***立模块的部分进行解压缩;
S203:解压核心编译解释和图形化环境模块,此模块肩负运行跨平台可视化软件安装包的责任,它饱含了一组最小集的软件安装包运行所需要的文件;
S204:解压跨平台可视化软件安装模块,此模块使用跨平台语言和图形库开发一套代码能够运行在各个***平台上。此模块里面包含了软件安装包界面以及安装的业务;
S205:解压平***立模块,这里仅解压缩了平***立模块的一部分,这部分是跨平台可视化的软件安装模块运行所必需的数据,包括安装包运行环境依赖的***独立的库函数,某些***间有差异性的文件以及安装配置文件等;
S206:配置环境变量启动可视化软件安装包界面。针对不同***下的差异性设置软件安装包运行的环境变量,并且在之前S201至S206步骤形成的软件安装包运行环境上运行跨平台可视化软件安装包进行跨平台软件的安装过程。
本发明实施例中跨平台可视化软件安装模块进行软件安装时将依赖图2生成的可视化软件安装包运行环境,按照如图3所示的软件安装整体流程图进行软件安装,安装结束后将生成如图4所示的能够支撑所安装软件运行的软件运行环境,运行软件。
其中图3表示的跨平台可视化软件安装模块进行软件安装时的整体流程图包括以下的流程:
S301:跨平台可视化软件安装模块加载跨平台可视化软件安装界面。
S302:跨平台可视化安装界面启动之后将加载软件安装配置文件,进行软件安装进度分析以及进行跨平台软件的安装的步骤。跨平台可视化安装界面负责前台向用户显示安装进度和结果,后台进行软件安装的过程。
S303:跨平台可视化软件安装模块的界面负责向用户显示安装的具体过程和安装结果,同时在后台负责具体的软件安装的过程。如文件拷贝,环境搭建,***兼容性测试,条件测试,驱动安装,环境变量配置等工作。前台的界面与后台的安装过程之间进行程序间的通信。由前台根据安装配置文件和安装进度向后台发送控制命令,后台接受到命令后执行相关操作,将结果返回给前台,前台根据反馈实时显示和修正安装过程。
S304:跨平台可视化软件安装模块的后台安装进程。后台安装进程根据由前台传来的安装命令进行相关内容的安装,返回安装结果。
S305:进行用户操作,在安装过程中用户可以对安装过程进行控制和操作,比如取消安装,设置安装路径,以及其他一些安装选项,如果用户有操作转到S307执行,如果用户没有对安装过程进行修改,则转到S306执行。
S306:根据跨平台可视化软件安装模块的默认安装过程进行软件安装,通过前台界面进行显示。
S307:判断用户的操作与默认的安装过程是否一致,如果一致继续进行安装,如果不一致则响应用户操作S308,将修改后的安装过程和命令发送至S304后台安装进行进行处理,后台安装进程将根据安装结果反馈至S303前台界面向用户进行显示。
S308:响应用户的操作,生成新的安装过程命令,并执行S304步骤将该命令发送至后台安装进行软件安装。
图4表示跨平台软件安装包构建跨平台软件运行环境并运行软件的流程图,包含以下流程:
S401:启动二进制启动文件和解压缩模块,在图2中已经对其作用进行了说明,在此处解压缩模块还将被跨平台可视化软件安装模块调用,以对扩展编译解释和图形化环境模块以及多平台共享模块进行解压缩。
S402:核心编译解释和图形化环境,这部分包含的是能使跨平台软件安装包正常运行的最小环境,包含了安装报运行所需的文件以及库函数等,它可能包含如步骤S403所示的一些内容。
S403:核心编译解释和图形化环境中包含了能在Windows、Mac、Linux使用的核心环境包,这些包一般是函数库,有些时候也可能是文件。有了这些库和文件,在配合能够通用的文件就可以构建出适合跨平台软件安装包运行的最小环境。这个环境同时也是后续被安装软件运行时所需要环境的一部分,它将和步骤S407的执行结果共同构成软件运行所需的环境。
S404:多平台共享模块,这部分包含了各个***下都可以使用的内容。通常情况下包含跨平台语言及图形库的源文件,通用配置文件,语言文件,图片资源文件,界面布局文件,被安装程序的可运行代码等。
S405:平***立模块,这部分包含被安装软件运行时所需要的其他模块独立内容。通常情况下包含***独立使用的库函数,配置文件,运行脚本,驱动程序以及为屏蔽不同***兼容性问题增加的一些其他文件。
S406:扩展编译解释和图形化环境,这部分包含的是能使被安装软件正常运行的最小环境,它包含了核心编译解释和图形化环境以外的被安装软件运行所必需的其他文件和库函数等。它与核心编译解释和图形化环境S402共同构成了被安装软件运行所需的环境。它可能包含如S407所示的一些内容。
S407:同步骤S403一样,它也包含了能在Windows、Mac、Linux使用的扩展环境包,它是核心环境包的补充和扩展。功能上拓展了跨平台软件运行环境和图形环境,使得被安装软件能够正确运行。
S408:在构建扩展编译解释和图形化环境的时候有可能也会需要多平台共享模块的支持,这里可能包含构建扩展编译解释和图形化环境共用的配置文件,资源文件,以及源文件。同时也可能会需要平***立模块的支持转步骤S409。
S409:在构建扩展编译解释和图形化环境的时候有可能需要平***立模块的一些文件,如有些***可能有额外的功能需要使用额外的工具、函数库、源文件以及驱动等。
S410:通常通讯设备的运行需要驱动的支持,通常在软件安装的末尾对驱动进行安装,驱动安装之后设备就能够正常驱动起来。
S411:设置环境变量和其他软件启动参数,完成安装,根据需要启动软件。
通过以上本发明的技术方案可以看出,由于目前对于设备制造厂家而言,存储模块容量需要满足这些安装包大小总和的需求。安装包越大,所需要的存储模块的容量越大,通常情况下成本也就越高。在当今通信行业的激烈竞争中,取得制造成本的优势往往就能够占据市场的主动。在本发明中,使用跨平台软件安装包将有利于缩减软件安装包的大小,降低设备存储模块容量的需求。
除此之外,目前Linux***上尚很少有可视化的软件安装包,因此本发明提供的跨平台软件安装包将有利于缩减安装包大小和有利于Linux下用户对软件的使用和认知,更有利于在不同平台下统一软件的安装过程。除此之外,还可以统一多个平台的软件安装界面,增强跨平台软件安装界面友好性和业务流程的统一性。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。