CN113656106A - 插件加载方法、装置、电子设备及计算机可读存储介质 - Google Patents
插件加载方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113656106A CN113656106A CN202110962470.6A CN202110962470A CN113656106A CN 113656106 A CN113656106 A CN 113656106A CN 202110962470 A CN202110962470 A CN 202110962470A CN 113656106 A CN113656106 A CN 113656106A
- Authority
- CN
- China
- Prior art keywords
- plug
- information
- plugin
- started
- loading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012544 monitoring process Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 description 40
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种插件加载方法、装置、电子设备及计算机可读存储介质。该方法包括:当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;从至少一个第一插件中确定出第三插件包含第一信息时,控制第二插件从第三插件获取第一信息进行加载;对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用。本申请实施例实现了当前启动的插件与其他插件之间顺利调用,简化了插件互相加载处理的逻辑复杂度。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种插件加载方法、装置、电子设备及计算机可读存储介质。
背景技术
插件是一种可以增加或增强程序特定功能的辅助性的程序,通过插件能够提高程序的可重用性、可扩展性和可维护性,以延长程序的生命周期。目前,插件已被广泛应用于各种程序中,最常见的有游戏、播放器、浏览器、编辑器等。
一般一个主程序可以包括多个插件,一些插件之间可以互相注册来实现各种功能。当用户启动主程序时,多个插件会按顺序进行加载。现有技术中,如果后加载的插件需要使用先加载的插件的功能,则会在加载时,直接将后加载的插件中携带的与先加载的插件相关的数据注入到先加载的插件中。
发明内容
根据本申请的一个方面,提供了一种插件加载方法,该方法包括:
当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;
从至少一个第一插件中确定出第三插件包含第一信息时,控制第二插件从第三插件获取第一信息进行加载;
对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
根据本申请的另一个方面,提供了一种插件加载装置,该装置包括:
确定模块,用于当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;
加载模块,用于从至少一个第一插件中确定出第三插件包含第一信息时,控制第二插件从第三插件获取第一信息进行加载;
监听模块,用于对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
根据本申请的又一个方面,提供了一种电子设备,该电子设备包括:
处理器和存储器,存储器存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本申请的插件加载方法。
根据本申请的再一个方面,提供了一种计算机可读存储介质,计算机存储介质存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本申请的插件加载方法。
本申请提供的插件加载方法、装置、电子设备及计算机可读存储介质,在有新的插件启动时,该新启动的插件不仅可以获取到之前已启动的插件包含的相关信息,还可以通过对之后启动的插件进行监听,来主动获取之后启动的插件包含的相关信息,实现当前启动的插件与其他插件之间顺利调用,简化了插件互相加载处理的逻辑复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种插件加载方法的流程示意图;
图2为本申请实施例提供的一个插件加载示例的示意图;
图3为本申请实施例提供的另一个插件加载示例的示意图;
图4为本申请实施例提供的一种插件加载装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面以具体的实施例对本申请的技术方案以及通过本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
本申请实施例中提供了一种插件加载方法,如图1所示,该方法包括:
步骤S101:当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息。
其中,第二插件是指在当前新启动的插件;第一插件是指在当前新启动的插件之前已启动的插件,第一插件的数量可以为一个或多个。第一插件和第二插件中的“第一”、“第二”仅表示对不同状态的插件进行区分,而不能理解为对其数量或顺序的限定。
本申请实施例中,程序可以包括但不限于应用程序、系统程序等。
一些实施例中,可以先检测是否有插件处于启动状态,在确定有至少一个插件处于启动状态时,再对启动的至少一个插件即步骤S101中的至少一个第一插件进行扫描,确定至少一个第一插件中是否包含第一信息。其他实施方式中,也可以采用其他确定方式,例如先获取所有插件中哪个或哪些插件具有供第二插件使用的第一信息,再确定这个或这些插件中处于已启动状态的插件(即第一插件),则所确定的已启动状态的插件(即第一插件)包含第一信息。
步骤S102:从至少一个第一插件中确定出第三插件包含第一信息时,控制第二插件从第三插件获取第一信息进行加载。
其中,第三插件是指第一插件中包含第一信息的插件,可以理解,第一插件是至少一个插件的集合,第三插件属于第一插件的子集。第三插件中的“第三”也仅表示对不同状态的插件进行区分,而不能理解为对其数量或顺序的限定。第三插件的数量也可以为一个或多个。
第一信息是指某个特定插件例如一个第三插件中供第二插件使用的信息和/或数据,能够让第二插件使用该特定插件例如该第三插件对应的功能。可以理解,不同的插件对应的信息是不同的。
一些实施例中,第一信息可以包含第二插件使用该第一信息所属的插件的功能时所需要的信息和/或数据。示例性地,以第一信息所属的插件的功能为右键菜单栏功能为例,第一信息可以包括第二插件所要添加的项目名称、项目功能以及在菜单栏中添加的位置等。对于其他插件,第一信息也可以为其他类型的信息和/或数据。本申请实施例在此不具体限定每个第一信息的类型和内容,本领域技术人员可以根据实际情况进行设置。
与现有的插件加载方式不同,现有技术中,后加载的插件需要使用先加载的插件功能时,相关数据由后加载的插件携带,会在加载时注入到先加载的插件中。而本申请实施例中,第三插件(即先加载的插件)携带了与第二插件(即后加载的插件)相关的第一信息,在第二插件需要使用第三插件的功能时,是从第三插件获取第一信息进行加载,同样实现使用第三插件功能的目的。即本申请实施例中,后加载的插件需要使用先加载的插件功能时,相关数据由先加载插件的携带,后加载的插件在加载时主动从先加载的插件中获取。
本申请实施例中,通过后加载的插件在加载时主动从先加载的插件中获取相关数据进行加载,实现后加载的插件对先加载的插件的顺利调用,与后续先加载的插件对后加载的插件的调用逻辑相匹配,可以降低插件调用的逻辑复杂度。
本申请实施例中,若步骤S101中确定出没有已启动的第一插件,即当前新启动的插件为启动主程序需要加载的所有插件中第一个启动的插件,或者确定出至少一个已启动的第一插件中没有包含供新启动的第二插件使用的第一信息,即当前新启动的插件无法使用每个第一插件的功能,则第二插件无需执行步骤S102,但第二插件仍然可以执行步骤S103。
步骤S103:对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
其中,第二信息是指某个特定插件例如一个第五插件中供第二插件使用的信息和/或数据,能够让第二插件使用该特定插件例如该第五插件对应的功能。一些实施例中,第二信息可以包含第二插件使用该第二信息所属的插件的功能时所需要的信息和/或数据。同第一信息,本申请实施例在此不具体限定每个第二信息的类型和内容,本领域技术人员可以根据实际情况进行设置。
第四插件是指在第二插件之后启动的插件;第五插件是指第四插件中包含第二信息的插件,可以理解,第五插件也属于第四插件。同理地,第四插件和第五插件中的“第四”、“第五”也仅表示对不同状态的插件进行区分,而不能理解为对其数量或顺序的限定。
现有技术中,先加载的插件需要使用后加载的插件的功能时,相关数据由先加载的插件携带,因为在先加载的插件加载时,后加载的插件还未启动,先加载的插件无法在加载时将相关数据注入到后加载的插件中,从而在使用后加载的插件的功能时容易出现数据错误。即采用现有技术第二插件无法正确使用第五插件的功能。而本申请实施例中,后加载的第五插件携带了与第二插件相关的第二信息,第二插件通过监听第四插件、从第四插件中确定包含第二信息的第五插件(例如通过扫描第四插件得到)以及主动获取第五插件中的第二信息,可以顺利实现调用后加载的第五插件的功能。
需要说明的是,上述步骤S101、步骤S103等步骤编号并不构成对步骤先后顺序的限定,即步骤S101和步骤S103的执行顺序可以是没有先后的,例如可以同时执行步骤S101和步骤S103,也即在本申请实施例实现的过程中,对第二插件确定并获取第一信息或第二信息,以及第二插件开启监听两者的执行顺序不做限定。
实际应用中,程序若包含多个插件,在主程序启动时,多个插件会依次进行加载,即不同插件的加载都存在先后顺序。对于本申请实施例,其中的每个插件都可以按照上述方法进行加载,直至所有插件加载完成。
作为示例地,主程序中包括插件A、插件B和插件C,插件A、插件B和插件C需要互相使用彼此的功能,即插件A需要使用插件B和插件C的功能,插件B需要使用插件A和插件C的功能,插件C需要使用插件A和插件B的功能。其中,插件A先进行注册,然后插件B进行注册,最后插件C再进行注册。根据本申请实施例,插件A携带有供插件B使用的信息ba以及供插件C使用的信息ca,插件B携带有供插件A使用的信息ab以及供插件C使用的信息cb,插件C携带有供插件A使用的信息ac以及供插件B使用的信息bc。
具体地,如图2所示,启动主程序时,插件A启动,插件A执行步骤S101发现没有已启动的插件包含可以供其使用的数据;插件A执行步骤S103,对插件B和插件C的启动进行监听。
在插件A加载完成后,插件B启动,插件B执行步骤S101,识别到已启动的插件A携带有供插件B使用的信息ba,则插件B主动从插件A获取信息ba,以实现插件A中与该信息对应的一系列功能,插件B执行步骤S103,监听插件C的启动。
同时,插件A监听到新加载的插件B,并且确定出插件B携带有供插件A使用的信息ab,则插件A主动从插件B中获取供插件A使用的信息ab以实现插件B中与该信息对应的功能。
在插件A和插件B加载完成后,插件C启动,插件C执行步骤S101,识别到已启动的插件A和插件B均携带有供插件C使用的信息(ca和cb),则插件C主动进行获取,以实现插件A和插件B中与相应信息对应的一系列功能。
同时,插件A和插件B均监听到新加载的插件C,并且插件A确定出插件C携带有供插件A使用的信息ac,插件B确定出插件C携带有供插件B使用的信息bc,则插件A主动从插件C中获取供插件A使用的信息ac以实现插件C中与该信息对应的功能,插件B主动从插件C中获取供插件B使用的信息bc以实现插件C中与该信息对应的功能。
可以理解,主程序中还可以包括除插件A、插件B和插件C以外的若干数量的插件,均可按照上述方法进行处理,在此不再赘述。
本申请实施例提供的插件加载方法,在有新的插件启动时,不仅可以获取到之前已启动的插件包含的相关信息,还可以通过对之后启动的插件进行监听,来主动获取之后启动的插件包含的相关信息,实现当前启动的插件与其他插件之间顺利调用,简化了插件互相加载处理的逻辑复杂度,有效避免了主程序中加载插件出现的数据错误。
本申请实施例提供了一种可能的实施方式,第二插件启动后,还可以包括步骤:向至少一个第一插件发送关于第二插件的启动通知。
由上述的介绍可知,每个第一插件在第二插件启动之前,均会开启监听,其中,第二插件的启动属于每个第一插件的监听范围。本申请实施例中,向已启动的至少一个第一插件广播关于第二插件的启动通知,以便每个第一插件可以顺利监听到第二插件的启动,从而确定是否可以使用第二插件的功能。
具体地,第二插件启动时,程序向至少一个第一插件发送关于第二插件的启动通知之后,对于每个第一插件,第一插件确定第二插件中是否包含供第一插件使用的第三信息,若第二插件中包含第三信息,则第一插件从第二插件获取第三信息进行加载。
其中,第三信息是指第二插件中供其他插件使用的信息和/或数据,能够让其他插件使用对应的功能。可以理解,不同的插件对应的信息是不同的。本申请实施例中,第一信息、第二信息和第三信息中的“第一”、“第二”、“第三”仅表示对不同类型的信息进行区分,而不能理解为对其数量或内容的限定。
本申请实施例提供了另一种可能的实施方式,第二插件启动后,还可以包括步骤:第二插件确定第二插件中是否包含供至少一个第一插件使用的第三信息;在确定出第二插件中包含供至少一个第一插件中的第六插件使用的第三信息时,向第六插件发送关于第二插件的启动通知。
其中,第六插件是指第一插件中可以使用第二插件功能的插件,即第二插件中携带了供第六插件使用的第三信息。同理地,第六插件中的“第六”也仅表示对不同状态的插件进行区分,而不能理解为对其数量或顺序的限定。第六插件的数量也可以为一个或多个。
本申请实施例中,先确定出已启动的第一插件中哪些插件可以使用第二插件的功能,即先确定第六插件,继而向第六插件发送关于第二插件的启动通知。以便每个第六插件可以顺利监听到第二插件的启动,从而使用第二插件的功能。
具体地,向第六插件发送关于第二插件的启动通知之后,还包括:控制第六插件从第二插件获取对应的第三信息进行加载。
本申请实施例提供了又一种可能的实施方式,步骤S103可以包括:
监听关于至少一个第四插件的启动通知;
针对每个第四插件,在接收到关于第四插件的启动通知后,确定第四插件中是否包含第二信息;
将包含第二信息的第四插件确定为第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
也就是说,本申请实施例中,后启动的第四插件会向第二插件发送关于第四插件的启动通知,以便第二插件可以顺利监听到第四插件的启动,进而从第四插件确定包含第二信息的第五插件,以便使用第五插件的功能。
一些实施例中,可以预先记录包含第二信息的第四插件(即第五插件)的插件标识(例如插件ID,Identity document,身份标识号)。在监听到关于第四插件的启动通知后,可以通过扫描第四插件的插件标识来确定第四插件中是否包含第二信息。在其他实施例中,也可以采用其他方式来确定第四插件中是否包含第二信息。本领域技术人员可以根据实际情况进行设置,本申请实施例在此不做限定。
结合本申请实施例,继续以上述插件A、插件B和插件C为例,在插件A加载完成后,插件B启动,插件B可以向插件A发送关于插件B的启动通知,以使得插件A监听到新加载的插件B,并且确定出插件B携带有供插件A使用的信息,进而主动从插件B中获取供插件A使用的信息并使用。
在插件A和插件B加载完成后,插件C启动,插件C可以向插件A和插件B均发送关于插件C的启动通知,以使得插件A和插件B均监听到新加载的插件C,并且插件A确定出插件C携带有供插件A使用的信息,插件B确定出插件C携带有供插件B使用的信息,进而插件A主动从插件C中获取供插件A使用的信息并使用,插件B主动从插件C中获取供插件B使用的信息并使用。
图3中示出了结合上述部分实施例的一个加载插件的示例,具体地,主程序启动,插件依次进行加载,每个插件的加载均可执行下述流程:开启监听其他插件的启动;同时确定是否有已启动的插件,若存在已启动的插件,则向每个已启动的插件发送自己的启动通知,同时扫描已启动的插件,确定是否携带供自己使用的相关数据,从识别出的携带供自己使用的数据的插件中获取数据并使用。在后续其他插件启动时,通过后续启动的插件发送的通知监听到它们的启动,扫描后续启动的插件,确定是否携带供自己使用的相关数据,从识别出的携带供自己使用的数据的插件中获取数据并使用。按照相同的流程继续加载其他插件,直到所有插件都启动完毕。
本申请实施例提供的插件加载方法,通过后加载的插件扫描获取先加载的插件的数据,并将自己的启动通知先加载的插件,以及先加载的插件监听、主动扫描并获取后加载的插件中的相关数据等操作,实现一个主程序中插件与插件之间顺利相互调用功能,简化了处理的逻辑复杂度,避免了先加载的插件需要使用未加载的插件的功能时,出现的数据丢失或错误。
本申请实施例提供了一种插件加载装置,如图4所示,该插件加载装置40可以包括:确定模块401、加载模块402以及监听模块403,其中,
确定模块401用于当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;
加载模块402用于从至少一个第一插件中确定出第三插件包含第一信息时,控制第二插件从第三插件获取第一信息进行加载;
监听模块403用于对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
在一种可选的实现方式中,该插件加载装置40还可以包括:通知模块404,其中,
第二插件启动后,通知模块404用于向至少一个第一插件发送关于第二插件的启动通知。
进一步地,通知模块404在用于向向至少一个第一插件发送关于第二插件的启动通知之后,加载模块402还用于:
对于每个第一插件,确定第二插件中是否包含供第一插件使用的第三信息,若第二插件中包含第三信息,则控制第一插件从第二插件获取第三信息进行加载。
在一种可选的实现方式中,第二插件启动后,通知模块404用于:
确定第二插件中是否包含供至少一个第一插件使用的第三信息;
在确定出第二插件中包含供至少一个第一插件中的第六插件使用的第三信息时,向第六插件发送关于第二插件的启动通知。
进一步地,通知模块404在用于向第六插件发送关于第二插件的启动通知之后,加载模块402还用于:
控制第六插件从第二插件获取对应的第三信息进行加载。
在一种可选的实现方式中,监听模块403在对在第二插件之后启动的至少一个第四插件进行监听,以从至少一个第四插件中确定包含供第二插件使用的第二信息的第五插件,并控制第二插件从第五插件中获取第二信息进行使用时,具体用于:
监听关于至少一个第四插件的启动通知;
针对每个第四插件,在接收到关于第四插件的启动通知后,确定第四插件中是否包含第二信息;
将包含第二信息的第四插件确定为第五插件,并控制第二插件从第五插件中获取第二信息进行使用。
在一种可选的实现方式中,确定模块401在用于确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息时,具体用于:
确定至少一个第一插件;
对至少一个第一插件进行扫描,确定至少一个第一插件中是否包含第一信息。
本领域的技术人员可以清楚地了解到,本申请实施例提供的插件加载装置,其实现原理及产生的技术效果和前述方法实施例相同,为描述的方便和简洁,装置实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。
其中,描述本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
作为示例地,本申请实施例提供的插件加载装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该插件加载装置为程序的组件或模块;该装置可以用于执行前述方法实施例中相应内容。
在一些实施例中,本申请实施例提供的插件加载装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的插件加载装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的插件加载方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
基于与本申请的实施例中所示的方法相同的原理,本申请的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机程序;处理器,用于通过调用计算机程序执行本申请任一实施例所示的插件加载方法。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备500包括:处理器501和存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括收发器504,收发器504可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器504不限于一个,该电子设备500的结构并不构成对本申请实施例的限定。
处理器501可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线502可包括一通路,在上述组件之间传送信息。总线502可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器503可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器503用于存储执行本申请方案的程序代码(计算机程序),并由处理器501来控制执行。处理器501用于执行存储器503中存储的程序代码,以实现前述方法实施例所示的内容。
其中,电子设备也可以是终端设备,图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
根据本申请的另一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述方法实施例中相应内容。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解的是,附图中的流程图和框图,图示了按照本申请各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本申请实施例提供的计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种插件加载方法,其特征在于,包括:
当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;
从所述至少一个第一插件中确定出第三插件包含所述第一信息时,控制所述第二插件从所述第三插件获取所述第一信息进行加载;
对在所述第二插件之后启动的至少一个第四插件进行监听,以从所述至少一个第四插件中确定包含供所述第二插件使用的第二信息的第五插件,并控制所述第二插件从所述第五插件中获取所述第二信息进行使用。
2.根据权利要求1所述的插件加载方法,其特征在于,所述第二插件启动后,还包括:
向所述至少一个第一插件发送关于所述第二插件的启动通知。
3.根据权利要求2所述的插件加载方法,其特征在于,所述向所述至少一个第一插件发送关于所述第二插件的启动通知之后,还包括:
对于每个所述第一插件,确定所述第二插件中是否包含供所述第一插件使用的第三信息,若所述第二插件中包含所述第三信息,则控制所述第一插件从所述第二插件获取所述第三信息进行加载。
4.根据权利要求1所述的插件加载方法,其特征在于,所述第二插件启动后,还包括:
确定所述第二插件中是否包含供所述至少一个第一插件使用的第三信息;
在确定出所述第二插件中包含供所述至少一个第一插件中的第六插件使用的第三信息时,向所述第六插件发送关于所述第二插件的启动通知。
5.根据权利要求4所述的插件加载方法,其特征在于,向所述第六插件发送关于所述第二插件的启动通知之后,还包括:
控制所述第六插件从所述第二插件获取对应的所述第三信息进行加载。
6.根据权利要求1所述的插件加载方法,其特征在于,所述对在所述第二插件之后启动的至少一个第四插件进行监听,以从所述至少一个第四插件中确定包含供所述第二插件使用的第二信息的第五插件,并控制所述第二插件从所述第五插件中获取所述第二信息进行使用,包括:
监听关于所述至少一个第四插件的启动通知;
针对每个所述第四插件,在接收到关于所述第四插件的启动通知后,确定所述第四插件中是否包含所述第二信息;
将包含所述第二信息的所述第四插件确定为第五插件,并控制所述第二插件从所述第五插件中获取所述第二信息进行使用。
7.根据权利要求1所述的插件加载方法,其特征在于,所述确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息,包括:
确定所述至少一个第一插件;
对所述至少一个第一插件进行扫描,确定所述至少一个第一插件中是否包含所述第一信息。
8.一种插件加载装置,其特征在于,包括:
确定模块,用于当包含多个插件的程序中有插件启动时,确定已启动的至少一个第一插件中是否包含供新启动的第二插件使用的第一信息;
加载模块,用于从所述至少一个第一插件中确定出第三插件包含所述第一信息时,控制所述第二插件从所述第三插件获取所述第一信息进行加载;
监听模块,用于对在所述第二插件之后启动的至少一个第四插件进行监听,以从所述至少一个第四插件中确定包含供所述第二插件使用的第二信息的第五插件,并控制所述第二插件从所述第五插件中获取所述第二信息进行使用。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现权利要求1至7任一所述的插件加载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现权利要求1至7任一所述的插件加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962470.6A CN113656106B (zh) | 2021-08-20 | 2021-08-20 | 插件加载方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962470.6A CN113656106B (zh) | 2021-08-20 | 2021-08-20 | 插件加载方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656106A true CN113656106A (zh) | 2021-11-16 |
CN113656106B CN113656106B (zh) | 2023-11-10 |
Family
ID=78491972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962470.6A Active CN113656106B (zh) | 2021-08-20 | 2021-08-20 | 插件加载方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656106B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156663A (zh) * | 2011-03-22 | 2011-08-17 | 北京书生国际信息技术有限公司 | 一种实现插件的方法和装置 |
WO2013006226A1 (en) * | 2011-07-01 | 2013-01-10 | Exxonmobil Upstream Research Company | Plug-in installer framework |
CN109684115A (zh) * | 2019-01-08 | 2019-04-26 | 深圳市网心科技有限公司 | 一种应用于插件间的通信方法及相关设备 |
CN111506366A (zh) * | 2020-04-17 | 2020-08-07 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
-
2021
- 2021-08-20 CN CN202110962470.6A patent/CN113656106B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156663A (zh) * | 2011-03-22 | 2011-08-17 | 北京书生国际信息技术有限公司 | 一种实现插件的方法和装置 |
WO2013006226A1 (en) * | 2011-07-01 | 2013-01-10 | Exxonmobil Upstream Research Company | Plug-in installer framework |
CN109684115A (zh) * | 2019-01-08 | 2019-04-26 | 深圳市网心科技有限公司 | 一种应用于插件间的通信方法及相关设备 |
CN111506366A (zh) * | 2020-04-17 | 2020-08-07 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113656106B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109496418B (zh) | 文件下载方法、装置及设备/终端/服务器 | |
CN109814524B (zh) | 一种车辆诊断方法、装置及系统 | |
CN113490192B (zh) | 蓝牙连接方法、装置、终端设备及可读存储介质 | |
CN112996020B (zh) | 一种基于蓝牙的自动化测试方法、装置及蓝牙测试终端 | |
CN114465998B (zh) | 多设备的文件传输方法、装置、终端设备及可读存储介质 | |
CN111461886B (zh) | 区块链上不依赖智能合约的系统配置的管理方法和装置 | |
CN116016653A (zh) | 区块链的信息推送方法、装置、电子设备和存储介质 | |
CN106874020B (zh) | 启动插件的方法及装置 | |
KR102705465B1 (ko) | 이상 처리 방법, 단말 기기 및 저장 매체 | |
CN112087475A (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN112199272B (zh) | 一种智能终端的测试方法、装置、终端设备及介质 | |
CN113656106A (zh) | 插件加载方法、装置、电子设备及计算机可读存储介质 | |
CN110275701B (zh) | 数据处理方法、装置、介质和计算设备 | |
CN106203087B (zh) | 注入防护方法、系统、终端以及存储介质 | |
CN108959915B (zh) | 一种rootkit检测方法、装置及服务器 | |
CN108965108B (zh) | 一种消息推送方法及相关设备 | |
CN113176931B (zh) | 任务流处理方法、装置、存储介质及电子设备 | |
CN113779021B (zh) | 数据处理方法、装置、计算机系统及可读存储介质 | |
CN109800567B (zh) | 监听前台应用启动的方法及装置、终端设备 | |
CN110888686B (zh) | 应用程序启动方法、设备和存储介质 | |
CN114564286A (zh) | 一种规则引擎告警方法及规则引擎告警系统 | |
CN114706697A (zh) | 消息订阅事件的处理方法、装置、设备、介质及程序产品 | |
CN109669679B (zh) | 服务检测及处理方法、装置及电子设备 | |
CN113297149A (zh) | 数据处理请求的监测方法及装置 | |
CN111625811A (zh) | 数据授权方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |