安卓平台编译管控方法、编译系统、装置、介质和设备

文档序号:1952140 发布日期:2021-12-10 浏览:22次 >En<

阅读说明:本技术 安卓平台编译管控方法、编译系统、装置、介质和设备 (Android platform compiling control method, compiling system, device, medium and equipment ) 是由 李伟华 于 2021-09-18 设计创作,主要内容包括:本发明公开了一种安卓平台编译管控方法、编译系统、装置、介质和设备,该编译系统包括:客户端设备,用于响应于开发人员对源代码的修改操作,并将源代码发生修改的软件包上传到版本控制服务器的软件库中;版本控制服务器设置有用于保存软件包的软件库;用于向编译服务器发送编译指令;编译服务器用于根据编译指令,对软件包进行编译,并向统计分析服务器输出软件包的编译信息;统计分析服务器,用于根据编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备;向客户端设备发送提醒信息,提醒信息用于通知客户端设备对应的开发人员对异常修改进行修正,该方法能够辅助开发人员分析出影响编译速度的异常修改,提高开发效率。(The invention discloses an android platform compiling control method, a compiling system, a device, a medium and equipment, wherein the compiling system comprises the following steps: the client device is used for responding to the modification operation of a developer on the source code and uploading the software package with the modified source code to a software library of the version control server; the version control server is provided with a software library for storing the software package; the compiling server is used for sending compiling instructions to the compiling server; the compiling server is used for compiling the software package according to the compiling instruction and outputting compiling information of the software package to the statistical analysis server; the statistical analysis server is used for determining the abnormal modification of the source code meeting the preset rule and the client equipment corresponding to the abnormal modification according to the compiling information; and sending reminding information to the client device, wherein the reminding information is used for informing a developer corresponding to the client device to correct the abnormal modification.)

安卓平台编译管控方法、编译系统、装置、介质和设备

技术领域

本发明涉及软件开发技术领域,尤其涉及一种安卓平台编译管控方法、编译系统、装置、介质和设备。

背景技术

安卓(Android)正式开始编译前,需要将所有模块的编译控制文件,如Android.mk和Android.bp,转化为build.ninja文件,这个转化过程非常的耗时,特别是在多个开发人员共用相同的编译服务器时,耗时较长的问题就更加突显。目前发现,除了在首次编译、或修改了Android.mk/Android.bp、或增删了源文件的情况下会触发将所有模块的Android.mk和Android.bp转化为build.ninja文件,还会在其它非必要的情况下触发编译服务器执行这个过程,导致严重影响编译服务器的编译速度,降低开发人员的开发效率。

发明内容

本发明实施例提供一种安卓平台编译管控方法、编译系统、装置、介质和设备,该方法用以提高编译效率的目的。

第一方面,本发明提供一种编译系统,包括开发人员使用的客户端设备、版本控制服务器、编译服务器和统计分析服务器;

所述版本控制服务器与所述客户端设备相连接;所述客户端设备,用于响应于开发人员对源代码的修改操作,并将源代码发生修改的软件包上传到所述版本控制服务器的软件库中;

所述版本控制服务器与所述编译服务器相连接,所述版本控制服务器设置有用于保存所述软件包的软件库;所述版本控制服务器,用于向所述编译服务器发送编译指令;

所述编译服务器与统计分析服务器相连接,所述编译服务器用于根据编译指令,对所述软件包进行编译,并向所述统计分析服务器输出所述软件包的编译信息;

所述统计分析服务器,用于根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备;

向所述客户端设备发送提醒信息,所述提醒信息用于通知客户端设备对应的开发人员对所述异常修改进行修正。

本发明提供的编译系统的有益效果在于:因同一套代码无论哪个编译服务器触发的编译信息都会上报给统计分析服务器,统计分析服务器能够分析出影响编译时长的异常修改以及异常修改对应的客户端设备,所以统计分析服务器可以向客户端设备对应的开发人员推送提醒信息,以达到提醒开发人员对异常修改进行修正,实现对源代码编译速度的优化。

在一种可能的实施例中,所述版本控制服务器,具体用于:

从所述软件包中获取项目名称、项目版本、项目架构信息;根据所述项目名称、所述项目版本和所述项目架构信息,查询编译服务器配置信息,得到对应的编译服务器的地址;向所述地址对应的编译服务器发送编译指令。因版本控制服务器可以获取编译服务器的配置信息,所以可以利用该配置信息确定与当前项目对应的编译服务器的地址,然后向地址对应的编译服务器发送编译指令,该过程有助于版本控制服务器准确定位出软件项目对应的编译服务器。

在一种可能的实施例中,预设规则包括编译服务器的本机名称(hostname)发生变化、编译服务器的林纳斯(linux)版本发生变化、编译控制文件(Android.mk)包括非法的shell脚本。通过配置该预设规则,以便于统计分析服务器筛查出除了在首次编译、或修改了Android.mk/Android.bp、或增删了源文件的情况之外的影响编译耗时的代码修改操作,从而分析出影响编译时长的异常修改。

在一种可能的实施例中,编译服务器包括N组编译机,N是根据软件项目数量的需要配置的。这样配置的编译服务器可以保证源代码被快速编译,既可以充分利用硬件资源,又能够保证编译速度。

第二方面,本发明提供一种安卓平台编译管控方法,该方法包括:

接收来自编译服务器输出的软件包的编译信息;

根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备;

向所述客户端设备发送提醒信息,所述提醒信息用于通知客户端设备对应的开发人员对所述异常修改进行修正。

在一种可能的实施例中,

所述预设规则包括编译服务器的本机名称hostname发生变化、编译服务器的林纳斯linux版本发生变化、编译控制文件Android.mk包括非法的shell脚本。

本发明提供的安卓平台编译管控方法的有益效果在于:因同一套代码无论哪个编译服务器触发的编译信息都会上报给统计分析服务器,统计分析服务器能够分析出影响编译时长的异常修改以及异常修改对应的客户端设备,所以统计分析服务器可以向客户端设备对应的开发人员推送提醒信息,以达到提醒开发人员对异常修改进行修正,实现对源代码编译速度的优化。

第三方面,本发明实施例还提供一种安卓平台编译装置,该装置包括执行上述第一方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

第四方面,本发明实施例提供一种电子设备,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得该终端设备能够实现上述第二方面的任意一种可能的设计的方法。

第五方面,本发明实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。

第六方面,本发明实施例还提供一种包含计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。

第七方面,本发明实施例还提供一种服务器,包括存储器和处理器,存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一方面的任意一种可能的设计的方法。

关于上述第三方面至第七方面的有益效果可以参见上述第一方面中的描述。

附图说明

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

图1为本发明实施例提供的一种安卓平台编译系统架构示意图;

图2为本发明实施例提供的一种安卓平台编译管控方法流程示意图;

图3为本发明实施例提供的另一种安卓平台编译管控方法流程示意图;

图4为本发明实施例提供的一种安卓平台编译管控装置示意图;

图5为本发明实施例提供的一种服务器结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

为解决背景技术中提及的编译耗时问题,本发明实施例通过预先分析出触发将所有模块的Android.mk和Android.bp转化为build.ninja文件的情况如下:

1、源代码首次被编译;

2、修改了Android.mk/Android.bp;

3、增删了源文件;

4、编译服务器的本机名称(hostname)发生变化;

5、编译服务器的林纳斯(linux)版本发生变化;

6、编译控制文件(Android.mk)包括非法的shell脚本。

基于对上述情况的分析,本发明在Android编译系统中新增关键编译信息搜集功能,因同一套代码无论哪个编译服务器触发的编译信息都会上报给统计分析服务器,所以本实施例中统计分析服务器还会对编译信息进行分析,筛查出异常编译,分析引起异常编译的原因和提交者,并推送给提交者来修正代码,以达到编译速度的自我优化。

为此,本发明提供一种编译系统,该编译系统包括开发人员使用的客户端设备101、客户端设备102、客户端设备103、版本控制服务器200、编译服务器301、编译服务器302、编译服务器303和统计分析服务器400。其中:

版本控制服务器200与客户端设备101至客户端设备103相连接;客户端设备100,用于响应于开发人员对源代码的修改操作,并将源代码发生修改的软件包上传到所述版本控制服务器200的软件库中。

版本控制服务器200与编译服务器301至编译服务器303相连接,版本控制服务器200设置有用于保存所述软件包的软件库;版本控制服务器200,用于向编译服务器发送编译指令。示例性地,版本控制服务器200可以是SVN服务器。一种可能的实施例中,版本控制服务器,还可以从所述软件包中获取项目名称、项目版本、项目架构信息;然后根据所述项目名称、所述项目版本和所述项目架构信息,查询编译服务器配置信息,得到对应的编译服务器的地址;向所述地址对应的编译服务器301发送编译指令。

编译服务器301至编译服务器303与统计分析服务器400相连接,编译服务器用于根据编译指令,对所述软件包进行编译,并向统计分析服务器400输出所述软件包的编译信息。本实施中,编译服务器包括N组编译机,N是根据软件项目数量配置的。

统计分析服务器400,用于根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备101。其中,所述预设规则包括编译服务器的本机名称hostname发生变化、编译服务器的林纳斯linux版本发生变化、编译控制文件Android.mk包括非法的shell脚本。

统计分析服务器400,还用于向所述客户端设备101发送提醒信息,所述提醒信息用于通知客户端设备101对应的开发人员对所述异常修改进行修正。

值得说明的是,图1中以客户端设备的数量为3,以及编译服务器数量为3进行举例说明,实际应用中客户端设备的数量可能少于3个,或者多余3个,编译服务器数量也可能少于3个,或者多余3个,本实施例对此并不作限定。

基于上述编译系统,本发明实施例还提供一种安卓平台编译管控方法流程示意图,如图2所示,该方法可以应用于上述统计分析服务器400,该方法包括如下步骤。

S201,接收来自编译服务器输出的软件包的编译信息。

示例性地,如果编译信息指示编译服务器的本机名称(hostname)发生变化,或者编译服务器的林纳斯(linux)版本发生变化,或编译控制文件(Android.mk)包括非法的shell脚本,那么则可能会触发将所有模块的Android.mk和Android.bp转化为build.ninja文件。

S202,根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备。

示例性地,若统计分析服务器400根据编译信息确定编译服务器的本机名称(hostname)发生变化,则会根据版本服务器200上的代码提交节点确定异常修改和异常修改对应的客户端设备。

S203,向所述客户端设备发送提醒信息,所述提醒信息用于通知客户端设备对应的开发人员对所述异常修改进行修正。

示例性地,统计分析服务器400向客户端设备101发送提醒信息,以提醒客户端设备101的开发人员用其它方式替代该修改操作,避免触发将所有模块的Android.mk和Android.bp转化为build.ninja文件。

为了更加系统对上述安卓平台编译管控方法进行描述,下文进一步结合图3所示的方法流程图进行阐述,具体可以参见下述步骤。

S301,客户端设备的开发人员修改了源代码后,将源代码上传到SVN服务器的软件库中。

S302,SVN服务器启动更新检测程序,检测软件库的更新情况,根据项目名称、项目版本和项目架构信息,查询编译服务器配置信息,得到对应的编译服务器的地址。

S303,SVN服务器向地址对应的编译服务器301发送编译指令。

S304,编译服务器301接收到编译指令后,对编译指令进行解析,对源代码执行编译,生成编译信息,该编译信息包括编译过程中生成的日志信息。

S305,编译服务器301向统计分析服务器400发送编译信息。

S306,统计分析服务器400根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备101。

S307,统计分析服务器400向客户端设备101发送提醒信息。

S308,客户端设备101的开发人员在看到提醒信息后,对之前的修改操作进行修正,即还原原修改或者利用其它修改方式进行替代。

可见,本实施例中,因同一套代码无论哪个编译服务器触发的编译信息都会上报给统计分析服务器,统计分析服务器能够分析出影响编译时长的异常修改以及异常修改对应的客户端设备,所以统计分析服务器可以向客户端设备对应的开发人员推送提醒信息,以达到提醒开发人员对异常修改进行修正,实现对源代码编译速度的优化。

基于上述安卓平台编译管控方法,在本发明的一些实施例中,本发明实施例公开了一种安卓平台编译管控装置,如图4所示,该装置400用于实现以上各个方法实施例中记载的方法,其包括:接收单元401、确定单元402、发送单元403。接收单元401,用于接收来自编译服务器输出的软件包的编译信息。确定单元402,用于根据所述编译信息,确定满足预设规则的源代码的异常修改和异常修改对应的客户端设备。发送单元403,用于向所述客户端设备发送提醒信息,所述提醒信息用于通知客户端设备对应的开发人员对所述异常修改进行修正。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在本发明的另一些实施例中,本发明实施例公开了一种服务器,该服务器可以指代上文的统计分析服务器,如图5所示,该服务器500可以包括:一个或多个处理器501;存储器502;显示器503;一个或多个应用程序(未示出);以及一个或多个计算机程序504,上述各器件可以通过一个或多个通信总线505连接。其中该一个或多个计算机程序504被存储在上述存储器502中并被配置为被该一个或多个处理器501执行,该一个或多个计算机程序504包括指令。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述方法实施例所述方法。

本发明还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述方法实施例所述方法。

在本发明实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

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

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种人工智能实验平台的自动评测方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!