一种软件代码多线程打包方法及装置与流程

文档序号:16207139发布日期:2018-12-08 07:15阅读:132来源:国知局
一种软件代码多线程打包方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种软件代码多线程打包方法及装置。

背景技术

随着计算机、通信以及互联网技术的发展,智能移动电话、掌上电脑等电子设备的应用越来越普遍。在使用这些电子设备时,不可避免的要使用各种软件程序,每个软件程序代码在完成的时候都需要打包,而且可能不止一个,例如不同渠道、不同版本的安装包。现有技术中是一个代码库对应一个打包平台,一个打包平台同一时间只能打包一个sdk。但现在应用的版本迭代迅速,且产品和版本众多,依赖一对一的打包机制,效率低,不利于软件版本的迅速更新。



技术实现要素:

有鉴于此,本发明实施例提供一种软件代码多线程打包确定方法、装置、电子设备及存储介质,能够为软件代码打包提供多线程操作,有效提高了软件打包的效率。

第一方面,本发明实施例提供一种多线程打包方法,应用于软件打包系统,包括:

接收预设打包信息,所述打包信息包括代码库标签、产品标签、渠道信息、版本信息;

根据所述打包信息计算打包数量n,并获取系统中空闲打包平台的数量m,当m大于等于n时,针对所述打包信息随机分配空闲的打包平台,其中n和m为大于等于1的正整数;

根据所述打包平台获取对应的所述打包信息;根据所述打包平台获取代码库中的软件代码,并根据所述打包信息和所述软件代码进行打包,生成sdk。

结合第一方面,在第一方面的第一种实施方式中,所述根据所述打包平台获取代码库中的软件代码包括:

实时监控代码库,判断软件代码是否更新,是,则利用所述代码库标签和产品标签对所述代码库和所述软件代码进行匹配,获取更新的所述软件代码;或

预设间隔时间段,判断软件代码是否更新,是,则利用所述代码库标签和产品标签对所述代码库和所述软件代码进行匹配,获取更新的所述软件代码。

结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述判断软件代码是否有更新包括:

通过序列码判断软件代码是否有更新,其中每个软件代码唯一对应一个序列号,序列码为软件代码提交到代码库时代码库自动生成的。

结合第一方面,在第一方面的第三种实施方式中,所述获取软件代码之后还包括:

对所述软件代码进行静态扫描,生成扫描报告。

结合第一方面,在第一方面的第四种实施方式中,所述生成sdk之后还包括:

将所述sdk发送给云端ftp服务器进行保存。

第二方面,本发明的实施例还提供一种软件代码多线程打包装置,应用于软件打包系统,包括:

接收模块,用于接收预设的打包信息,其中所述打包信息包括代码标签、产品标签、渠道信息、版本信息;

计算模块,用于根据所述打包信息计算打包数量

n,并获取系统中空闲打包平台的数量m,当m大于等于n时,针对所述打包信息随机分配空闲的打包平台,其中n和m为大于等于1的正整数;

获取模块,用于根据所述打包平台获取对应的所述打包信息和代码库中的软件代码;;

生成模块,用于所述打包平台根据所述打包信息和所述软件代码进行打包,生成sdk。

结合第二方面,在第二方面的第一种实施方式中,所述获取模块包括:

监控单元:用于实时监控代码库,判断软件代码是否更新;

获取单元:用于当判断软件代码有更新时,则利用所述代码库标签和产品标签进行匹配,获取更新的软件代码;

监控单元,用于监控预设间隔时间段,判断软件代码是否更新;

获取单元,用于当判断软件代码有更新时,则利用所述代码库标签和产品标签对所述代码库和所述软件代码进行匹配,获取更新的所述软件代码。结合第二方面的第二种实施方式,在第二方面的第二种实施方式中,所述获取软件代码包括:

通过序列码判断软件代码是否有更新,其中每个软件代码唯一对应一个序列号,序列码为软件代码提交到代码库时代码库自动生成的。

结合第二方面,在第二方面的第三种实施方式中,还包括检测模块:

检测模块,用于对所述软件代进行代码扫描,生成扫描报告。

结合第二方面,在第二方面的第四种实施方式中,还包括发送模块:

发送模块,用于将所述sdk发送给云端ftp服务器进行保存。

第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;

电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;

处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种软件代码多线程打包方法。

第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种软件代码多线程打包方法。

本发明的实施例提供的软件代码多线程打包方法、装置、电子设备、存储介质,能够根据接收到的打包信息,计算打包数量并获取系统中空闲的打包平台,进行分配,获取软件代码进行打包,使得可以多个打包平台可以同时进行打包,发送给测试平台和/上线平台,有效提高了软件代码打包效率,也大大提升了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例提供的软件代码多线程打包方法的一种流程图;

图2为本发明的实施例中提供的软件代码多线程打包方法的一种流程图;

图3为本发明的实施例中提供的软件代码多线程打包方法的一种流程图;

图4为本发明的实施例中提供软件代码多线程打包的一种结构示意图;

图5为本发明的实施例中提供软件代码多线程打包的一种结构示意图;

图6为本发明的实施例提供的电子设备的一种结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

第一方面,本发明的实施例提供一种软件代码多线程打包方法,能为软件代码打包提供多线程操作,有效提高了软件打包的效率,也大大提升了用户体验。

如图1所示,本发明的实施例提供的软件多线程打包方法可以包括:

s101,接收预设的打包信息,所述打包信息包括:代码库标签、产品标签、渠道信息、版本信息;

在本发明实施例中,打包信息是服务端预先设置好的。打包信息包括但不限于代码库标签、产品标签、渠道信息、版本信息等。每个代码库唯一对应一个代码库标签n(n为大于等于1的整数);每个产品对应一个产品标签例如:launcher、keyboard;渠道信息可以包括渠道号和/或渠道名称等,打包信息具体的呈现形式本发明实施例不做具体限定。

可选的,所有的打包信息可以在服务端预设设置好,并按照普遍需求预先设置的标准打包信息,本发明实施例中可以为,接收服务端预先设置好的标准打包信息,也可以是用户按照不同产品的实际需求选取的个性化打包信息。

s102,根据所述打包信息计算打包数量n,并获取系统中空闲打包平台的数量m,当m大于等于n时,针对所述打包信息随机分配空闲的打包平台,其中n和m为大于等于1的正整数;;

在本发明的一个实施例中,打包信息为:

代码库1、产品标签launcher、(渠道号1和渠道号2)、版本v1.0.0;

代码库2、产品标签keyboard、(渠道号1和渠道号3)、版本v2.0.0;

则打包数量为4,查询系统中的空闲打包平台数量,如空闲的打包平台数量为6,则针对打包信息随机分配打包平台,或根据用户需求指定相应的打包平台。例如随机分配打包平台,现有空闲打包平台数量为6,具体包括打包平台a-f,随机分配,则

打包平台a对应代码库1、产品标签launcher、渠道号1、版本v1.0.0;

打包平台b对应代码库1、产品标签launcher、渠道号2、版本v1.0.0;

打包平台c对应代码库2、产品标签keyboard、渠道号1、版本v2.0.0;

打包平台d对应代码库2、产品标签keyboard、渠道号3、版本v2.0.0。

可选的,当空闲的打包平台数量小于实际计算出的打包数量,可以按照打包需求的接收时间进行队列排序,按照排列顺序进行分配处理。

s103,根据所述打包平台获取对应的所述打包信息。

打包平台a获取对应的打包信息:应代码库1、产品标签launcher、渠道号1、版本v1.0.0;

打包平台b获取对应的打包信息:应代码库1、产品标签launcher、渠道号2、版本v1.0.0;

打包平台c获取对应的打包信息:应代码库2、产品标签keyboard、渠道号1、版本v2.0.0;

打包平台d获取对应的打包信息:应代码库2、产品标签keyboard、渠道号3、版本v2.0.0。

s104,根据所述打包平台获取代码库中的软件代码,并根据所述打包信息和所述软件代码进行打包,生成sdk。。

在本发明实施例中,打包平台a根据代码库标签查找对应的代码库1,进一步在代码库1中,根据所述产品标签launcher查找对应的软件代码,对查找到的软件代码结合打包信息进行对打包,生成渠道1、版本v1.0.0的sdk。

在本发明的一个实施例中,上述所有操作可以为后端自动化操作,也可以通过服务前端进行展示并人为控制整体的操作步骤。

本发明的实施例提供的软件代码多线程打包方法,能够根据接收到的打包信息,计算打包数量并获取系统中空闲的打包平台,进行分配,获取软件代码进行打包,使得可以多个打包平台可以同时进行打包,发送给测试平台和/上线平台,有效提高了软件代码打包效率,也大大提升了用户体验。

如图2所示,本发明的实施例提供的软件多线程打包方法还可以包括:

可选的,s104还可以包括,

s201,实时监控代码库中软件代码的更新,获取更新的软件代码。

在本发明的一个实施例中,在不考虑成本及其他因素的前提下,可实时监控软件代码库,判断软件代码是否更新,其中软件代码提交到代码库时,代码库都会自动生成一个序列码与提交的软件代码唯一对应,序列码与软件代码的对应关系保存在软件代码库的序列表中,可通过序列码判断软件代码是否更新,是,进一步利用所述代码库标签对代码库进行匹配,匹配成功,利用产品标签对软件代码进行匹配,匹配成功,获取更新的软件代码,无需用户进行人为操作。

s202,对获取到的软件代码进行代码扫描。

可选的,针对获取到的软件代码进行代码静态扫描,生成扫描报告,将扫描自动发送给研发和/或测试人员,供研发修改代码和/或测试人员进一步测试。提高软件代码完成效率和/或测试效率,为软件代码打包、测试、上线加快速度。其中静态扫描可以利用现有checkstyle,findbugs,pmd,jtest等静态扫描工具进行扫描,在本发明实施例中不做具体限定。

s203,打包软件代码,生成sdk。

可选的,对获取到的软件代码根据打包信息进行打包,生成sdk,并将sdk发送给云端ftp服务器进行保存,进一步云端ftp服务器可将sdk自动发给测试平台供测试人员进行测试或发送给上线平台进行产品上线。在本发明的另外一个实施例中,云端ftp服务器可将sdk自动发送给测试平台供测试人员进行测试,测试结果没有问题,测试平台会通知云端ftp服务器,云端ftp服务器进一步将sdk发送给自动化上线平台,进行产品上线。可以将产品打包、产品测试、产品上线等形成自动化流程,节省人力资源,提高产品打包、上线效率。

如图3所示,本发明的实施例提供的软件多线程打包方法还可以包括:

在本发明的另外一个实施例中s104还可以包括:

s301,预设间隔时间,获取更新的软件代码。

可选的,不同的开发商有不同的开发规则和流程,代码提交有可能是编写完成后随时提交,也有可能是按照预设的时间进行提交,其中一种实现方式为,用户可以按照实际提交代码提交的时间规则进行间隔时间的设置。例如某公司一天有两次提交代码的时间早6点和晚六点,那么间隔时间可以设置为12个小时,起始时间可以为早7点或晚7点(因软件代码提交是需要时间的,因此可以在间隔实际提交时间的一段时间后再进行软件代码获取);另外一种实现方式为,可以根据历史数据预估代码提交的时间规则,从而确定一个较为合理的预设时长。可选的,预设时长既可以是固定不变的,也可以是根据用户提交代码的时间的不同而变化的。进一步利用所述代码库标签进行匹配,匹配成功,进行产品标签匹配,获取更新的软件代码。预设间隔时间,获取更新的软件代码,可以优化网络资源,提高代码获取效率。

s302,对获取到的软件代码进行代码扫描。

s303,打包软件代码,生成sdk。

其中s302和上述s202相同,s303和上述s203相同,此处不再赘述。

本发明的实施例提供的软件多线程打包方法,可以根据打包信息对软件代码进行多线程打包,提高软件打包效率,并优化打包流程,对软件代码进行静态扫描,生成扫描报告,打包完成之后进一步在自动化测试平台上进行软件动态测试,使测实结果更加全面。并提高了软件代码打包效率,降低了人力,提升了用户体验。

第二方面,本发明的实施例提供一种软件代码多线程打包装置,能为软件代码打包提供多线程操作,有效提高了软件打包的效率,也大大提升了用户体验。

如图4所示,本发明实施例提供的软件代码多线程装置可以包括:

接收模块401,用于接收预设的打包信息,其中所述打包信息包括代码标签、产品标签、渠道信息、版本信息;

计算模块402,用于根据所述打包信息计算打包数量n,并获取系统中空闲打包平台的数量m,当m大于等于n时,针对所述打包信息随机分配空闲的打包平台,其中n和m为大于等于1的正整数;

获取模块403,用于根据所述打包平台获取对应的所述打包信息和代码库中的软件代码;

生成模块404,用于所述打包平台根据所述打包信息和所述软件代码进行打包,生成sdk。

本发明的实施例提供的软件代码多线程打包方法,能够根据接收到的打包信息,计算打包数量并获取系统中空闲的打包平台,进行分配,获取软件代码进行打包,使得可以多个打包平台可以同时进行打包,发送给测试平台和/上线平台,有效提高了软件代码打包效率,也大大提升了用户体验。

如图5所示,本发明实施例提供的软件代码多线程装置可以包括:

获取模块403可以包括:

监控单元4031,用于实时监控代码库,判断软件代码是否更新;

在本发明的一个实施例中,通过序列码判断软件代码是否有更新,其中每个软件代码唯一对应一个序列号,序列码为软件代码提交到代码库时代码库自动生成的。

获取单元4032,用于当判断软件代码有更新时,则利用所述代码库标签和产品标签对所述代码库和所述软件代码进行匹配,获取更新的所述软件代码;或

监控单元4031,用于监控预设间隔时间段,判断软件代码是否更新;

获取单元4032,用于当判断软件代码有更新时,则利用所述代码库标签和产品标签对所述代码库和所述软件代码进行匹配,获取更新的所述软件代码。

可选的,还包括检测模块:

检测模块406,用于对检测获取单元获取的更新的软件代码进行静态扫描,生成扫描报告。

可选的,还包括发送模块:

发送模块405,用于将所述生成模块生成的sdk发送给云端ftp服务器。

在本发明的一个实施例中,发送模块还可以用于,将云端服务器保存的sdk发送给自动化测试平台或发送给自动上线平台。本发明的实施例提供的软件多线程打包方法,可以根据打包信息对软件代码进行多线程打包,提高软件打包效率,并优化打包流程,对软件代码进行静态扫描,生成扫描报告,打包完成之后进一步在自动化测试平台上进行软件动态测试,使测实结果更加全面。并提高了软件代码打包效率,降低了人力,提升了用户体验。

第三方面,本发明实施例提供一种电子设备,能够为各推荐内容的安排合理的分布位置,有效提高了推荐内容的下载率,也大大提升了用户体验。

如图6所示,本发明的实施例提供的一种电子设备,可以包括:

壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;

电源电路55,用于为上述电子设备的各个电路或器件供电;

存储器53,用于存储可执行程序代码;

处理器52,用于通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的推荐内容的展示位置确定方法。

处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种推荐内容的展示位置确定方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1