CN106874020A - 启动插件的方法及装置 - Google Patents

启动插件的方法及装置 Download PDF

Info

Publication number
CN106874020A
CN106874020A CN201510922708.7A CN201510922708A CN106874020A CN 106874020 A CN106874020 A CN 106874020A CN 201510922708 A CN201510922708 A CN 201510922708A CN 106874020 A CN106874020 A CN 106874020A
Authority
CN
China
Prior art keywords
plug
unit
thread
host
notification message
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
Application number
CN201510922708.7A
Other languages
English (en)
Other versions
CN106874020B (zh
Inventor
李晓梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201510922708.7A priority Critical patent/CN106874020B/zh
Publication of CN106874020A publication Critical patent/CN106874020A/zh
Application granted granted Critical
Publication of CN106874020B publication Critical patent/CN106874020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-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为本发明启动插件的装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图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、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种启动插件的方法,其特征在于,包括:
主进程在确定需要调用插件进程对应的插件之前,启动所述插件进程;
所述主进程在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。
2.根据权利要求1所述的方法,其特征在于,所述主进程启动所述插件进程,包括:
所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,所述通知消息用于指示启动所述插件进程;
所述主进程的第二线程根据所述通知消息启动所述插件进程。
3.根据权利要求2所述的方法,其特征在于,所述通知消息为广播消息;
所述主进程的第一线程向所述插件进程对应的所述主进程的第二线程发送通知消息,包括:
所述主进程的第一线程向多个线程发送所述广播消息,所述多个线程分别与多个插件进程对应,所述多个线程包括所述第二线程。
4.根据权利要求1所述的方法,其特征在于,所述主进程在调用所述插件时,将所述插件加载到所述插件进程之前,还包括:所述主进程根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述主进程在调用所述插件时,将所述插件加载到所述插件进程,包括:
所述主进程在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程。
6.一种启动插件的装置,其特征在于,所述装置应用于主进程,所述装置包括:
第一处理模块,用于在确定需要调用插件进程对应的插件之前,启动所述插件进程;
第二处理模块,用于在调用所述插件时,将所述插件加载到所述插件进程,以使所述插件进程运行所述插件。
7.根据权利要求6所述的装置,其特征在于,所述第一处理模块包括第一线程处理模块和第二线程处理模块;其中,
所述第一线程处理模块,用于向所述插件进程对应的所述第二线程处理模块发送通知消息,所述通知消息用于指示启动所述插件进程;
所述第二线程处理模块,用于根据所述通知消息启动所述插件进程。
8.根据权利要求7所述的装置,其特征在于,所述通知消息为广播消息;
所述第一线程处理模块,具体用于:向多个线程处理模块发送所述广播消息,所述多个线程处理模块分别与多个插件进程对应,所述多个线程处理模块包括所述第二线程处理模块。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:第三处理模块,用于根据用户输入,确定所述用户选择所述插件对应的插件入口,并根据所述插件入口确定调用所述插件。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述第二处理模块,具体用于在调用所述插件时,对所述插件进行初始化,并将所述插件加载到所述插件进程。
CN201510922708.7A 2015-12-10 2015-12-10 启动插件的方法及装置 Active CN106874020B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510922708.7A CN106874020B (zh) 2015-12-10 2015-12-10 启动插件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510922708.7A CN106874020B (zh) 2015-12-10 2015-12-10 启动插件的方法及装置

Publications (2)

Publication Number Publication Date
CN106874020A true CN106874020A (zh) 2017-06-20
CN106874020B CN106874020B (zh) 2021-02-02

Family

ID=59177385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510922708.7A Active CN106874020B (zh) 2015-12-10 2015-12-10 启动插件的方法及装置

Country Status (1)

Country Link
CN (1) CN106874020B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019071678A1 (zh) * 2017-10-09 2019-04-18 武汉斗鱼网络科技有限公司 一种直播的方法和装置
CN110888690A (zh) * 2019-12-12 2020-03-17 北京爱奇艺科技有限公司 一种应用启动方法、装置、电子设备及存储介质
CN112068902A (zh) * 2020-09-10 2020-12-11 北京五八信息技术有限公司 一种插件调用方法、装置、电子设备及存储介质
WO2021057411A1 (zh) * 2019-09-29 2021-04-01 华为技术有限公司 一种组件加载方法、装置及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001018672A2 (en) * 1999-09-07 2001-03-15 Proficiency Ltd. Pattern matching for data exchange between computer aided design systems
CN101610316A (zh) * 2009-07-24 2009-12-23 中兴通讯股份有限公司 手机应用程序的启动方法、装置和系统
CN101996095A (zh) * 2009-08-26 2011-03-30 阿里巴巴集团控股有限公司 插件接入即时通讯程序的方法和装置
CN103618662A (zh) * 2013-11-22 2014-03-05 奇智软件(北京)有限公司 一种实现即时通讯的方法和装置
CN103677823A (zh) * 2013-12-06 2014-03-26 北京奇虎科技有限公司 一种浏览器插件的管理方法和装置
CN103777933A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 显示进程信息的方法及装置
CN103885875A (zh) * 2012-12-21 2014-06-25 中国银联股份有限公司 脚本验证装置及方法
CN104216738A (zh) * 2014-08-20 2014-12-17 北京奇艺世纪科技有限公司 一种应用程序的运行方法及装置
CN104317605A (zh) * 2014-11-18 2015-01-28 东方网力科技股份有限公司 一种组件运行方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001018672A2 (en) * 1999-09-07 2001-03-15 Proficiency Ltd. Pattern matching for data exchange between computer aided design systems
CN101610316A (zh) * 2009-07-24 2009-12-23 中兴通讯股份有限公司 手机应用程序的启动方法、装置和系统
CN101996095A (zh) * 2009-08-26 2011-03-30 阿里巴巴集团控股有限公司 插件接入即时通讯程序的方法和装置
CN103777933A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 显示进程信息的方法及装置
CN103885875A (zh) * 2012-12-21 2014-06-25 中国银联股份有限公司 脚本验证装置及方法
CN103618662A (zh) * 2013-11-22 2014-03-05 奇智软件(北京)有限公司 一种实现即时通讯的方法和装置
CN103677823A (zh) * 2013-12-06 2014-03-26 北京奇虎科技有限公司 一种浏览器插件的管理方法和装置
CN104216738A (zh) * 2014-08-20 2014-12-17 北京奇艺世纪科技有限公司 一种应用程序的运行方法及装置
CN104317605A (zh) * 2014-11-18 2015-01-28 东方网力科技股份有限公司 一种组件运行方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019071678A1 (zh) * 2017-10-09 2019-04-18 武汉斗鱼网络科技有限公司 一种直播的方法和装置
WO2021057411A1 (zh) * 2019-09-29 2021-04-01 华为技术有限公司 一种组件加载方法、装置及系统
CN110888690A (zh) * 2019-12-12 2020-03-17 北京爱奇艺科技有限公司 一种应用启动方法、装置、电子设备及存储介质
CN112068902A (zh) * 2020-09-10 2020-12-11 北京五八信息技术有限公司 一种插件调用方法、装置、电子设备及存储介质
CN112068902B (zh) * 2020-09-10 2021-07-30 北京五八信息技术有限公司 一种插件调用方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN106874020B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
KR101971389B1 (ko) 연합 기반 메모리 관리
CN106874020A (zh) 启动插件的方法及装置
CN104765623A (zh) 一种实现多操作系统的数据处理方法及终端设备
CN106331178B (zh) 一种信息共享方法及移动终端
CN107480893A (zh) 一种流程编排方法及装置
CN105630478A (zh) 一种实现页面切换的方法和装置
CN110851246A (zh) 一种批量任务处理方法、装置、系统及存储介质
CN111143331B (zh) 数据迁移方法、装置及计算机存储介质
CN110716714B (zh) 组件创建方法、装置、计算机系统和计算机可读存储介质
CN105975637A (zh) 一种页面加载的显示方法及装置
US10521499B2 (en) Method and device for editing data
TW201732587A (zh) 應用app的資源載入方法、業務功能實現方法及裝置
CN109213429B (zh) 存储管理方法和设备
CN107807831A (zh) 应用程序中的业务执行方法、装置、终端及存储介质
US8117574B2 (en) Implementing a serialization construct within an environment of parallel data flow graphs
CN107391272A (zh) 多进程数据交互的方法和终端
CN111338803B (zh) 一种线程处理方法和装置
CN107346198A (zh) 应用程序的启动方法及装置
CN102542525B (zh) 一种信息处理设备以及信息处理方法
US10466974B2 (en) Independent expression animations
CN111352360A (zh) 机器人的控制方法、装置、机器人及计算机存储介质
CN103606175B (zh) 一种地图热点图标的显示方法及控制器
EP3139266A1 (en) Apparatus and method for providing information in electronic device
CN108984426B (zh) 用于处理数据的方法和装置
CN105138380A (zh) 一种Linux系统的启动方法及装置

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