掌桥专利:专业的专利平台
掌桥专利
首页

应用程序业务工程编译方法、装置、设备和存储介质

文献发布时间:2023-06-19 11:35:49


应用程序业务工程编译方法、装置、设备和存储介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种应用程序业务工程编译方法、装置、设备和存储介质。

背景技术

在现有的组件化App项目中由于业务细化拆分会存在很多业务工程。App运行的必要条件是将每个业务工程的编译产生的静态库组合在一起。一次App的发布需要业务工程的完全编译,App经常需要进行多次编译,而重复编译的工作,会造成编译耗时较长,既影响App的发布时效也对开发人员造成了阻塞,影响开发效率。

发明内容

本申请的主要目的在于提供一种应用程序业务工程编译方法、装置、设备和存储介质,以解决上述问题。

为了实现上述目的,根据本申请的一个方面,提供了一种应用程序业务工程编译方法,包括:

当应用程序首次进行编译时,将所述应用程序中的每个业务工程进行编译得到对应的静态数据库;

将每个业务工程对应的静态数据库保存在本地缓存;

当所述应用程序再次进行编译时,复制本地缓存中的每个业务工程的静态数据库到目标位置。

在一种实施方式中,当应用程序首次进行编译时,生成每个业务工程的编译日志,所述编译日志记录所述业务工程编译过程中的问题;在本地缓存中存储所述编译日志。

在一种实施方式中,当应用程序首次进行编译时,对于任意的一个业务工程,所述方法还包括:根据业务工程名称生成秘钥,并将所述秘钥保存在本地缓存中;

当所述应用程序再次进行编译时,对于任意的一个业务工程,根据所述业务工程的秘钥查找本地缓存是否有所述业务工程的静态数据库;

如果有,则复制所述缓存中的所述业务工程的静态数据库到目标位置。

在一种实施方式中,当所述应用程序再次进行编译时,对于任意的一个业务工程,所述方法还包括:如果本地缓存没有所述业务工程对应的静态缓存数据库,则根据缓存秘钥查找云端缓存是否有所述业务工程的静态库;

如果有,则下载云端缓存中的所述业务工程的静态库至本地缓存。

在一种实施方式中,根据业务工程名称生成秘钥,包括:

将所述业务工程名称进行哈希加密运算得到加密后的哈希值;

获取所述业务工程的版本值;

根据所述哈希值、所述版本值和所述业务工程的名称得到所述秘钥。

为了实现上述目的,根据本申请的第二方面,提供了一种应用程序业务工程编译装置;该装置包括:

编译模块,用于当应用程序首次进行编译时,将所述应用程序中的每个业务工程进行编译得到对应的静态数据库;

保存模块,用于将每个业务工程对应的静态数据库保存在本地缓存;

复制模块,用于当所述应用程序再次进行编译时,复制本地缓存中的每个业务工程的静态数据库到目标位置。

在一种实施方式中,还包括日志模块,用于当应用程序首次进行编译时,生成每个业务工程的编译日志,所述编译日志记录所述业务工程编译过程中的问题;存储模块,还用于在本地缓存中存储所述编译日志。

在一种实施方式中,还包括秘钥模块,用于当应用程序首次进行编译时,对于任意的一个业务工程,根据业务工程名称生成秘钥,并将所述秘钥保存在本地缓存中;

查找模块,用于当所述应用程序再次进行编译时,对于任意的一个业务工程,根据所述业务工程的秘钥查找本地缓存是否有所述业务工程的静态数据库;

复制模块,用于如果查找模块确定本地缓存有所述业务工程的静态数据库,复制所述缓存中的所述业务工程的静态数据库到目标位置。

为了实现上述目的,根据本申请的第三方面,提供了一种应用程序业务工程编译设备;包括至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行上述任意一项所述的方法。

根据本申请的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述任意一项所述的方法。

本发明的应用程序业务工程编译方法,当首次App进行编译后,将每个业务工程对应的静态数据库进行缓存在本地,当再次进行编译时,可以直接复制缓存中的静态数据库,从而提高了编译效率,加快应用程序App发布时效和提升开发效率。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种应用程序业务工程编译方法的流程图;

图2是根据本申请实施例的另一种应用程序业务工程编译方法的流程图;

图3是根据本申请实施例的一种应用程序业务工程编译装置的结构示意图;

图4是根据本申请实施例的一种应用程序业务工程编译设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

App有很多的业务工程,比如,有20个业务工程的App,在进行编译时,单个业务工程耗时为3分钟,20个业务工程耗时1小时。而如果再次进行编译时,还需要重新编译,再浪费1小时的时间,App经常需要进行多次编译的工作,这必然浪费时间,造成发布的效率低下。

基于此,本申请提出了一种应用程序业务工程编译方法,参见附图1,该方法包括:

步骤S102,当应用程序首次进行编译时,将所述应用程序中的每个业务工程进行编译得到对应的静态数据库;

其中,业务工程基于git管理,git执行commit操作以记录当前需要编译的节点。业务工程和静态数据库都为压缩包或者文件夹的形式。

具体的,本申请应用于iOS操作系统中。

步骤S104,将每个业务工程对应的静态数据库保存在本地缓存;

示例性的,如果业务工程有20个,则本地缓存的缓存池中有20个静态数据库。

步骤S106,当所述应用程序再次进行编译时,复制本地缓存中的每个业务工程的静态数据库到目标位置。

本申请支持批量业务工程的git操作。支持业务工程的静态库缓存。支持业务工程的静态库云端缓存读取。支持App自动发布到分发平台。

在一种实施方式中,当应用程序首次进行编译时,生成每个业务工程的编译日志,所述编译日志记录所述业务工程编译过程中的问题;在本地缓存中存储所述编译日志。

具体的,日志中纪录该业务工程在首次编译过程中的出现的问题。从而有利于后续检查问题。

优选地,将业务工程对应的日志和业务工程存储在同一个文件夹中。每个业务工程对应的日志存储在一起。

命名时,可以将日志的名称和对应的业务工程的名称相同。

在一种实施方式中,当应用程序首次进行编译时,对于任意的一个业务工程,根据业务工程名称生成秘钥,并将所述秘钥保存在本地缓存中;

当所述应用程序再次进行编译时,对于任意的一个业务工程,根据所述业务工程的秘钥查找本地缓存是否有所述业务工程的静态数据库;

如果有,则复制所述缓存中的所述业务工程的静态数据库到目标位置。

在一种实施方式中,当所述应用程序再次进行编译时,对于任意的一个业务工程,所述方法还包括:如果本地缓存没有所述业务工程对应的静态缓存数据库,则根据缓存秘钥查找云端缓存是否有所述业务工程的静态库;

如果有,则下载云端缓存中的所述业务工程的静态库至本地缓存。

在一种实施方式中,根据业务工程名称生成秘钥时,将所述业务工程名称进行哈希加密运算得到加密后的哈希值;

获取所述业务工程的版本值;

根据所述哈希值、所述版本值和所述业务工程的名称得到所述秘钥。

本发明的技术方案,使用和接入简单,无需额外的部署,节省硬件资源。本发明支持本地缓存和云端缓存,综合使用缓存的业务工程静态库来减少全量编译的时间,提升开发效率。本发明提供完整的日志系统,记录业务工程编译过程中日志,方便问题排查。本发明支持功能组合,可实现一键完成目标任务。

参见附图2所示的本发明提出的另一种应用程序业务工程编译的方法的流程图;该方法包括:

步骤S201,获取业务工程COMMIT节点哈希值,结合业务工程名称生成秘钥;

步骤S202,根据该秘钥查找本地缓存池是否存储有静态数据库;如果是,则执行步骤S203;如果否,则执行步骤S204;

其中,可以设置静态数据库的标识为秘钥。

步骤S203,读取本地缓存的静态数据库;

步骤S204,根据秘钥查找云端缓存池是否有静态数据库;如果是,则执行步骤S205,如果否,则执行步骤S206;

步骤S205,下载云端静态数据库至本地缓存池;

步骤S206,执行业务工程本地编译产生静态数据库;

步骤S207,将上述静态数据库存储在本地缓存池。

第二方面,本发明还提供了一种应用程序业务工程编译装置,如图3所示,该装置包括:

编译模块21,用于当应用程序首次进行编译时,将所述应用程序中的每个业务工程进行编译得到对应的静态数据库;

保存模块22,用于将每个业务工程对应的静态数据库保存在本地缓存;

复制模块23,用于当所述应用程序再次进行编译时,复制本地缓存中的每个业务工程的静态数据库到目标位置。

在一种实施方式中,还包括日志模块,用于当应用程序首次进行编译时,生成每个业务工程的编译日志,所述编译日志记录所述业务工程编译过程中的问题;存储模块,还用于在本地缓存中存储所述编译日志。

在一种实施方式中,还包括秘钥模块,用于当应用程序首次进行编译时,对于任意的一个业务工程,根据业务工程名称生成秘钥,并将所述秘钥保存在本地缓存中;

查找模块,用于当所述应用程序再次进行编译时,对于任意的一个业务工程,根据所述业务工程的秘钥查找本地缓存是否有所述业务工程的静态数据库;

复制模块,用于如果查找模块确定本地缓存有所述业务工程的静态数据库,复制所述缓存中的所述业务工程的静态数据库到目标位置。

根据本申请的第三方面,提供了一种应用程序业务工程编译设备;参见附图4,包括至少一个处理器31和至少一个存储器32;所述存储器32用于存储一个或多个程序指令;所述处理器31,用于运行一个或多个程序指令,用以执行上述任意一项的方法。

第四方面,本申请还提出了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述任一项所述的方法。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。

易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 应用程序业务工程编译方法、装置、设备和存储介质
  • 应用程序的编译方法、装置、电子设备及存储介质
技术分类

06120112986764