启动插件的方法及装置与流程

文档序号:12718903阅读:536来源:国知局
启动插件的方法及装置与流程

本发明涉及计算机领域,尤其涉及一种启动插件的方法及装置。



背景技术:

宿主程序是用于供插件运行的载体,同时也指定了插件的接入规范。插件是一种程序模块,即是指符合服务平台的接入规范,能够运行于服务平台的,并且非服务平台本身所必须的功能或者业务模块。

现有技术中,插件与宿主程序可以运行于不同的进程中,即插件可以运行于插件进程中,宿主程序可以运行于主进程中。为了避免在宿主程序启动时,需要加载所有的插件而导致内存占用较大,提出了一种启动插件的方法:运行插件内核管理器,将插件描述文件存储的调用插件所需信息在所述插件内核管理器内进行注册;调用插件时,根据所述插件在所述插件内核管理器内的注册信息加载相关插件。

上述现有技术方案通过插件内核管理器来管理插件的相关信息,只有在实际需要插件时才将插件加载到内存中,这样就减小了内存的开销,提高了计算机内存的使用效率。但是,现有技术中在实际运行时,需要选择待调用的插件,之后启动该插件对应的插件进程,并在该插件进程启动完毕之后,再加载该插件,存在插件启动较慢的问题。



技术实现要素:

本发明提供一种启动插件的方法及装置,用以解决现有技术中插件启动较慢的问题。

本发明提供一种启动插件的方法,包括:

主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;

所述主进程在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。

在本发明一实施例中,所述主进程启动所述插件进程,包括:

所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,所述通知消息用于指示启动所述插件进程;

所述主进程的第二线程根据所述通知消息启动所述插件进程。

在本发明一实施例中,所述通知消息为广播消息;

所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,包括:

所述主进程的第一线程向多个线程发送所述广播消息,所述多个线程分别与多个插件进程对应,所述多个线程包括所述第二线程。

在本发明一实施例中,所述主进程在调用所述插件时,将所述插件加载到所述插件进程之前,还包括:所述主进程根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件。

在本发明一实施例中,所述主进程在调用所述插件时,将所述插件加载到所述插件进程,包括:

所述主进程在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程。

本发明提供一种启动插件的装置,所述装置应用于主进程,所述装置包括:

第一处理模块,用于在确定需要调用插件进程对应的插件之前,启动所述插件进程;

第二处理模块,用于在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。

在本发明一实施例中,所述第一处理模块包括第一线程处理模块和第二线程处理模块;其中,

所述第一线程处理模块,用于向所述插件进程对应的所述第二线程处理模块发送通知消息,所述通知消息用于指示启动所述插件进程;

所述第二线程处理模块,用于根据所述通知消息启动所述插件进程。

在本发明一实施例中,所述通知消息为广播消息;

所述第一线程处理模块,具体用于:向多个线程处理模块发送所述广播消息,所述多个线程处理模块分别与多个插件进程对应,所述多个线程处理 模块包括所述第二线程处理模块。

在本发明一实施例中,所述装置还包括:第三处理模块,用于根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件。

在本发明一实施例中,所述第二处理模块,具体用于在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程。

本发明提供一种启动插件的方法及装置;通过主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;使得在主进程调用所述插件进程对应的插件时,不需要执行启动所述插件进程的操作;因此,减少了插件启动的时间。

附图说明

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

图1为本发明启动插件的方法实施例一的流程图;

图2为本发明启动插件的方法实施例二的流程图;

图3为本发明启动插件的装置实施例一的结构示意图;

图4为本发明启动插件的装置实施例二的结构示意图。

具体实施方式

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

图1为本发明启动插件的方法实施例一的流程图;如图1所示,本实施例的方法可以包括:

步骤101、主进程在确定需要调用插件进程对应的插件之前,启动所 述插件进程;

步骤102、所述主进程在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。

现有技术中,主进程在调用一插件进程对应的插件时,启动该插件进程、将该插件加载到该插件进程,以使该插件运行在该插件进程中,从而完成该插件的启动。本发明中,主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;所述主进程在调用所述插件进程时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。

现有技术中,由于主进程在调用一插件进程对应的插件时,才启动该插件进程,并在启动该插件进程之后才加载插件,从而完成插件的启动;而启动插件进程需要一定的时间,因此存在插件启动较慢的问题。本发明中,通过主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;使得在主进程调用所述插件进程对应的插件时,不需要执行启动所述插件进程的操作;因此,减少了插件启动的时间。

图2为本发明启动插件的方法实施例二的流程图;如图2所示,本实施例的方法可以包括:

步骤201、主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;

可选的,步骤201具体可以为:所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,所述通知消息用于指示启动所述插件进程;

所述主进程的第二线程根据所述通知消息启动所述插件进程。

可选的,所述通知消息可以为广播消息;

相应的,所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,包括:

所述主进程的第一线程向多个线程发送所述广播消息,所述多个线程分别与多个插件进程对应,所述多个线程包括所述第二线程。

其中,所述广播消息的内容可以为空,即仅通过所述广播消息的消息头进行指示。

可选的,所述主进程可以确定需要调用插件进程对应的插件之前的任何 时间点启动所述插件进程;例如,可以在所述主进程初始化之后,立即启动所述插件进程;或者,在所述主进程的初始化过程中启动所述插件进行。

步骤202、所述主进程根据用户输入,确定需要进行跳转处理;

需要说明的是,所述跳转处理的可以由插件进程进行(也即,由主进程跳转至插件进程),或者也可以由主进程进行(也即,在主进程内进行跳转处理)。

步骤203、所述主进程判断所述跳转处理是否由插件进程进行;

若是,则执行步骤204;否则,执行步骤206。

步骤204、所述主进程确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件;

进一步可选的,步骤201、步骤202或步骤203之前,还可以包括:所述主进程建立所述插件入口与所述插件的标识的对应关系。

可选的,所述插件可以与业务线一一对应;这里的所说的业务线可以根据应用场景进行划分,例如可以为二手房交易业务线、购买商品业务线、发布招聘信息业务线等。

步骤205、所述主进程在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程;

可选的,所述插件具体可以为一个处理类;所述调用所述插件,具体可以为执行所述处理类。

可选的,所述插件的功能可以为显示对应业务线的界面。可选的,所述插件可以通过代理页面完成业务线的真实页面的展示。

需要说明的是,当所述插件加载到所述插件进程之后,所述插件进程可以运行所述插件,即完成所述主进行对所述插件的调用。

需要说明的是,步骤205执行完后,不再执行步骤206。

步骤206、所述主进程在所述主进程内进行跳转处理。

本实施例中,通过主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;所述主进程根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件;所述主进程在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程;使得在主进程调用所述插件进程对应的插件时,不需要执行启动所述插件进 程的操作;因此,减少了插件启动的时间。同时,通过主进程在调用所述插件时,对所述插件进行初始化,与在应用程序启动开始对插件的初始化相比,减少了应用程序的启动时间。

图3为本发明启动插件的装置实施例一的结构示意图;本实施例的装置可以应用于主进程,如图3所示,本实施例的装置可以包括:第一处理模块301和第二处理模块302。其中,第一处理模块301,用于在确定需要调用插件进程对应的插件之前,启动所述插件进程;第二处理模块302,用于在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图4为本发明启动插件的装置实施例二的结构示意图;本实施例的装置在图3所示装置结构的基础上,进一步的,第一处理模块301可以包括:第一线程处理模块3011和第二线程处理模块3012。其中,第一线程处理模块3011,用于向所述插件进程对应的第二线程处理模块3012发送通知消息,所述通知消息用于指示启动所述插件进程;第二线程处理模块3012,用于根据所述通知消息启动所述插件进程。

可选的,所述通知消息为广播消息;

第一线程处理模块3011,具体用于:向多个线程处理模块发送所述广播消息,所述多个线程处理模块分别与多个插件进程对应,所述多个线程处理模块包括第二线程处理模块3012。

可选的,本实施例的装置还包括:第三处理模块303,用于根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件。

可选的,第二处理模块302,具体用于在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程。

本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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