一种插件加载方法及装置制造方法及图纸

技术编号:32973313 阅读:55 留言:0更新日期:2022-04-09 11:44
本公开提供了一种插件加载方法及装置,该方法首先响应于目标命令行工具的启动指令,加载并运行所述目标命令行工具的本体文件;然后,加载所述目标命令行工具安装的至少一个待加载插件的定义文件,并从所述待加载插件的定义文件中读取出所述待加载插件对应的激活事件;最后,在运行所述目标命令行工具的过程中,若检测到任一所述激活事件,将检测到的所述激活事件对应的待加载插件作为目标插件,并加载所述目标插件。本公开实施例能够避免命令行工具在启动时大量的加载操作,避免将不需要的插件进行加载,提高目标命令行工具的运行流畅度,降低因加载过多插件引起卡顿的频率。降低因加载过多插件引起卡顿的频率。降低因加载过多插件引起卡顿的频率。

【技术实现步骤摘要】
一种插件加载方法及装置


[0001]本公开涉及计算机
,具体而言,涉及一种插件加载方法及装置。

技术介绍

[0002]应用程序通常会开放面向开发者或有相关经验的用户的操作接口,也即命令行界面(Command

Line Interface,CLI),用户可以通过命令行界面输入指令,计算机设备在接收到指令后予以执行,具有命令行界面功能的模块可以被称为命令行工具。
[0003]随着命令行工具支持的功能越来越多,其代码规格也会越来越庞大,为了缓解大量代码带来的性能降低,通常采用插件系统将不同功能的代码分离到不同的文件来进行选择性的安装和使用,命令行工具在启动时会进行插件扫描,然后按照预定的逻辑对扫描到的插件加载。然而,随着插件数量的不断增加,命令行工具的运行时的性能仍会不断下降,最终变为无法正常使用的状态。

技术实现思路

[0004]本公开实施例至少提供一种插件加载方法及装置。
[0005]第一方面,本公开实施例提供了一种插件加载方法,包括:
[0006]响应于目标命令行工具的启动指令,加载并运行所述目标命令行工具的本体文件;
[0007]加载所述目标命令行工具安装的至少一个待加载插件的定义文件,并从所述待加载插件的定义文件中读取出所述待加载插件对应的激活事件;
[0008]在运行所述目标命令行工具的过程中,若检测到任一所述激活事件,将检测到的所述激活事件对应的待加载插件作为目标插件,并加载所述目标插件。
[0009]一种可选的实施方式中,所述加载所述目标插件,包括:
[0010]确定与所述目标插件之间存在依赖关系的依赖插件;
[0011]基于所述依赖关系依次加载所述依赖插件及所述目标插件。
[0012]一种可选的实施方式中,所述加载所述目标插件,包括:
[0013]从加载结果列表中查找所述目标插件对应的历史加载结果;
[0014]若所述历史加载结果存在,则将所述历史加载结果作为加载所述目标插件的加载结果。
[0015]一种可选的实施方式中,所述加载所述目标插件,包括:
[0016]从加载结果列表中查找所述目标插件对应的历史加载结果;
[0017]若所述历史加载结果不存在,则加载所述目标插件的代码入口文件;
[0018]将所述代码入口文件的加载结果添加至所述加载结果列表中。
[0019]一种可选的实施方式中,在加载所述目标命令行工具安装的至少一个待加载插件的定义文件之前,所述方法还包括:
[0020]建立加载结果列表;
[0021]将所述目标命令行工具的本体文件的加载结果,以及所述目标命令行工具对应的应用程序接口的加载结果添加至所述加载结果列表中。
[0022]一种可选的实施方式中,所述激活事件包括以下至少一种:
[0023]预设指令处于启动状态中、预设指令处于启动状态前、预设指令完成启动后。
[0024]第二方面,本公开实施例还提供一种插件加载装置,包括:
[0025]启动模块,用于响应于目标命令行工具的启动指令,加载并运行所述目标命令行工具的本体文件;
[0026]读取模块,用于加载所述目标命令行工具安装的至少一个待加载插件的定义文件,并从所述待加载插件的定义文件中读取出所述待加载插件对应的激活事件;
[0027]加载模块,用于在运行所述目标命令行工具的过程中,若检测到任一所述激活事件,将检测到的所述激活事件对应的待加载插件作为目标插件,并加载所述目标插件。
[0028]一种可选的实施方式中,所述加载模块在加载所述目标插件时,用于:
[0029]确定与所述目标插件之间存在依赖关系的依赖插件;
[0030]基于所述依赖关系依次加载所述依赖插件及所述目标插件。
[0031]一种可选的实施方式中,所述加载模块在加载所述目标插件时,用于:
[0032]从加载结果列表中查找所述目标插件对应的历史加载结果;
[0033]若所述历史加载结果存在,则将所述历史加载结果作为加载所述目标插件的加载结果。
[0034]一种可选的实施方式中,所述加载模块在加载所述目标插件时,用于:
[0035]从加载结果列表中查找所述目标插件对应的历史加载结果;
[0036]若所述历史加载结果不存在,则加载所述目标插件的代码入口文件;
[0037]将所述代码入口文件的加载结果添加至所述加载结果列表中。
[0038]一种可选的实施方式中,在加载所述目标命令行工具安装的至少一个待加载插件的定义文件之前,所述启动模块还用于:
[0039]建立加载结果列表;
[0040]将所述目标命令行工具的本体文件的加载结果,以及所述目标命令行工具对应的应用程序接口的加载结果添加至所述加载结果列表中。
[0041]一种可选的实施方式中,所述激活事件包括以下至少一种:
[0042]预设指令处于启动状态中、预设指令处于启动状态前、预设指令完成启动后。
[0043]第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
[0044]第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
[0045]本公开实施例提供的插件加载方法及装置,首先响应于目标命令行工具的启动指令,加载并运行所述目标命令行工具的本体文件;然后,加载所述目标命令行工具安装的至少一个待加载插件的定义文件,并从所述待加载插件的定义文件中读取出所述待加载插件
对应的激活事件;最后,在运行所述目标命令行工具的过程中,若检测到任一所述激活事件,将检测到的所述激活事件对应的待加载插件作为目标插件,并加载所述目标插件。本公开实施例通过在目标命令行工具的启动阶段仅加载本体文件以及待加载插件的定义文件,在使用过程中,检测到激活事件后,再加载对应的目标插件,从而在启动时避免了大量的加载操作,避免将不需要的插件进行加载,提高目标命令行工具的运行流畅度,降低因加载过多插件引起卡顿的频率。
[0046]为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0047]为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种插件加载方法,其特征在于,包括:响应于目标命令行工具的启动指令,加载并运行所述目标命令行工具的本体文件;加载所述目标命令行工具安装的至少一个待加载插件的定义文件,并从所述待加载插件的定义文件中读取出所述待加载插件对应的激活事件;在运行所述目标命令行工具的过程中,若检测到任一所述激活事件,将检测到的所述激活事件对应的待加载插件作为目标插件,并加载所述目标插件。2.根据权利要求1所述的方法,其特征在于,所述加载所述目标插件,包括:确定与所述目标插件之间存在依赖关系的依赖插件;基于所述依赖关系依次加载所述依赖插件及所述目标插件。3.根据权利要求1所述的方法,其特征在于,所述加载所述目标插件,包括:从加载结果列表中查找所述目标插件对应的历史加载结果;若所述历史加载结果存在,则将所述历史加载结果作为加载所述目标插件的加载结果。4.根据权利要求1所述的方法,其特征在于,所述加载所述目标插件,包括:从加载结果列表中查找所述目标插件对应的历史加载结果;若所述历史加载结果不存在,则加载所述目标插件的代码入口文件;将所述代码入口文件的加载结果添加至所述加载结果列表中。5.根据权利要求3或4所述的方法,其特征在于,在加载所述目标命令行工具安装的至少一个待加载插件的定义文件之前,所述方法还包括:建立加载结果列表;将所述目标命令行工具的本体文件的加载结果,以及所述目标命令行工具对应的应用程序接口的加...

【专利技术属性】
技术研发人员:李博
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1