CN112162795B - 一种插件启动方法、装置、计算机设备和存储介质 - Google Patents

一种插件启动方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112162795B
CN112162795B CN202011073200.1A CN202011073200A CN112162795B CN 112162795 B CN112162795 B CN 112162795B CN 202011073200 A CN202011073200 A CN 202011073200A CN 112162795 B CN112162795 B CN 112162795B
Authority
CN
China
Prior art keywords
plug
target
resource file
plugin
starting
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.)
Active
Application number
CN202011073200.1A
Other languages
English (en)
Other versions
CN112162795A (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.)
Guangzhou Boguan Information Technology Co Ltd
Original Assignee
Guangzhou Boguan 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 Guangzhou Boguan Information Technology Co Ltd filed Critical Guangzhou Boguan Information Technology Co Ltd
Priority to CN202011073200.1A priority Critical patent/CN112162795B/zh
Publication of CN112162795A publication Critical patent/CN112162795A/zh
Application granted granted Critical
Publication of CN112162795B publication Critical patent/CN112162795B/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种插件启动方法、装置、计算机设备和存储介质,当满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;基于该指示信息和宿主应用程序的已安装插件信息,确定宿主应用程序需要安装的目标插件;下载目标插件的最新版本的插件资源文件;当满足插件预安装条件时,基于插件资源文件对目标插件进行安装;当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件,由此,可提前下载插件资源文件,进行插件的安装,将插件启动过程中耗时的一部分操作提前完成,当需要启动插件时,可以不用执行安装操作,可有效降低插件首次启动所需时间,提升首次启动速度。

Description

一种插件启动方法、装置、计算机设备和存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种插件启动方法、装置、计算机设备和存储介质。
背景技术
相关技术中,当应用程序中需要增加新的功能模块时,若功能模块的体积过大,则需要对功能模块进行插件化瘦身。
终端使用的插件框架中,一般会把插件资源文件打包到宿主应用程序的assets目录中,然后在需要启动插件时,执行对插件的启动,该启动包括坨解压和各种拷贝逻辑等等,一个插件从插件资源文件到完成插件的启动用时是很长的,尤其是插件的初次启动会耗费很长的时间,导致用户体验十分不好。
发明内容
本发明实施例提供一种插件启动方法、装置、计算机设备和存储介质,可以对终端中插件的插件资源文件进行一定的预处理,使得初次启动插件时耗时较短,速度较快。
本发明实施例提供一种插件启动方法,该插件启动方法包括:
当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
当检测到针对目标插件的启动指令时,基于所述目标插件的插件资源文件启动已安装的所述目标插件。
本发明实施例提供一种插件启动装置,该插件启动装置包括:
插件更新检查单元,用于当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
目标插件确定单元,用于基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
插件下载单元,用于基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
预安装单元,用于当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
插件启动单元,用于当检测到针对目标插件的启动指令时,基于所述目标插件的插件资源文件启动已安装的所述目标插件。
在一个可选的示例中,该装置还包括,标识检测单元,用于检测所述终端是否设置有插件预安装标识,所述插件预安装标识用于指示所述终端在插件的插件资源文件下载后进行插件安装;
若标识检测单元的检测结果为是,则触发所述预安装单元执行所述当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装的步骤。
在一个可选的示例中,目标插件确定单元,用于:
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装信息,确定所述可用插件中所述宿主应用程序未安装的第一插件,以及所述可用插件中,所述宿主应用程序已安装的第二插件,其中,所述宿主应用程序中安装的第二插件的版本不是最新版本;
将所述可用插件中的所述第一插件和第二插件,确定为需要安装的目标插件。
在一个可选的示例中,预安装单元包括第一预安装子单元,若所述目标插件为第一插件,第一预安装子单元,用于在所述目标插件的插件资源文件下载完成后,调用插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,第一预安装子单元,用于:
在所述目标插件的插件资源文件下载完成后,从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件确定为插件预安装组件;
通过所述插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述装置还包括第一存储单元,用于在基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件后,将所述插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下,其中,所述插件子目录下的文件用于供所述插件启动组件执行插件的启动;
第一预安装子单元,用于基于所述插件预安装组件,从所述插件子目录下读取所述目标插件的插件资源文件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,预安装单元包括第二预安装子单元,第二预安装子单元,用于若所述目标插件为第二插件,在所述目标插件的插件资源文件下载完成后,对所述目标插件的插件资源文件进行存储;当检测到所述宿主应用程序启动时,基于所述目标插件的插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述第二预安装子单元,用于:
在所述目标插件的插件资源文件下载完成后,将所述目标插件的插件资源文件存储到所述宿主应用程序的更新资源目录下;
当检测到所述宿主应用程序启动时,将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下;
调用插件预安装组件,基于所述插件子目录下所述目标插件的插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述第二预安装子单元,用于:
从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件作为插件预安装组件;
通过所述插件预安装组件,基于所述插件子目录下的所述目标插件的插件资源文件对所述目标插件进行安装,其中,所述插件子目录中的文件用于供所述插件启动组件执行插件的启动。
在一个可选的示例中,所述第二预安装子单元,用于:当检测到所述宿主应用程序启动时,在将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下前,从所述服务器中获取所述宿主应用程序的可用插件的最新版本指示信息;
若所述更新资源目录下所述目标插件的插件资源文件的版本,不低于所述最新版本指示信息中所述目标插件的版本,则继续执行将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下的步骤;
否则,基于所述最新版本指示信息从所述服务器下载所述目标插件的最新版本的插件资源文件,将所述最新版本的插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下。
在一个可选的示例中,插件更新检查单元,用于:
当检测到宿主应用程序启动时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息。
在一个可选的示例中,插件启动单元,用于:
当检测到针对所述目标插件的启动指令时,调用所述终端的插件启动组件中除了插件安装子组件之外的其他子组件;
控制所述其他子组件基于所述插件资源文件,按照所述插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的所述目标插件。
本发明实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本发明实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上所述方法的步骤。
本发明实施例提供了一种插件启动方法、装置、计算机设备和存储介质,当满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中宿主应用程序需要安装的目标插件;基于目标插件的最新版本指示信息,从服务器中下载目标插件的最新版本的插件资源文件;当满足插件预安装条件时,基于插件资源文件对目标插件进行安装;当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件,由此,可以在需要启动插件前就下载其资源文件,并且在下载之后,还可以进行插件的安装,将插件启动过程中耗时的一部分操作提前完成,当需要启动插件时,可以不用执行安装操作,可以有效降低插件首次启动所需时间,提升插件首次启动的速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的插件启动方法的场景示意图;
图2a是本发明实施例提供的一种插件启动方法的流程图;
图2b是本发明实施例提供的插件的资源配置页面的示意图;
图2c是本发明实施例提供的插件资源文件上传至服务器后,服务器针对插件资源文件生成的信息的示意图;
图3是本发明实施例中第一插件的插件启动方法的流程图;
图4是本发明实施例中第二插件的插件启动方法的流程图;
图5是本发明实施例提供的一种插件启动装置的结构示意图;
图6是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种插件启动方法、装置、计算机设备和存储介质。具体地,本实施例提供适用于插件启动装置的插件启动方法,该插件启动装置可以集成在计算机设备中。该计算机设备可以为终端等设备,例如可以为手机、平板电脑、笔记本电脑、台式电脑等。
本实施例中,终端中需要的插件资源文件,可以从服务器中下载,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
本实施例的插件启动方法,可以由终端和服务器共同实现。
参考图1,本发明实施例提供的插件启动系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,终端10中可以集成宿主应用程序。
服务器20中可以存储有其服务的宿主应用程序所需插件的插件资源文件,版本指示信息等等。
终端10,可以用于当满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中宿主应用程序需要安装的目标插件;基于目标插件的最新版本指示信息,下载目标插件的最新版本的插件资源文件;当满足插件预安装条件时,基于插件资源文件对目标插件进行安装;当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本发明实施例将从插件启动装置的角度进行描述,该插件启动装置具体可以集成在终端中。
本发明实施例提供了一种插件启动方法,如图2a所示,本实施例的插件启动方法的流程可以如下:
201、当满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;
本实施例的插件更新检查条件,可以由宿主应用程序的服务器下发,也可以由用户在终端上进行设置,本实施例对此没有限制。
其中,不同的宿主应用程序的该插件更新检查条件可以不同,在一个示例中,插件更新检查条件包括但不限于:宿主应用程序启动,到达预设的插件更新检查时刻,接收到服务器发送的插件更新检查指令,接收到用户通过终端触发的插件更新指令等等。
可选的,步骤201可以包括:当检测到宿主应用程序启动时,从服务器获取宿主应用程序的可用插件的最新版本指示信息。
本实施例中,插件使用的插件系统不限,可以是任意的插件系统,例如Shadow插件框架,Shadow是一个开源的Android插件框架。具有零反射无Hack实现、全动态、宿主增量极小等特点。
本实施例中,当插件生产者生产出新版本的插件后,可以将该插件的插件资源文件转换为服务端资源,即将该插件的插件资源文件传输到服务器中存储,终端需要下载资源时,可以从服务器中获取插件的插件资源文件。
本实施例中,为目标宿主应用程序提供服务的服务器,可以向插件生产者提供后台资源管理基础功能,插件生产者可以通过该功能,将生产的插件传输至服务器。
可选的,本实施例中,将插件资源转换为服务端资源的步骤包括:当检测到插件资源文件上传请求时,显示资源配置页面,资源配置页面包括插件资源文件的基础配置控件,基础配置控件可以用于设置插件资源文件的属性信息,该基础配置控件包括但不限于:资源类型设置控件,客户端类型设置控件,产品标识设置控件,以及插件资源文件传输控件;
当检测到针对源类型设置控件的资源类型设置操作时,确定待上传的插件资源文件的资源类型;
当检测到针对客户端类型设置控件的客户端类型设置操作时,确定待上传的插件资源文件的终端操作系统;
当检测到针对产品标识设置控件的产品标识设置操作时,确定待上传的插件资源文件的产品标识;
当检测到针对插件资源文件传输控件的文件上传操作时,从本地获取待上传的插件资源文件;
当检测到针对待上传的插件资源文件的确定上传操作时,将插件资源文件,以及插件资源文件的已设置的属性信息传输至服务器。
服务器接收插件资源文件和其属性信息后,可以保存插件资源文件,并生成其文件名称(参见图2c所示),资源地址(参见图2c所示),文件内容验证信息(如MD5值,参见图2c所示)等等。
上述的产品标识可以用于确定插件资源文件对应的插件所属的宿主应用程序。
其中,资源配置页面可以如图2b所示,该页面可以是服务器基于资源配置功能提供的上传插件资源文件的页面。用户可以根据图2b所示的页面,选好客户端(android)、adapt_key(产品标识,例如对于XX新闻应用程序的插件,用到的产品标识为com.netease.newsreader.activity)、资源文件(插件资源文件),然后将插件资源文件传输到服务器。
本实施例中,服务器还具有对其上的插件资源文件进行更新检查的功能,该功能是服务器的内部静态资源管理的一个基础服务,能够根据app_version(版本信息)、os_type(譬如:android)、adapt_key(产品标识,譬如:XX新闻应用程序,产品标识为com.netease.newsreader.activity)查询到最新版本的资源信息。
本实施例中,步骤“从服务器获取宿主应用程序的可用插件的最新版本指示信息”,可以包括:
通过服务器的资源更新接口,从服务器中获取宿主应用程序的可用插件的最新版本指示信息。
其中,该资源更新接口resource_to_update,是服务器的插件资源文件更新检查功能对外部设备(如用户终端等)提供的接口。
本实施例中,宿主应用程序的可用插件可以理解为宿主应用程序可以调用的插件。可选的,终端可以通过服务器的资源更新接口发送插件资源更新检查请求,该请求中可以携带终端的宿主应用程序的应用程序信息,该应用程序信息中可以包括应用程序的应用标识(如应用名称等),版本信息等等。
服务器可以基于插件资源更新检查请求,确定宿主应用程序的可用插件的最新版本指示信息,并向终端发送该信息。
本实施例中,最新版本指示信息,可以包括插件的最新版本的插件资源文件的信息,例如插件名称,插件的下载地址如URL(Uniform Resource Locator,统一资源定位符),插件的内容验证信息如MD5值等等。
可以想到的是,当采用插件进行宿主应用程序的功能扩展时,若某个插件业务代码发生变化,例如插件功能变化,插件修改BUG等等,可以不对宿主应用程序进行版本更新,只要将更新后的插件资源文件上传到服务器中,然后终端就可以在满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息,对该插件进行下载和更新,由此,实现插件的动态化。
202、基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中宿主应用程序需要安装的目标插件;
其中,宿主应用程序的已安装插件信息,可以包括已安装插件的任意信息,例如已安装插件的版本信息,下载地址,MD5值等等,只要任意一种信息和最新版本指示信息中,该已安装插件的信息不同,则可以确定该已安装插件是终端需要更新的插件,即需要重新安装最新版本的插件。
另外,若最新版本指示信息指示的插件不属于已安装插件,则可以确定该插件也是终端需要安装的插件。
可选的,步骤202可以包括:基于最新版本指示信息,和当前终端中宿主应用程序的已安装信息,确定可用插件中宿主应用程序未安装的第一插件,以及可用插件中,宿主应用程序已安装的第二插件,其中,宿主应用程序中安装的第二插件的版本不是最新版本;
将可用插件中的第一插件和第二插件,确定为需要安装的目标插件。
203、基于目标插件的最新版本指示信息,下载目标插件的最新版本的插件资源文件;
本实施例中,目标插件的最新版本指示信息中包括目标插件的下载地址URL,步骤203具体可以包括:基于目标插件的最新版本指示信息中的下载地址,下载目标插件的最新版本的插件资源文件。
其中,可以理解的是,插件的插件资源文件可以存储在上述的服务器中,也可以通过服务器被存储到其他存储设备中,本实施例对此没有限制。
本实施例中,在下载插件资源文件前,还包括
检测终端的已连接网络中是否包含预设网络;
若包含,则通过预设网络基于目标插件的最新版本指示信息,下载目标插件的最新版本的插件资源文件;
否则,暂时不下载插件资源文件,继续检测终端的已连接网络中是否包含预设网络,当包含预设网络时,通过预设网络基于目标插件的最新版本指示信息,下载目标插件的最新版本的插件资源文件。
该预设网络可以由用户设置,或由终端默认设置,例如可以是WIFi网络,或者特定运营商网络。
本实施例中,在下载插件资源文件后,可以对插件资源文件进行解压处理得到解压后文件,基于解压后文件的内容,生成插件资源文件的文件内容验证信息(如MD5值),将生成的文件内容验证信息与最新版本指示信息中目标插件的文件内容验证信息进行验证,当验证通过后,才继续后续的步骤204,否则停止插件资源文件的处理。可选的,停止处理后,还可以向服务器发送插件资源文件的内容验证失败信息。
本实施例中插件资源文件的组成,根据终端中使用的插件框架的不同而不同,其中,在Shadow插件框架下,插件资源文件包括:plugin-release.zip、pluginmanager.apk。其中plugin-release.zip压缩文件里面有包含了plugin-runtime-release.ap、plugin-app-release.apk、plugin-loader-release.apk、config.json四个文件,其中pluigin-app-release.apk就是原来需要做到宿主app里的功能被插件化成独立的apk。
204、当满足插件预安装条件时,基于插件资源文件对目标插件进行安装;
本实施例中,基于插件资源文件对目标插件进行安装,可以是异步进行的安装。具体的,可以启动基于插件资源文件对目标插件进行安装,其中,该目标线程与当前交互线程不同,该当前交互线程,可以理解为安装目标插件时,实现终端与用户间交互的线程。
本实施例中,可以在终端中增设一个标识来指示终端下载插件的插件资源文件后,执行安装,而不是按照现有的逻辑,在检测到插件的启动指令后,才下载插件,并且进行安装等操作显示插件的启动。
该标识可以设置为插件预安装标识,该插件预安装标识用于指示终端在插件的插件资源文件下载后进行插件安装。
还是以Shadow插件框架为例,Shadow原先只有FROM_ID_START_ACTIVITY(启动插件)、FROM_ID_NOOP(无功能)等标识,本实施例中新增预安装标识FROM_ID_PRE_INSTALL用来标识“预安装”。Shadow提供了个插件管理器,该管理器中提供一种enter()方法,里面会接收fromId(long类型),基于该enter()方法可以设置FROM_ID_PRE_INSTALL。
可选的,步骤204之前,还可以包括:检测终端是否设置有插件预安装标识;若是,则继续执行当满足插件预安装条件时,基于插件资源文件对目标插件进行安装的步骤,若否,则不进行插件的安装,而是在
本实施例中,第一插件和第二插件的安装方式可以相同或不同。
在一个实施例中,第一插件和第二插件的安装方式可以相同。步骤“当满足插件预安装条件时,基于插件资源文件对目标插件进行安装”,包括:
在目标插件的插件资源文件下载完成后,调用插件预安装组件,基于插件资源文件对目标插件进行安装。
在该实施例的一个示例中,插件预安装组件可以是本实施例中为了插件的预安装(即插件首次启动前对插件的安装,而不是在插件首次启动时的进行插件安装。)而特别设置的组件,该组件的源代码可以由开发者上传到服务器,由服务器发送给终端,并控制终端进行该插件预安装组件的安装。
在该实施例的另一个示例中,插件预安装组件可以是使用插件框架现有的组件实现的。
在插件系统中,为终端提供了插件启动组件,该插件启动组件负责执行插件的启动逻辑,该插件启动逻辑中包括插件安装逻辑,对应的,该插件启动组件中包括负责插件安装的插件安装子组件,本实施例可以调用该子组件实现插件的安装。
可选的,步骤“在目标插件的插件资源文件下载完成后,调用插件预安装组件,基于插件资源文件对目标插件进行安装”,可以包括:
在目标插件的插件资源文件下载完成后,从终端的插件系统提供的插件启动组件中获取插件安装子组件,将插件安装子组件确定为插件预安装组件;
通过插件预安装组件,基于插件资源文件对目标插件进行安装。
其中,插件启动组件是终端中实现插件的启动的组件。上述方案可以通过对插件启动组件的一部分组件代码的复用,在实现插件的预安装的基础上,尽可能少地对终端代码进行修改,降低了插件预安装方案所需的成本。
还是以Shadow插件框架为例,Shadow插件系统为终端提供了FROM_ID_START_ACTIVITY(启动插件)组件,FROM_ID_START_ACTIVITY(启动插件)组件对插件的一次启动过程主要包括:“安装插件”(包括解压本地的插件资源文件,各自拷贝操作等等,由插件安装子组件完成)、启动PPS服务(由PPS服务启动子组件完成)、初始化loader(由加载子组件完成)、runtime(由runtime子组件完成)、然后调起插件页面(由插件页面调起子组件完成)等一系列逻辑。所以,可以把插件启动组件的源代码中实现“安装”的代码(即插件安装子组件)提取出来,利用该提取的代码进行安装即可。
本实施例中,从终端的插件系统提供的插件启动组件中获取插件安装子组件,包括:从终端的插件系统提供的插件启动组件的源代码中,确定用于安装插件的代码,提取该代码得到插件安装子组件。
本实施例中,在步骤“基于目标插件的最新版本指示信息,下载目标插件的最新版本的插件资源文件”后,还可以包括:将插件资源文件存储到宿主应用程序的文件目录的插件子目录下,其中,插件子目录下的文件用于供插件启动组件执行插件的启动。
对应的,步骤“通过插件预安装组件,基于插件资源文件对目标插件进行安装”,可以包括:基于插件预安装组件,从插件子目录下读取目标插件的插件资源文件,基于插件资源文件对目标插件进行安装。
其中,宿主应用程序的文件目录下可以存放宿主应用程序需要的一切文件,该文件目录为/files,插件子目录可以是/files下的/plugin目录,/plugin目录下的文件对象可以提供给插件预安装组件的代码,实现插件的安装。
本实施例中,结合图3,对第一插件的启动方法进行示例说明,该例子中插件系统为shadow插件系统。
步骤301、当检测到宿主应用程序启动时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;
步骤302、基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中宿主应用程序未安装的第一插件;
步骤303、从第一插件的最新版本指示信息中获取第一插件的URL;
步骤304、基于URL下载第一插件的最新版本的插件资源文件;
步骤305、在下载完成后,检测终端中是否设置有插件预安装标识FROM_ID_PRE_INSTALL,若有,则进入步骤306,否则,进入步骤307;
步骤306、将第一插件的插件资源文件存储至宿主应用程序的插件子目录下,进入步骤308;
步骤307、当检测到针对第一插件的启动指令时,调用插件系统的插件启动组件,基于第一插件的插件资源文件启动目标插件;
可以想到的是,步骤307的插件启动的过程中,需要执行完整的插件启动逻辑。
步骤308、从插件系统的插件启动组件中获取插件安装子组件,采用该插件安装子组件基于插件子目录下第一插件的插件资源文件,对第一插件进行安装;
步骤309、当检测到针对第一插件的启动指令时,基于第一插件的插件资源文件启动已安装的第一插件。
可以想到的是,步骤309的插件启动的过程中,不需要执行完整的插件启动逻辑,插件启动逻辑中的插件安装逻辑是无需执行的。
在本实施例的另一个示例中,第二插件的预安装方案可以与第一插件的预安装方案不同。可选的,若目标插件为第二插件,步骤“当满足插件预安装条件时,基于插件资源文件对目标插件进行安装”,可以包括:
在目标插件的插件资源文件下载完成后,对目标插件的插件资源文件进行存储;
当检测到宿主应用程序启动时,基于目标插件的插件资源文件对目标插件进行安装。
其中,第二插件的插件资源文件存储的位置可以由终端设置。在该方案中,第二插件是进行版本更新的插件,该插件的插件资源文件下载后,可以不直接进行安装,而是先存储,在终端再次启动后再进行安装。
可选的,步骤“在目标插件的插件资源文件下载完成后,对目标插件的插件资源文件进行存储”,可以包括:在目标插件的插件资源文件下载完成后,将目标插件的插件资源文件存储到宿主应用程序的更新资源目录下。
对应的,步骤“当检测到宿主应用程序启动时,基于目标插件的插件资源文件对目标插件进行安装”,可以包括:当检测到宿主应用程序启动时,将更新资源目录下的目标插件的插件资源文件,复制到宿主应用程序的文件目录的插件子目录下;调用插件预安装组件,基于插件子目录下目标插件的插件资源文件对目标插件进行安装。
其中,该更新资源目录可以是宿主应用程序的文件目录中不同于插件子目录的目录,该更新资源目录用于更新存储终端的已安装插件的插件资源文件。
例如,在Shadow插件系统中,该更新资源目录,可以是/files目录下的/update目录。
在第二插件的插件资源文件安装成功后,可以从更新资源目录中移除该安装成功的第二插件的插件资源文件。
可选的,步骤“调用插件预安装组件,基于插件子目录下目标插件的插件资源文件对目标插件进行安装”,包括:
从终端的插件系统提供的插件启动组件中获取插件安装子组件,将插件安装子组件作为插件预安装组件;
通过插件预安装组件,基于插件子目录下的目标插件的插件资源文件对目标插件进行安装,其中,插件子目录中的文件用于供插件启动组件执行插件的启动。
上述获取插件预安装组件的具体过程可以参考前述内容中的相关描述,在此不再赘述。
可选的,在目标插件的插件资源文件下载完成后,将更新资源目录下的目标插件的插件资源文件,复制到宿主应用程序的文件目录的插件子目录下前,还包括:
从服务器中获取宿主应用程序的可用插件的最新版本指示信息;
若更新资源目录下目标插件的插件资源文件的版本,不低于最新版本指示信息中目标插件的版本,则继续执行将更新资源目录下的目标插件的插件资源文件,复制到宿主应用程序的文件目录的插件子目录下的步骤;
否则,基于最新版本指示信息从服务器下载目标插件的最新版本的插件资源文件,将最新版本的插件资源文件存储到宿主应用程序的文件目录的插件子目录下。
其中,该最新版本指示信息的获取方案,可以参考前述内容中的相关描述,在此不再赘述。
本实施例中,结合图4,对第二插件的启动方法进行示例说明,该例子中插件系统为shadow插件系统。
步骤401、当检测到宿主应用程序启动时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;
步骤402、基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中的第二插件;其中,第二插件是宿主应用程序已安装的插件,且宿主应用程序中安装的第二插件的版本不是最新版本;
步骤403、从第二插件的最新版本指示信息中获取第二插件的URL;
步骤404、基于URL下载第二插件的最新版本的插件资源文件;
步骤405、在下载完成后,检测终端中是否设置有插件预安装标识FROM_ID_PRE_INSTALL,若有,则进入步骤406,否则,进入步骤407;
步骤406、将第二插件的插件资源文件存储至宿主应用程序的更新资源目录下,进入步骤408;
步骤407、当检测到针对第二插件的启动指令时,调用插件系统的插件启动组件,基于第二插件的插件资源文件启动目标插件;
可以想到的是,步骤407的插件启动的过程中,需要执行完整的插件启动逻辑。
步骤408、当再次检测到宿主应用程序的启动时,将更新资源目录下的目标插件的插件资源文件,拷贝到宿主应用程序的文件目录的插件子目录下;
步骤409、从插件系统的插件启动组件中获取插件安装子组件,采用该插件安装子组件基于插件子目录下下第二插件的插件资源文件,对第二插件进行安装;
步骤410、当检测到针对第二插件的启动指令时,基于第二插件的插件资源文件启动已安装的第二插件。
205、当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件。
本实施例中,在目标插件的安装完成后,可以在宿主应用程序的应用界面中增设目标插件的入口,该入口可以以图标,控件,图像等形式存在,本实施例对此没有任何限制。
该启动指令,可以是用户在宿主应用程序的应用界面中,通过对目标插件的入口的插件启动操作触发的,该插件启动操作,可以是用户在宿主应用程序的应用界面中针对该目标插件的入口的触控操作,如点击,长按,双击等触控操作。
可选的,步骤“当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件”,可以包括:
当检测到针对目标插件的启动指令时,调用终端的插件启动组件中除了插件安装子组件之外的其他子组件;
控制其他子组件基于插件资源文件,按照插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的目标插件。
可以理解的是,其他子组件也是从插件子目录下读取目标插件的插件资源文件,实现插件的安装。
本实施例中,完整的插件启动逻辑可以包括:安装插件、启动PPS服务、初始化loader、runtime、然后调起插件页面等一系列逻辑。采用本实施例的方案,在插件预安装之后,再需要启动插件时候,就可以不执行安装插件的逻辑,而执行该“安装插件”之后的处理逻辑即可。
例如,还是以Shadow插件系统为例,其他子组件包括:PPS服务启动子组件、加载子组件完成、runtime子组件、插件页面调起子组件,控制其他子组件基于插件资源文件,按照插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的目标插件具体可以包括:控制PPS服务启动子组件、加载子组件完成、runtime子组件、插件页面调起子组件等按照插件启动逻辑依次执行启动PPS服务、初始化loader、runtime、调起插件页面等操作,实现目标插件的启动。
采用本实施例,当满足宿主应用程序的插件更新检查条件时,从服务器获取宿主应用程序的可用插件的最新版本指示信息;基于最新版本指示信息,和当前终端中宿主应用程序的已安装插件信息,确定可用插件中宿主应用程序需要安装的目标插件;基于目标插件的最新版本指示信息,从服务器中下载目标插件的最新版本的插件资源文件;当满足插件预安装条件时,基于插件资源文件对目标插件进行安装;当检测到针对目标插件的启动指令时,基于目标插件的插件资源文件启动已安装的目标插件,由此,可在宿主应用程序启动后,下载需要安装的目标插件的插件资源文件,并且在下载文件之后,还可以基于插件资源文件进行目标插件的安装,将目标插件启动过程中耗时的一部分操作提前完成,当首次启动目标插件时,可以不用执行安装操作,节约了安装插件所需的时间,可以有效降低插件首次启动所需时间,提升插件首次启动的速度。
为了更好地实施以上方法,相应的,本发明实施例还提供一种插件启动装置,该插件启动装置具体可以集成在终端中,例如以应用程序的形式集成在终端中。
参考图5,该插件启动装置包括:
本发明实施例提供一种插件启动装置,该插件启动装置包括:
插件更新检查单元501,用于当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
目标插件确定单元502,用于基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
插件下载单元503,用于基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
预安装单元504,用于当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
插件启动单元505,用于当检测到针对目标插件的启动指令时,基于所述目标插件的插件资源文件启动已安装的所述目标插件。
在一个可选的示例中,该装置还包括,标识检测单元,用于检测所述终端是否设置有插件预安装标识,所述插件预安装标识用于指示所述终端在插件的插件资源文件下载后进行插件安装;
若标识检测单元的检测结果为是,则触发所述预安装单元执行所述当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装的步骤。
在一个可选的示例中,目标插件确定单元,用于:
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装信息,确定所述可用插件中所述宿主应用程序未安装的第一插件,以及所述可用插件中,所述宿主应用程序已安装的第二插件,其中,所述宿主应用程序中安装的第二插件的版本不是最新版本;
将所述可用插件中的所述第一插件和第二插件,确定为需要安装的目标插件。
在一个可选的示例中,预安装单元包括第一预安装子单元,若所述目标插件为第一插件,第一预安装子单元,用于在所述目标插件的插件资源文件下载完成后,调用插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,第一预安装子单元,用于:
在所述目标插件的插件资源文件下载完成后,从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件确定为插件预安装组件;
通过所述插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述装置还包括第一存储单元,用于在基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件后,将所述插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下,其中,所述插件子目录下的文件用于供所述插件启动组件执行插件的启动;
第一预安装子单元,用于基于所述插件预安装组件,从所述插件子目录下读取所述目标插件的插件资源文件,基于所述插件资源文件对所述目标插件进行安装。
在一个可选的示例中,预安装单元包括第二预安装子单元,第二预安装子单元,用于若所述目标插件为第二插件,在所述目标插件的插件资源文件下载完成后,对所述目标插件的插件资源文件进行存储;当检测到所述宿主应用程序启动时,基于所述目标插件的插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述第二预安装子单元,用于:
在所述目标插件的插件资源文件下载完成后,将所述目标插件的插件资源文件存储到所述宿主应用程序的更新资源目录下;
当检测到所述宿主应用程序启动时,将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下;
调用插件预安装组件,基于所述插件子目录下所述目标插件的插件资源文件对所述目标插件进行安装。
在一个可选的示例中,所述第二预安装子单元,用于:
从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件作为插件预安装组件;
通过所述插件预安装组件,基于所述插件子目录下的所述目标插件的插件资源文件对所述目标插件进行安装,其中,所述插件子目录中的文件用于供所述插件启动组件执行插件的启动。
在一个可选的示例中,所述第二预安装子单元,用于:当检测到所述宿主应用程序启动时,在将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下前,从所述服务器中获取所述宿主应用程序的可用插件的最新版本指示信息;
若所述更新资源目录下所述目标插件的插件资源文件的版本,不低于所述最新版本指示信息中所述目标插件的版本,则继续执行将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下的步骤;
否则,基于所述最新版本指示信息从所述服务器下载所述目标插件的最新版本的插件资源文件,将所述最新版本的插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下。
在一个可选的示例中,插件更新检查单元,用于:
当检测到宿主应用程序启动时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息。
在一个可选的示例中,插件启动单元,用于:
当检测到针对所述目标插件的启动指令时,调用所述终端的插件启动组件中除了插件安装子组件之外的其他子组件;
控制所述其他子组件基于所述插件资源文件,按照所述插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的所述目标插件。
采用本实施例,可在宿主应用程序启动后,下载需要安装的目标插件的插件资源文件,并且在下载文件之后,还可以基于插件资源文件进行目标插件的安装,将目标插件启动过程中耗时的一部分操作提前完成,当首次启动目标插件时,可以不用执行安装操作,节约了安装插件所需的时间,可以有效降低插件首次启动所需时间,提升插件首次启动的速度。
此外,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图6所示,图6为本申请实施例提供的计算机设备的结构示意图。该计算机设备1000包括有一个或者一个以上处理核心的处理器601、有一个或一个以上计算机可读存储介质的存储器602及存储在存储器602上并可在处理器上运行的计算机程序。其中,处理器601与存储器602电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器601是计算机设备1000的控制中心,利用各种接口和线路连接整个计算机设备1000的各个部分,通过运行或加载存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行计算机设备1000的各种功能和处理数据,从而对计算机设备1000进行整体监控。
在本申请实施例中,计算机设备1000中的处理器601会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能:
当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
当检测到针对目标插件的启动指令时,基于所述目标插件的插件资源文件启动已安装的所述目标插件。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图6所示,计算机设备1000还包括:触控显示屏603、射频电路604、音频电路605、输入单元606以及电源607。其中,处理器601分别与触控显示屏603、射频电路604、音频电路605、输入单元606以及电源607电性连接。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏603可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏603可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器601,并能接收处理器601发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器601以确定触摸事件的类型,随后处理器601根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏603而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏603也可以作为输入单元606的一部分实现输入功能。
在本申请实施例中,通过处理器601在触控显示屏603上生成图形用户界面,用户可以在图形用户界面上进行操作,启动图像用户界面上的目标宿主应用程序,终端检测到目标宿主应用程序启动后,可以采用本申请任意实施例中的插件启动方法,进行插件的新增和更新。
射频电路604可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路605可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路605可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路605接收后转换为音频数据,再将音频数据输出处理器601处理后,经射频电路604以发送给比如另一计算机设备,或者将音频数据输出至存储器602以便进一步处理。音频电路605还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元606可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源607用于给计算机设备1000的各个部件供电。可选的,电源607可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源607还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图6中未示出,计算机设备1000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,可以提升预设地图区域的表征点的准确性,有利于提升用户在虚拟地图中的互动体验。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种插件启动方法中的步骤。例如,该计算机程序可以执行如下步骤:
当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
当检测到针对目标插件的启动指令时,基于所述目标插件的插件资源文件启动已安装的所述目标插件。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种插件启动方法中的步骤,因此,可以实现本申请实施例所提供的任一种插件启动方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种插件启动方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种插件启动方法,其特征在于,包括:
当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
检测所述终端是否设置有插件预安装标识,所述插件预安装标识用于指示所述终端在插件的插件资源文件下载后进行插件安装;
若是,当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
检测到针对所述目标插件的启动指令时,调用所述终端的插件启动组件中除了插件安装子组件之外的其他子组件;
控制所述其他子组件基于所述插件资源文件,按照所述插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的所述目标插件。
2.根据权利要求1所述的插件启动方法,其特征在于,所述基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件,包括:
基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装信息,确定所述可用插件中所述宿主应用程序未安装的第一插件,以及所述可用插件中,所述宿主应用程序已安装的第二插件,其中,所述宿主应用程序中安装的第二插件的版本不是最新版本;
将所述可用插件中的所述第一插件和第二插件,确定为需要安装的目标插件。
3.根据权利要求2所述的插件启动方法,其特征在于,若所述目标插件为第一插件,所述当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装,包括:
在所述目标插件的插件资源文件下载完成后,调用插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
4.根据权利要求3所述的插件启动方法,其特征在于,所述在所述目标插件的插件资源文件下载完成后,调用插件预安装组件,基于所述插件资源文件对所述目标插件进行安装,包括:
在所述目标插件的插件资源文件下载完成后,从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件确定为插件预安装组件;
通过所述插件预安装组件,基于所述插件资源文件对所述目标插件进行安装。
5.根据权利要求4所述的插件启动方法,其特征在于,所述基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件后,还包括:
将所述插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下,其中,所述插件子目录下的文件用于供所述插件启动组件执行插件的启动;
所述通过所述插件预安装组件,基于所述插件资源文件对所述目标插件进行安装,包括:
基于所述插件预安装组件,从所述插件子目录下读取所述目标插件的插件资源文件,基于所述插件资源文件对所述目标插件进行安装。
6.根据权利要求2所述的插件启动方法,其特征在于,若所述目标插件为第二插件,所述当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装,包括:
在所述目标插件的插件资源文件下载完成后,对所述目标插件的插件资源文件进行存储;
当检测到所述宿主应用程序启动时,基于所述目标插件的插件资源文件对所述目标插件进行安装。
7.根据权利要求6所述的插件启动方法,其特征在于,所述在所述目标插件的插件资源文件下载完成后,对所述目标插件的插件资源文件进行存储,包括:
在所述目标插件的插件资源文件下载完成后,将所述目标插件的插件资源文件存储到所述宿主应用程序的更新资源目录下;
所述当检测到所述宿主应用程序启动时,基于所述目标插件的插件资源文件对所述目标插件进行安装,包括:
当检测到所述宿主应用程序启动时,将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下;
调用插件预安装组件,基于所述插件子目录下所述目标插件的插件资源文件对所述目标插件进行安装。
8.根据权利要求7所述的插件启动方法,其特征在于,所述调用插件预安装组件,基于所述插件子目录下所述目标插件的插件资源文件对所述目标插件进行安装,包括:
从所述终端的插件系统提供的插件启动组件中获取插件安装子组件,将所述插件安装子组件作为插件预安装组件;
通过所述插件预安装组件,基于所述插件子目录下的所述目标插件的插件资源文件对所述目标插件进行安装,其中,所述插件子目录中的文件用于供所述插件启动组件执行插件的启动。
9.根据权利要求7所述的插件启动方法,其特征在于,当检测到所述宿主应用程序启动时,在将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下前,还包括:
从所述服务器中获取所述宿主应用程序的可用插件的最新版本指示信息;
若所述更新资源目录下所述目标插件的插件资源文件的版本,不低于所述最新版本指示信息中所述目标插件的版本,则继续执行所述将所述更新资源目录下的所述目标插件的插件资源文件,复制到所述宿主应用程序的文件目录的插件子目录下的步骤;
否则,基于所述最新版本指示信息从所述服务器下载所述目标插件的最新版本的插件资源文件,将所述最新版本的插件资源文件存储到所述宿主应用程序的文件目录的插件子目录下。
10.一种插件启动装置,其特征在于,包括:
插件更新检查单元,用于当满足宿主应用程序的插件更新检查条件时,从服务器获取所述宿主应用程序的可用插件的最新版本指示信息;
目标插件确定单元,用于基于所述最新版本指示信息,和当前终端中所述宿主应用程序的已安装插件信息,确定所述可用插件中所述宿主应用程序需要安装的目标插件;
插件下载单元,用于基于所述目标插件的最新版本指示信息,下载所述目标插件的最新版本的插件资源文件;
标识检测单元,用于检测所述终端是否设置有插件预安装标识,所述插件预安装标识用于指示所述终端在插件的插件资源文件下载后进行插件安装;
预安装单元,用于若标识检测单元的检测结果为是,当满足插件预安装条件时,基于所述插件资源文件对所述目标插件进行安装;
插件启动单元,用于检测到针对所述目标插件的启动指令时,调用所述终端的插件启动组件中除了插件安装子组件之外的其他子组件;控制所述其他子组件基于所述插件资源文件,按照所述插件启动组件对应的插件启动逻辑中插件安装之后的处理逻辑,启动已安装的所述目标插件。
11.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述方法的步骤。
12.一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述方法的步骤。
CN202011073200.1A 2020-10-09 2020-10-09 一种插件启动方法、装置、计算机设备和存储介质 Active CN112162795B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011073200.1A CN112162795B (zh) 2020-10-09 2020-10-09 一种插件启动方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011073200.1A CN112162795B (zh) 2020-10-09 2020-10-09 一种插件启动方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112162795A CN112162795A (zh) 2021-01-01
CN112162795B true CN112162795B (zh) 2023-12-12

Family

ID=73866473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011073200.1A Active CN112162795B (zh) 2020-10-09 2020-10-09 一种插件启动方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112162795B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783515B (zh) * 2021-02-08 2023-08-25 腾讯科技(深圳)有限公司 插件的控制方法和装置、存储介质
CN112988686A (zh) * 2021-04-07 2021-06-18 北京字节跳动网络技术有限公司 插件处理方法、装置、设备和存储介质
CN113138768B (zh) * 2021-04-29 2023-11-07 北京百度网讯科技有限公司 应用程序包生成方法、装置、电子设备以及可读存储介质
CN114338652B (zh) * 2021-12-30 2023-10-20 北京欧珀通信有限公司 安装包的分发方法、下载方法及相关产品

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013006226A1 (en) * 2011-07-01 2013-01-10 Exxonmobil Upstream Research Company Plug-in installer framework
CN104021015A (zh) * 2014-05-30 2014-09-03 北京奇虎科技有限公司 网银类网站的访问方法及浏览器
CN104052796A (zh) * 2014-04-23 2014-09-17 小米科技有限责任公司 处理插件的方法、装置、系统及终端
WO2014139300A1 (en) * 2013-03-14 2014-09-18 Tencent Technology (Shenzhen) Company Limited Method and device for loading a plug-in
CN106095458A (zh) * 2016-06-20 2016-11-09 腾讯科技(深圳)有限公司 一种应用程序中插件的管理方法和装置
CN107908410A (zh) * 2017-11-02 2018-04-13 北京奇虎科技有限公司 插件备份、运行方法、装置、终端设备及存储介质
CN108132844A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 插件下载方法及装置
CN108845812A (zh) * 2018-05-31 2018-11-20 康键信息技术(深圳)有限公司 插件更新方法、装置、计算机设备和存储介质
CN108984224A (zh) * 2018-06-13 2018-12-11 中国平安人寿保险股份有限公司 一种插件管理方法、计算机可读存储介质及终端设备
CN109144605A (zh) * 2018-08-06 2019-01-04 北京奇艺世纪科技有限公司 一种应用程序处理方法和装置
CN113791795A (zh) * 2020-05-26 2021-12-14 北京奇虎科技有限公司 插件的安装方法、装置、系统、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102303665B1 (ko) * 2017-03-29 2021-09-17 삼성전자주식회사 플러그인 서비스를 포함하는 결제 서비스 제공 방법 및 그 전자장치

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013006226A1 (en) * 2011-07-01 2013-01-10 Exxonmobil Upstream Research Company Plug-in installer framework
WO2014139300A1 (en) * 2013-03-14 2014-09-18 Tencent Technology (Shenzhen) Company Limited Method and device for loading a plug-in
CN104052796A (zh) * 2014-04-23 2014-09-17 小米科技有限责任公司 处理插件的方法、装置、系统及终端
CN104021015A (zh) * 2014-05-30 2014-09-03 北京奇虎科技有限公司 网银类网站的访问方法及浏览器
CN106095458A (zh) * 2016-06-20 2016-11-09 腾讯科技(深圳)有限公司 一种应用程序中插件的管理方法和装置
CN108132844A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 插件下载方法及装置
CN107908410A (zh) * 2017-11-02 2018-04-13 北京奇虎科技有限公司 插件备份、运行方法、装置、终端设备及存储介质
CN108845812A (zh) * 2018-05-31 2018-11-20 康键信息技术(深圳)有限公司 插件更新方法、装置、计算机设备和存储介质
CN108984224A (zh) * 2018-06-13 2018-12-11 中国平安人寿保险股份有限公司 一种插件管理方法、计算机可读存储介质及终端设备
CN109144605A (zh) * 2018-08-06 2019-01-04 北京奇艺世纪科技有限公司 一种应用程序处理方法和装置
CN113791795A (zh) * 2020-05-26 2021-12-14 北京奇虎科技有限公司 插件的安装方法、装置、系统、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
" 面向安卓系统的应用安全模块的研究与实现";刘一阳;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-76 *

Also Published As

Publication number Publication date
CN112162795A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN112162795B (zh) 一种插件启动方法、装置、计算机设备和存储介质
CN107992308B (zh) 一种安卓终端应用程序的插件化管理方法
US11853820B2 (en) Cross-process communication method, apparatus, and device
CN109308241B (zh) 监听应用程序启动流程方法、装置、终端设备和存储介质
CN106502703B (zh) 一种函数调用方法和装置
WO2018077041A1 (zh) 应用运行的方法及装置
US10684838B2 (en) Dynamic application deployment
CN110865837B (zh) 一种进行系统升级的方法和终端
US20220334815A1 (en) Accelerating application and sub-package installations
CN110968331A (zh) 应用程序运行的方法和装置
CN111240766A (zh) 应用启动方法、装置、电子设备及计算机可读存储介质
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
KR20210115841A (ko) 전자 장치 및 전자 장치의 테마를 부분적으로 운용하는 방법
CN112394906A (zh) 一种应用切换运行的方法及设备
CN113408260A (zh) 一种项目工程生成方法、装置、计算机设备及存储介质
CN112650540B (zh) 一种启动快应用的方法及相关装置
CN116719670B (zh) 数据处理的方法、电子设备及可读存储介质
CN113742716B (zh) 代码运行方法、装置、电子设备、存储介质和程序产品
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
CN115469937A (zh) 插件运行方法、装置、电子设备及存储介质
CN110489679B (zh) 一种浏览器内核的处理方法、装置及存储介质
CN112426722A (zh) 节点图的热更新方法、装置、存储介质及计算机设备
CN113138785A (zh) 应用程序的更新方法和装置
CN111596936A (zh) 应用程序的更新方法及装置
CN116643778B (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