一种软件产品编译方法及设备的制造方法

文档序号:10511982阅读:109来源:国知局
一种软件产品编译方法及设备的制造方法
【专利摘要】本发明涉及软件技术领域,公开了一种软件产品编译方法及设备,其可优化编译流程、减少编译时间以及资源消耗,提升编译效率。所述软件产品编译方法包括:接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分;对所述公共代码部分进行编译,以生成公共代码部分编译结果;分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。
【专利说明】
_种软件产品编译方法及设备
技术领域
[0001]本发明涉及软件技术领域,具体地,涉及一种软件产品编译方法及设备。
【背景技术】
[0002]软件产品的产生一般会经历需求阶段、研发阶段以及发布阶段。需求阶段主要涉及产品需求确定、需求可行性分析、UI设计等等;研发阶段主要涉及软件产品开发及测试;发布阶段主要涉及对测试通过的代码进行编译发版以及后期进行升级及运营维护。
[0003]对于一些大型软件企业而言,其软件产品往往是很多的,且同一款软件产品还需针对不同国家、地区、运营商制定不同的版本,每隔一定的时间周期就需要对这些软件产品进行升级,因此其编译服务器每天可能需要针对这些软件产品的上百套代码进行编译,从而编译出上百软件版本,并将该软件版本存放入共享服务器以进行发版。由于每套代码的编译都需要占用编译服务器大量的时间及资源,而对如此多套代码进行编译会使得编译服务器的负荷非常大,有时可能难以满足软件企业在发版时间上的要求。
[0004]因此,如何提升软件产品编译效率、节省编译时间已成为本领域亟待解决的问题。

【发明内容】

[0005]本发明的目的是提供一种软件产品编译方法及设备,其可优化编译流程、减少编译时间以及资源消耗,提升编译效率。
[0006]为了实现上述目的,本发明提供一种软件产品编译方法,该方法包括:接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分;对所述公共代码部分进行编译,以生成公共代码部分编译结果;分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果O
[0007]其中,所述公共代码部分可为与操作系统及内核相关的代码部分。
[0008]其中,所述软件产品特定代码部分可为该软件产品的代码内与该软件产品所针对的运营商以及所定制的系统属性有关的代码部分。
[0009]其中,所述多个软件产品可为一软件产品针对不同运营商和/或区域的不同版本。
[0010]相应地,本发明还提供一种软件产品编译设备,该设备包括:接收装置,用于接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分;公共代码部分编译装置,用于对所述公共代码部分进行编译以生成公共代码部分编译结果;特定代码部分编译装置,分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及合并装置,用于分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。
[0011]其中,所述公共代码部分可为与操作系统及内核相关的代码部分。
[0012]其中,所述软件产品特定代码部分可为该软件产品的代码内与该软件产品所针对的运营商以及所定制的系统属性有关的代码部分。
[0013]其中,所述多个软件产品可为一软件产品针对不同运营商和/或区域的不同版本。
[0014]通过上述技术方案,可由程序员经软件产品的代码拆分为两部分:公共代码部分以及软件产品特定代码部分,这样在针对多个软件产品进行编译时,可仅对所述公共代码部分编译一次,对所述多个软件产品的软件产品特定代码部分各自编译一次,之后将公共代码部分的编译结果与各软件产品的软件产品特定代码部分的编译结果进行结合,从而形成所述多个软件产品各自的编译结果。藉此,相比于现有技术需对所述公共代码部分编译多次,本发明的方案仅需所述公共代码部分编译一次,可节省对所述公共代码部分的编译时间,从而从整体上节省对所述多个软件产品的编译时间,节省了编译资源,提升了编译效率。
[0015]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0016]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0017]图1为本发明提供的软件产品编译方法的流程图;
[0018]图2a及图2b分别示出了在一具体示例中采用现有技术中的软件产品编译方法以及本发明提供的软件产品编译方法的示意图;以及
[0019]图3为本发明提供的软件产品编译设备的结构示意图。
[0020]附图标记说明
[0021]100 接收装置200 公共代码部分编译装置
[0022]300 特定代码部分编译装置400 合并装置
【具体实施方式】
[0023]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0024]图1为本发明提供的软件产品编译方法的流程图。如图1所示本发明提供一种软件产品编译方法,该方法包括:接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分;对所述公共代码部分进行编译,以生成公共代码部分编译结果;分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。通过该方案,可由程序员经软件产品的代码拆分为两部分:公共代码部分以及软件产品特定代码部分,这样在针对多个软件产品进行编译时,可仅对所述公共代码部分编译一次,对所述多个软件产品的软件产品特定代码部分各自编译一次,之后将公共代码部分的编译结果与各软件产品的软件产品特定代码部分的编译结果进行结合,从而形成所述多个软件产品各自的编译结果。藉此,相比于现有技术需对所述公共代码部分编译多次,本发明的方案仅需所述公共代码部分编译一次,可节省对所述公共代码部分的编译时间,从而从整体上节省对所述多个软件产品的编译时间,节省了编译资源,提升了编译效率。
[0025]图2a及图2b分别示出了在一具体示例中采用现有技术中的软件产品编译方法以及本发明提供的软件产品编译方法的示意图。
[0026]目前,常需要根据一套代码编译出多个产品,例如一个代码分支下面有5个软件产品(如图2a中的P1、P2、P3、P4以及P5),这样需要对该代码分支编译五次,从而生成该5个软件产品。如图2a所示,举例而言,目前需对软件产品Pl、P2、P3、P4以及P5进行编译,现有技术中一般为对这些软件产品的代码分别编译,以分别生成针对这些软件产品的升级包Pl/update.zip、P2/update.zip、P3/update.zip、P4/update.zip、P5/update.zip,其中每一软件产品的的代码编译时间为45分钟,5个软件产品的代码编译整体耗时225分钟。
[0027]同样针对图2a所示的应用场景,如图2b所示,通过本申请的技术方案,可针对软件产品P1、P2、P3、P4以及P5的公共代码部分进行一次编译,生成公共代码部分编译结果,本次编译耗时40分钟;之后对软件产品P1、P2、P3、P4以及P5的特定代码部分进行编译,分别耗时5分钟,之后,对软件产品Pl、P2、P3、P4以及P5的特定代码部分的编译结果与上述软件产品Pl、P2、P3、P4以及P5的公共代码部分的编译结果进行合并,以生成这些软件产品的升级包PI/update.zip、P2/update.zip、P3/update.zip、P4/update.zip、P5/update.zip。通过本申请的技术方案,5个软件产品的代码编译整体耗时65分钟,相比于上述图2a的方案,节省了 160分钟,使得软件产品的编译效率大幅提升。
[0028]其中,所述公共代码部分一般可为与操作系统及内核相关的代码部分,,所述软件产品特定代码部分可为该软件产品的代码内与该软件产品所针对的运营商以及所定制的系统属性有关的代码部分。举例而言,一般企业在发布软件产品时,往往需要针对不通过的运营商、不同的使用区域来发布不同的软件版本,而这些软件版本所实现的功能基本上是相同的,往往只是在一些特定的部分有所区别,大部分的代码都应该是一致的,因此此类软件产品往往公共代码部分占比远大于软件特定部分代码,非常适宜采用本申请的技术方案来进行编译。本申请的技术方案在应用于此类软件产品时,往往也可以最大程度地发挥其功效,使得编译效率大幅提升。对于所述公共代码部分与软件产品特定代码部分的划分,可由软件编程人员在编写代码时加以区分。
[0029]例如,如果在中国大陆发布软件产品,则可能需要针对移动运营商中国移动、中国联通、中国电信分别发布相应的软件版本,这些软件版本之间差异往往只在这些运营商多定制化的一些要求,其所实现的大部分功能应该是一致的。有如,如果在中国大陆、香港、台湾这些不同的区域发布软件产品,也是非常类似于上述针对不同运营商的软件版本情形的,软件版本之间的差异往往只在一些软件界面的变化,大部分的代码应该都是相同的。
[0030]图3为本发明提供的软件产品编译设备的结构示意图。如图3所示,相应地,本发明还提供一种软件产品编译设备,该设备包括:接收装置100,用于接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分;公共代码部分编译装置200,用于对所述公共代码部分进行编译以生成公共代码部分编译结果;特定代码部分编译装置300,分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及合并装置400,用于分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。
[0031]有关该软件产品编译设备的具体细节及益处,可参阅上述针对软件产品编译方法的描述,于此不再赘述。
[0032]通过本发明的方案,对于一系列的软件产品,只需对该系列软件产品的公共代码部分编译一次,之后再针对各软件产品的特定代码部分编译一次,将公共代码部分的编译结果与相应的特定代码部分的编译结果合并打包,作出一升级包。相比于之前需针对每一软件产品编译一次(每次编译均需涉及所述公共代码部分的编译及相应特定代码部分的编译),本发明可显著减少公共代码部分的编译时间(这部分的编译时间相比于特定代码部分编译时间是非常大的),从而显著减少了多个软件产品的整体编译时间。
[0033]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0034]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0035]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种软件产品编译方法,其特征在于,该方法包括: 接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分; 对所述公共代码部分进行编译,以生成公共代码部分编译结果; 分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及 分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。2.根据权利要求1所述的软件产品编译方法,其特征在于,所述公共代码部分为与操作系统及内核相关的代码部分。3.根据权利要求1所述的软件产品编译方法,其特征在于,所述软件产品特定代码部分为该软件产品的代码内与该软件产品所针对的运营商以及所定制的系统属性有关的代码部分。4.根据权利要求1所述的软件产品编译方法,其特征在于,所述多个软件产品为一软件产品针对不同运营商和/或区域的不同版本。5.一种软件产品编译设备,其特征在于,该设备包括: 接收装置,用于接收多个软件产品的代码,该多个软件产品中每一者的代码包含公共代码部分以及软件产品特定代码部分; 公共代码部分编译装置,用于对所述公共代码部分进行编译以生成公共代码部分编译结果; 特定代码部分编译装置,分别对所述多个软件产品各自的软件产品特定代码部分进行编译,以分别生成所述多个软件产品各自的软件产品特定代码部分编译结果;以及 合并装置,用于分别将所述多个软件产品各自的软件产品特定代码部分编译结果与所述公共代码部分编译结果合并,以生成所述多个软件产品各自的代码编译结果。6.根据权利要求5所述的软件产品编译设备,其特征在于,所述公共代码部分为与操作系统及内核相关的代码部分。7.根据权利要求5所述的软件产品编译设备,其特征在于,所述软件产品特定代码部分为该软件产品的代码内与该软件产品所针对的运营商以及所定制的系统属性有关的代码部分。8.根据权利要求5所述的软件产品编译设备,其特征在于,所述多个软件产品为一软件产品针对不同运营商和/或区域的不同版本。
【文档编号】G06F9/45GK105867993SQ201610187417
【公开日】2016年8月17日
【申请日】2016年3月29日
【发明人】罗汉彬
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1