CN105373396A - 插件平台中的插件更新方法和装置 - Google Patents
插件平台中的插件更新方法和装置 Download PDFInfo
- Publication number
- CN105373396A CN105373396A CN201510501298.9A CN201510501298A CN105373396A CN 105373396 A CN105373396 A CN 105373396A CN 201510501298 A CN201510501298 A CN 201510501298A CN 105373396 A CN105373396 A CN 105373396A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- locality
- class
- core inserter
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
一种插件平台中的插件更新加载方法,包括:插件平台被启动后,获取本地的核心插件对应的更新策略,根据所述本地的核心插件对应的更新策略更新所述本地的核心插件,启动所述本地的核心插件;所述核心插件提供用于被业务插件调用的接口;获取本地的业务插件对应的更新策略,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件,启动所述本地的业务插件;在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件。上述方法可节省为了适应插件平台上的插件可调用的基础功能发生变更所使用的网络流量和所花费的时间。此外,还提供一种插件平台中的插件更新加载装置。
Description
技术领域
本发明涉及插件平台技术领域,特别是涉及一种插件平台中的插件更新方法和装置。
背景技术
一些***平台提供遵循一定规范的接口,这些接口提供一个标准的界面,其他人可以编写调用这些接口的程序,这些程序与***平台通过这些接口进行互动(数据交换)。调用***平台提供的接口的程序可称为插件,而提供接口的***平台可以称为插件平台。一个稳定的接口会允许调用该接口的插件正常运行,即使插件平台最初的版本有所变动。
插件平台还提供使插件能够应用的各项服务,其中包括提供加载方式。插件必须依赖于插件平台才能发挥自身功能,插件是无法脱离插件平台而独立正常运行的。相反地,插件平台并不需要依赖插件就可以运行。这样一来,插件就可以加载到插件平台上并且动态更新而不会对插件平台造成任何改变。
随着业务的增长和变更,插件可以用于实现插件平台不能实现的新功能,以满足业务增加和变更的需求,从而延长插件平台的使用寿命。
插件平台为插件提供的接口往往会调用插件平台的一些基础功能,例如,登录、协议收发、图片加载、及缓存管理等。当插件实现的功能发生变更或者插件功能的实现逻辑发生变更时,只需要更新插件即可,而当插件调用的由插件平台自身实现的基础功能出现问题或者需要变更时,开发者需要发布新的版本的插件平台以变更基础功能,包括变更基础功能内容,例如,增加、删除或者改变基础功能,以及包括变更基础功能的实现逻辑,而为了适应基础功能所发生的变更,使用插件平台的***则往往需要升级整个插件平台。
然而,升级整个插件平台,需要从服务器下载整个插件平台的软件包,并进行安装,不但需要使用较多的网络流量,而且需要花费较多的安装时间。
发明内容
基于此,针对上述的为了适应插件平台上的插件可调用的基础功能发生的变更而需要使用较多的网络流量以及需要花费较多的时间的问题,提供一种插件平台中的插件更新方法和装置。
一种插件平台中的插件更新加载方法,包括以下步骤:
插件平台被启动后,获取本地的核心插件对应的更新策略,根据所述本地的核心插件对应的更新策略更新所述本地的核心插件,启动所述本地的核心插件;所述核心插件提供用于被业务插件调用的接口;
获取本地的业务插件对应的更新策略,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件,启动所述本地的业务插件;
在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件,所述本地的核心插件对应的类文件中存储所述本地的核心插件的类。
一种插件平台中的插件更新加载装置,包括:
核心插件下载更新模块,用于插件平台被启动后,获取本地的核心插件对应的更新策略,根据所述本地的核心插件对应的更新策略更新所述本地的核心插件;
核心插件启动模块,用于启动所述本地的核心插件;所述核心插件提供用于被业务插件调用的接口;
业务插件下载更新模块,用于获取本地的业务插件对应的更新策略,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件;
业务插件启动模块,用于启动所述本地的业务插件;
业务插件类加载模块,用于在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件,所述本地的核心插件对应的类文件中存储所述本地的核心插件的类。
上述插件平台中的插件更新加载方法和装置,在插件平台被启动后,更新以及加载本地的核心插件,并进一步更新以及加载本地的业务插件;其中,核心插件提供用于被业务插件调用的接口;由于业务插件可能调用了核心插件提供的接口,而核心插件提供的接口很可能使用了本地核心插件的类,上述方法和装置,在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,可以确保成功地加载业务插件所调用的类。当核心插件提供的用于被业务插件调用的接口使用了核心插件所实现的基础功能时,上述方法和装置可确保业务插件成功的使用核心插件所实现的基础功能;从而上述方法和装置提供了一种插件平台上的业务插件可使用插件平台上的核心插件所实现的基础功能的机制;
当业务插件所调用的由核心插件所实现的基础功能发生变更时,只需要更新对应的核心插件即可,而不需要下载整个插件平台的软件包并进行安装,从而,可节省为了适应插件平台上的插件可调用的基础功能发生变更所使用的网络流量和所花费的时间。
附图说明
图1为一个实施例中可运行本申请所述插件平台中的插件更新加载方法的设备的部分结构框图;
图2为一个实施例中的插件平台中的插件更新加载方法的流程示意图;
图3为一个实施例中获取本地的核心插件对应的更新策略的步骤的流程示意图;
图4为一个实施例中根据本地的核心插件对应的更新策略更新本地的核心插件的步骤的流程示意图;
图5为一个实施例中获取本地的业务插件对应的更新策略的步骤的流程示意图;
图6为一个实施例中根据所述本地的业务插件对应的更新策略更新所述本地的业务插件的步骤的流程示意图;
图7为一个实施例中图2中的步骤S210的流程示意图;
图8为一个实施例中的插件平台中的插件更新加载装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中可运行本申请所述插件平台中的插件更新加载方法的设备的部分结构框图。如图1所示,在一个实施例中,该服务器包括通过***总线连接的处理器、存储介质、内存和网络接口;其中,网络接口用于与网络进行通信,内存用于缓存数据,存储介质中存储有操作***以及用于实现本申请所述的插件平台中的插件更新加载方法的软件指令等,处理器协调各部件的工作并执行这些指令以实现本申请所述的插件平台中的插件更新加载方法。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请所述的插件平台也可以理解为一种宿主程序,提供可***件调用的接口。从一种角度来理解插件平台,在一个实施例中,插件平台可以是一种应用程序,其可以提供某种应用服务。从另一种角度来理解插件平台,在一个实施例中,插件平台可以是一种客户端程序,其可与服务端程序或后台进行交互。
本申请所述的插件平台中的插件更新加载方法用于描述插件平台的实现逻辑。
如图2所示,在一个实施例中,一种插件平台中的插件更新加载方法,包括以下步骤:
步骤S202,插件平台被启动后,获取本地的核心插件对应的更新策略,根据本地的核心插件对应的更新策略更新本地的核心插件。
其中,核心插件提供用于被业务插件调用的接口。获取本地的核心插件对应的更新策略包括:从后台下载本地的核心插件对应的更新策略。后台可为服务器或下载中心或代理中心等。服务器可为提供该插件的服务商的服务器或租用的服务器等。下载中心可为提供软件下载服务的平台或应用商店等。代理中心可为提供代理服务的代理者所构建的平台。
在一个实施例中,上述接口可以理解为应用程序编程接口,简称API(ApplicationProgrammingInterface),为软件***不同组成部分衔接的约定。
在一个实施例中,核心插件提供的用于被业务插件调用的接口使用(也可以说调用)了核心插件所实现的基础功能。
在一个实施例中,本地的核心插件对应的更新策略用于指示插件平台更新本地的核心插件。
在一个实施例中,本地的核心插件对应的更新策略由后台根据该本地的核心插件的信息列表以及后台的最新的核心插件的信息列表生成。更新策略用于指示插件平台进行以下两项工作:将后台新增的、本地尚未安装的插件进行安装;以及,将本地已安装的插件的过时版本更新为对应插件的后台存储的最新版本。
如图3所示,在一个实施例中,获取本地的核心插件对应的更新策略的步骤包括以下步骤:
步骤S302,获取本地的核心插件信息列表。
在一个实施例中,可获取指定文件夹下指定文件中记载的本地的各个核心插件的信息,形成信息列表。
在一个实施例中,每一核心插件的信息包含核心插件的包名和版本号。
在一个实施例中,插件平台运行于安卓***(Android)中,步骤S302可包括以下步骤:解析指定文件夹下的全局配置文件(AndroidManifest.xml),获取其中的核心插件的信息,并形成本地的核心插件信息列表。
在一个实施例中,全局配置文件位于指定文件夹下的插件安装包中,可调用Android提供的解析APK(AndroidPackage,即Android安装包)的接口解析插件安装包中的全局配置文件。
在一个实施例中,全局配置文件中,核心插件的信息对应有预设的核心插件标记。读取对应有预设的核心插件标记的插件的信息,即可得到各个核心插件的信息。
步骤S304,发送携带本地的核心插件信息列表的请求,以请求下发本地的核心插件对应的更新策略。
具体地,向后台发送携带本地的核心插件信息列表的请求,以请求后台下发本地的核心插件对应的更新策略。
在一个实施例中,后台接收到本地的核心插件信息列表后,可以将本地的核心插件信息列表与后台存储的最新的核心插件信息进行对比,获取后台新增的而插件平台本地尚未安装的插件的信息,以及获取后台存储的版本相对于插件平台的版本较新的插件的信息,并进一步生成指示插件平台安装后台新增的而插件平台本地尚未安装的插件的指示信息,以及生成指示插件平台更新对应插件的版本的指示信息。
步骤S306,接收响应该请求下发的本地的核心插件对应的更新策略。
具体地,接收后台响应该请求下发的本地的核心插件对应的更新策略。
在一个实施例中,本地的核心插件对应的更新策略用于描述本地需要更新的核心插件的插件包名、下载地址以及更新方式;其中,更新方式分为首次安装和非首次安装;
首次安装方式用于指示插件平台在安装对应的插件,非首次安装方式用于指示插件平台将对应的插件更新为后台存储的最新版本。
如图4所示,在一个实施例中,根据本地的核心插件对应的更新策略更新本地的核心插件的步骤包括以下步骤:
步骤S402,根据本地的核心插件对应的更新策略描述的下载地址以及插件包名下载核心插件的软件包。
软件包也可称之为软件安装包。核心插件的软件包中包含核心插件的类文件、资源文件以及so文件等。
在一个实施例中,本地的核心插件对应的更新策略包含本地需要更新的各个核心插件的信息列表,每一核心插件的信息包含插件包名、下载地址以及更新方式。信息列表中每一核心插件的插件包名、下载地址以及更新方式相互对应。
步骤S404,判断更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则执行步骤S406,若为非首次安装,则执行步骤S408。
在一个实施例中,步骤S402可从本地的核心插件对应的更新策略中读取相互对应的用于描述同一核心插件的插件包名、下载地址以及更新方式,从下载地址下载该插件包名对应的插件的软件包。
进一步的,步骤S404可判断所读取的对应的更新方式表示首次安装还是非首次安装。
步骤S406,将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
步骤S408,在本地的核心插件的安装目录下删除已经存在的与下载的核心插件的软件包的包名相同的软件包,并将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
步骤S204,启动本地的核心插件。
在一个实施例中,步骤S204可调用本地的核心插件的启动接口,以启动本地的核心插件。其中,每一个核心插件对应一个启动接口。
步骤S206,获取本地的业务插件对应的更新策略,根据本地的业务插件对应的更新策略更新本地的业务插件。
具体地,获取本地的业务插件对应的更新策略包括从后台下载本地的业务插件对应的更新策略。
业务插件可为加速插件、录屏插件和截屏插件等一种或多种。加速插件可以提供加速功能。录屏插件可以录制终端上当前的画面及声音等。截屏插件可以截取终端当前的画面。
如图5所示,在一个实施例中,获取本地的业务插件对应的更新策略的步骤包括以下步骤:
步骤S502,获取本地的业务插件信息列表。
在一个实施例中,可获取指定文件夹下指定文件中记载的本地的各个业务插件的信息,形成信息列表。
在一个实施例中,每一业务插件的信息包含业务插件的包名和版本号。
在一个实施例中,插件平台运行于安卓***中,步骤S502可包括以下步骤:解析指定文件夹下的全局配置文件,获取其中的业务插件的信息,并形成本地的业务插件信息列表。
在一个实施例中,全局配置文件中,业务插件的信息对应有预设的业务插件标记。读取对应有预设的业务插件标记的插件的信息,即可得到各个业务插件的信息。
步骤S504,发送携带本地的业务插件信息列表的请求,以请求下发本地的业务插件对应的更新策略。
具体地,向后台发送携带本地的业务插件信息列表的请求,以请求后台下发本地的业务插件对应的更新策略。
在一个实施例中,后台接收到本地的业务插件信息列表后,可以将本地的业务插件信息列表与后台存储的最新的业务插件信息进行对比,获取后台新增的而插件平台本地尚未安装的插件的信息,以及获取后台存储的版本相对于插件平台的版本较新的插件的信息,并进一步生成指示插件平台安装后台新增的而插件平台本地尚未安装的插件的指示信息,以及生成指示插件平台更新对应插件的版本的指示信息。
步骤S506,接收响应该请求下发的本地的业务插件对应的更新策略。
具体地,接收后台响应该请求下发的本地的业务插件对应的更新策略。
在一个实施例中,本地的业务插件对应的更新策略用于描述本地需要更新的业务插件的插件包名、下载地址以及更新方式;其中,更新方式分为首次安装和非首次安装;
如图6所示,在一个实施例中,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件的步骤包括以下步骤:
步骤S602,根据本地的业务插件对应的更新策略描述的下载地址以及插件包名下载业务插件的软件包。
业务插件的软件包中包含业务插件的类文件、资源文件以及so文件等。
在一个实施例中,本地的业务插件对应的更新策略包含本地需要更新的各个业务插件的信息列表,每一业务插件的信息包含插件包名、下载地址以及更新方式。信息列表中每一业务插件的插件包名、下载地址以及更新方式相互对应。
步骤S604,判断本地的业务插件对应的更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则执行步骤S606,若为非首次安装,则执行步骤S608。
在一个实施例中,步骤S602可从本地的业务插件对应的更新策略中读取相互对应的用于描述同一业务插件的插件包名、下载地址以及更新方式,从下载地址下载该插件包名对应的插件的软件包。
进一步的,步骤S604可判断所读取的对应的更新方式表示首次安装还是非首次安装。
步骤S606,将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
步骤S608,在本地的业务插件的安装目录下删除已经存在的与下载的业务插件的软件包的包名相同的软件包,并将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
步骤S208,启动本地的业务插件。
在一个实施例中,步骤S208可调用本地的业务插件的启动接口,以启动本地的业务插件。其中,每一个业务插件对应一个启动接口。
步骤S210,在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,本地的核心插件对应的类文件中存储本地的核心插件的类。
业务插件调用某一类可以理解为业务插件调用该类的方法或者使用该类的数据。业务插件调用某一类,说明业务插件的代码中包含调用该类的方法或使用该类的数据的代码。
当业务插件的代码被执行到调用类的方法或使用类的数据的代码时,类会被加载。
上述的类文件中存储类可以理解为类文件中存储类的描述信息,例如类的代码等;而加载类,则可以理解为加载类的描述信息。
在一个实施例中,插件平台的程序语言为java,本实施例中,类的加载指的是将类加载到java虚拟机中。
如图7所示,在一个实施例中,步骤S210包括以下步骤:
步骤S702,在加载本地的业务插件所调用的类的过程中,在待加载类所属的业务插件对应的类文件中查找待加载类。
在一个实施例中,加载业务插件所调用的类由业务插件的类加载器(ClassLoader)完成。在一个实施例中,加载业务插件所调用的类由业务插件的类加载器(ClassLoader)的加载方法(loadClass)实现。步骤S702~S714可以理解为类加载器的加载方法的实现逻辑。插件平台可通过调用业务插件的类加载器的加载方法来执行步骤S702~S714。
在一个实施例中,业务插件对应的类文件中存储业务插件的类。
在一个实施例中,业务插件对应的类文件位于预先设定的文件夹下。在一个实施例中,业务插件对应的类文件为dex文件。
在一个实施例中,业务插件对应的类文件的信息,例如路径信息以及类文件标识等,指定于业务插件的代码中。
步骤S704,判断所属的业务插件对应的类文件中是否存在待加载类,若是,则执行步骤S706,否则,执行步骤S708。
可判断所属的业务插件对应的类文件中是否存在待加载类的描述信息。
步骤S706,从所属的业务插件对应的类文件中加载待加载类。
步骤S708,在本地的核心插件对应的类文件中查找待加载类,进入步骤S710。
在一个实施例中,核心插件对应的类文件位于预先设定的文件夹下。在一个实施例中,核心插件对应的类文件为dex文件。
步骤S710,判断本地的核心插件对应的类文件中是否存在待加载类,若是,则执行步骤S712,否则,执行步骤S714。
步骤S712,从本地的核心插件对应的类文件中加载待加载类。
步骤S714,在所属的业务插件的类加载器的上级类加载器指定的类文件中查找待加载类,若上级类加载器指定的类文件中存在待加载类,则从上级类加载器指定的类文件中加载待加载类。
除了最上级(最原始)的类加载器外,每一类加载器都有父类加载器(parentClassLoader),也可称为上一级类加载器。类加载器的上级类加载器包括:类加载器的上一级类加载器、类加载器的上一级类加载器的上一级类加载器,依此类推,一直追溯到最上级的类加载器。
业务插件的类加载器的上一级类加载器为插件平台的类加载器,插件平台的类加载器的上一级类加载器为安卓***的类加载器。安卓***的类加载器之间又具有层级关系。
每一类加载器中都指定了默认的从中加载类的类文件,即,每一类加载器的代码中设定了默认的从中加载类的类文件。
在一个实施例中,步骤S714可以从下至上逐级查找各个上级类加载器的每一类加载器指定的类文件,直到找到存在待加载类的类文件,并从其中加载待加载类。
在一个实施例中,若上述的上级类加载器指定的类文件中不存在待加载类,则可抛出异常信息。
上述插件平台中的插件更新加载方法,在插件平台被启动后,更新以及加载本地的核心插件,并进一步更新以及加载本地的业务插件;其中,核心插件提供用于被业务插件调用的接口;由于业务插件可能调用了核心插件提供的接口,而核心插件提供的接口很可能使用了本地核心插件的类,上述方法,在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,可以确保成功地加载业务插件所调用的类。当核心插件提供的用于被业务插件调用的接口使用了核心插件所实现的基础功能时,上述方法可确保业务插件成功的使用核心插件所实现的基础功能;从而上述方法提供了一种插件平台上的业务插件可使用插件平台上的核心插件所实现的基础功能的机制;
当业务插件所调用的由核心插件所实现的基础功能发生变更时,只需要更新对应的核心插件即可,而不需要下载整个插件平台的软件包并进行安装,从而,一定程序上,从业务插件的角度上来说,可节省为了适应插件平台上的插件可调用的基础功能发生变更所使用的网络流量和所花费的时间。
本申请所述的基础功能可以理解为***件调用而非由插件本身实现的功能。例如,某一插件调用某一功能,而该功能由另一插件或插件平台实现,则即可称该插件调用该基础功能。
下面结合具体的应用场景进行描述。以上述插件平台中插件更新加载方法应用于游戏插件平台为例,在游戏插件平台中插件更新加载的过程包括:
(1)在游戏插件平台被启动后,获取本地的与游戏应用相应的核心插件对应的更新策略,根据本地的核心插件对应的更新策略更新本地的核心插件,启动本地的核心插件;核心插件提供用于被游戏应用中业务插件调用的接口;
获取本地的核心插件对应的更新策略的步骤包括:获取本地的核心插件信息列表;发送携带本地的与游戏应用相应的核心插件信息列表的请求,以请求本地的核心插件对应的更新策略;接收响应该请求下发的所述本地的核心插件对应的更新策略。
本地的核心插件对应的更新策略用于描述本地需要更新游戏应用的核心插件的插件包名、下载地址以及更新方式;更新方式分为首次安装和非首次安装。
根据所述本地的核心插件对应的更新策略更新所述本地的核心插件的步骤包括:根据本地的核心插件对应的更新策略描述的下载地址以及插件包名下载核心插件的软件包,并判断该更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下,若为非首次安装,则在本地的核心插件的安装目录下删除已经存在的与下载的核心插件的软件包的包名相同的软件包,并将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
(2)获取本地的与游戏应用相应的业务插件对应的更新策略,根据本地的业务插件对应的更新策略更新所述本地的业务插件,启动本地的业务插件;
获取本地的业务插件对应的更新策略的步骤包括:获取本地的与游戏应用相应的业务插件信息列表;发送携带本地的业务插件信息列表的请求,以请求本地的业务插件对应的更新策略;接收响应请求下发的所述本地的业务插件对应的更新策略。
本地的业务插件对应的更新策略用于描述本地需要更新的业务插件的插件包名、下载地址以及更新方式;更新方式分为首次安装和非首次安装。
根据本地的业务插件对应的更新策略更新本地的业务插件的步骤包括:根据本地的与游戏应用相应的业务插件对应的更新策略描述的下载地址以及插件包名下载业务插件的软件包,并判断该更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下,若为非首次安装,则在本地的业务插件的安装目录下删除已经存在的与下载的业务插件的软件包的包名相同的软件包,并将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
(3)在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,本地的核心插件对应的类文件中存储本地的核心插件的类。
在加载本地的业务插件所调用的类的过程中,在待加载类所属的业务插件对应的类文件中查找待加载类;业务插件对应的类文件中存储业务插件的类;
若所属的业务插件对应的类文件中存在待加载类,则从所属的业务插件对应的类文件中加载待加载类;
若所属的业务插件对应的类文件中不存在待加载类,则在本地的与游戏应用相应的核心插件对应的类文件中查找待加载类,若本地的与游戏应用相应的核心插件对应的类文件中存在待加载类,则从本地的与游戏应用相应的核心插件对应的类文件中加载待加载类;
若本地的核心插件对应的类文件中不存在待加载类,则在所属的业务插件的类加载器的上级类加载器指定的类文件中查找待加载类,若该上级类加载器指定的类文件中存在待加载类,则从该上级类加载器指定的类文件中加载待加载类。
上述插件平台中的插件更新加载方法不限于游戏插件平台,还可应用于各种应用的插件平台,例如浏览器插件、邮件客户端插件等。
如图8所示,在一个实施例中,一种插件平台中的插件更新加载装置,包括核心插件下载更新模块802、核心插件启动模块804、业务插件下载更新模块806、业务插件启动模块808和业务插件类加载模块810,其中:
核心插件下载更新模块802用于插件平台被启动后,获取本地的核心插件对应的更新策略,根据本地的核心插件对应的更新策略更新本地的核心插件。
其中,核心插件提供用于被业务插件调用的接口。获取本地的核心插件对应的更新策略包括:从后台下载本地的核心插件对应的更新策略。后台可为服务器或下载中心或代理中心等。服务器可为提供该插件的服务商的服务器或租用的服务器等。下载中心可为提供软件下载服务的平台或应用商店等。代理中心可为提供代理服务的代理者所构建的平台。
在一个实施例中,上述接口可以理解为应用程序编程接口,简称API(ApplicationProgrammingInterface),为软件***不同组成部分衔接的约定。
在一个实施例中,核心插件提供的用于被业务插件调用的接口使用(也可以说调用)了核心插件所实现的基础功能。
在一个实施例中,本地的核心插件对应的更新策略用于指示插件平台更新本地的核心插件。
在一个实施例中,本地的核心插件对应的更新策略由后台根据该本地的核心插件的信息列表以及后台的最新的核心插件的信息列表生成。更新策略用于指示插件平台进行以下两项工作:将后台新增的、本地尚未安装的插件进行安装;以及,将本地已安装的插件的过时版本更新为对应插件的后台存储的最新版本。
在一个实施例中,核心插件下载更新模块802获取本地的核心插件对应的更新策略的过程包括:
(1)获取本地的核心插件信息列表。
在一个实施例中,核心插件下载更新模块802可获取指定文件夹下指定文件中记载的本地的各个核心插件的信息,形成信息列表。
在一个实施例中,每一核心插件的信息包含核心插件的包名和版本号。
在一个实施例中,插件平台运行于安卓***(Android)中,核心插件下载更新模块802解析指定文件夹下的全局配置文件(AndroidManifest.xml),获取其中的核心插件的信息,并形成本地的核心插件信息列表。
在一个实施例中,全局配置文件位于指定文件夹下的插件安装包中,核心插件下载更新模块802可调用Android提供的解析APK(AndroidPackage,即Android安装包)的接口解析插件安装包中的全局配置文件。
在一个实施例中,全局配置文件中,核心插件的信息对应有预设的核心插件标记。核心插件下载更新模块802读取对应有预设的核心插件标记的插件的信息,即可得到各个核心插件的信息。
(2)发送携带本地的核心插件信息列表的请求,以请求下发本地的核心插件对应的更新策略。
具体地,向后台发送携带本地的核心插件信息列表的请求,以请求后台下发本地的核心插件对应的更新策略。
在一个实施例中,后台接收到本地的核心插件信息列表后,可以将本地的核心插件信息列表与后台存储的最新的核心插件信息进行对比,获取后台新增的而插件平台本地尚未安装的插件的信息,以及获取后台存储的版本相对于插件平台的版本较新的插件的信息,并进一步生成指示插件平台安装后台新增的而插件平台本地尚未安装的插件的指示信息,以及生成指示插件平台更新对应插件的版本的指示信息。
(3)接收响应该请求下发的本地的核心插件对应的更新策略。
具体地,接收后台响应该请求下发的本地的核心插件对应的更新策略。
在一个实施例中,本地的核心插件对应的更新策略用于描述本地需要更新的核心插件的插件包名、下载地址以及更新方式;其中,更新方式分为首次安装和非首次安装;
首次安装方式用于指示插件平台在安装对应的插件,非首次安装方式用于指示插件平台将对应的插件更新为后台存储的最新版本。
在一个实施例中,核心插件下载更新模块802根据本地的核心插件对应的更新策略更新本地的核心插件的过程包括:
(1)根据本地的核心插件对应的更新策略描述的下载地址以及插件包名下载核心插件的软件包。
软件包也可称之为软件安装包。核心插件的软件包中包含核心插件的类文件、资源文件以及so文件等。
在一个实施例中,本地的核心插件对应的更新策略包含本地需要更新的各个核心插件的信息列表,每一核心插件的信息包含插件包名、下载地址以及更新方式。信息列表中每一核心插件的插件包名、下载地址以及更新方式相互对应。
(2)判断更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下,若为非首次安装,则在本地的核心插件的安装目录下删除已经存在的与下载的核心插件的软件包的包名相同的软件包,并将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
在一个实施例中,核心插件下载更新模块802可从本地的核心插件对应的更新策略中读取相互对应的用于描述同一核心插件的插件包名、下载地址以及更新方式,从下载地址下载该插件包名对应的插件的软件包。
进一步的,核心插件下载更新模块802可判断所读取的对应的更新方式表示首次安装还是非首次安装。
核心插件启动模块804用于启动本地的核心插件。
在一个实施例中,核心插件启动模块804可调用本地的核心插件的启动接口,以启动本地的核心插件。其中,每一个核心插件对应一个启动接口。
业务插件下载更新模块806用于获取本地的业务插件对应的更新策略,根据本地的业务插件对应的更新策略更新本地的业务插件。具体地,获取本地的业务插件对应的更新策略包括从后台下载本地的业务插件对应的更新策略。
在一个实施例中,业务插件下载更新模块806获取本地的业务插件对应的更新策略的过程包括:
(1)获取本地的业务插件信息列表。
在一个实施例中,业务插件下载更新模块806可获取指定文件夹下指定文件中记载的本地的各个业务插件的信息,形成信息列表。
在一个实施例中,每一业务插件的信息包含业务插件的包名和版本号。
在一个实施例中,插件平台运行于安卓***中,业务插件下载更新模块806可解析指定文件夹下的全局配置文件,获取其中的业务插件的信息,并形成本地的业务插件信息列表。
在一个实施例中,全局配置文件中,业务插件的信息对应有预设的业务插件标记。业务插件下载更新模块806可读取对应有预设的业务插件标记的插件的信息,即可得到各个业务插件的信息。
(2)发送携带本地的业务插件信息列表的请求,以请求下发本地的业务插件对应的更新策略。
具体地,向后台发送携带本地的业务插件信息列表的请求,以请求后台下发本地的业务插件对应的更新策略。
在一个实施例中,后台接收到本地的业务插件信息列表后,可以将本地的业务插件信息列表与后台存储的最新的业务插件信息进行对比,获取后台新增的而插件平台本地尚未安装的插件的信息,以及获取后台存储的版本相对于插件平台的版本较新的插件的信息,并进一步生成指示插件平台安装后台新增的而插件平台本地尚未安装的插件的指示信息,以及生成指示插件平台更新对应插件的版本的指示信息。
(3)接收响应该请求下发的本地的业务插件对应的更新策略。
具体地,接收后台响应该请求下发的本地的业务插件对应的更新策略。
在一个实施例中,本地的业务插件对应的更新策略用于描述本地需要更新的业务插件的插件包名、下载地址以及更新方式;其中,更新方式分为首次安装和非首次安装;
在一个实施例中,业务插件下载更新模块806根据所述本地的业务插件对应的更新策略更新所述本地的业务插件的过程包括:
(1)根据本地的业务插件对应的更新策略描述的下载地址以及插件包名下载业务插件的软件包。
业务插件的软件包中包含业务插件的类文件、资源文件以及so文件等。
在一个实施例中,本地的业务插件对应的更新策略包含本地需要更新的各个业务插件的信息列表,每一业务插件的信息包含插件包名、下载地址以及更新方式。信息列表中每一业务插件的插件包名、下载地址以及更新方式相互对应。
(2)判断本地的业务插件对应的更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下,若为非首次安装,则在本地的业务插件的安装目录下删除已经存在的与下载的业务插件的软件包的包名相同的软件包,并将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
在一个实施例中,业务插件下载更新模块806可从本地的业务插件对应的更新策略中读取相互对应的用于描述同一业务插件的插件包名、下载地址以及更新方式,从下载地址下载该插件包名对应的插件的软件包。
进一步的,业务插件下载更新模块806可判断所读取的对应的更新方式表示首次安装还是非首次安装。
业务插件启动模块808用于启动本地的业务插件。
在一个实施例中,业务插件启动模块808可调用本地的业务插件的启动接口,以启动本地的业务插件。其中,每一个业务插件对应一个启动接口。
业务插件类加载模块810用于在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,本地的核心插件对应的类文件中存储本地的核心插件的类。
业务插件调用某一类可以理解为业务插件调用该类的方法或者使用该类的数据。业务插件调用某一类,说明业务插件的代码中包含调用该类的方法或使用该类的数据的代码。
当业务插件的代码被执行到调用类的方法或使用类的数据的代码时,类会被加载。
上述的类文件中存储类可以理解为类文件中存储类的描述信息,例如类的代码等;而加载类,则可以理解为加载类的描述信息。
在一个实施例中,插件平台的程序语言为java,本实施例中,类的加载指的是将类加载到java虚拟机中。
在一个实施例中,业务插件类加载模块810用于在加载本地的业务插件所调用的类的过程中,在待加载类所属的业务插件对应的类文件中查找待加载类。
在一个实施例中,加载业务插件所调用的类由业务插件的类加载器(ClassLoader)完成。在一个实施例中,加载业务插件所调用的类由业务插件的类加载器(ClassLoader)的加载方法(loadClass)实现。业务插件类加载模块810可通过调用业务插件的类加载器的加载方法来实现业务插件类加载模块810的功能。
在一个实施例中,业务插件对应的类文件中存储业务插件的类。
在一个实施例中,业务插件对应的类文件位于预先设定的文件夹下。在一个实施例中,业务插件对应的类文件为dex文件。
在一个实施例中,业务插件对应的类文件的信息,例如路径信息以及类文件标识等,指定于业务插件的代码中。
进一步的,业务插件类加载模块810用于判断所属的业务插件对应的类文件中是否存在待加载类。
业务插件类加载模块810可判断所属的业务插件对应的类文件中是否存在待加载类的描述信息。
进一步的,业务插件类加载模块810还用于若所属的业务插件对应的类文件中存在待加载类,则从所属的业务插件对应的类文件中加载待加载类。
业务插件类加载模块810还用于若所属的业务插件对应的类文件中不存在待加载类,则在本地的核心插件对应的类文件中查找待加载类,判断本地的核心插件对应的类文件中是否存在待加载类。
在一个实施例中,核心插件对应的类文件位于预先设定的文件夹下。在一个实施例中,核心插件对应的类文件为dex文件。
进一步的,业务插件类加载模块810还用于若本地的核心插件对应的类文件中存在待加载类,则从本地的核心插件对应的类文件中加载待加载类;
业务插件类加载模块810还用于若本地的核心插件对应的类文件中不存在待加载类,则在所属的业务插件的类加载器的上级类加载器指定的类文件中查找待加载类,若上级类加载器指定的类文件中存在待加载类,则从上级类加载器指定的类文件中加载待加载类。
除了最上级(最原始)的类加载器外,每一类加载器都有父类加载器(parentClassLoader),也可称为上一级类加载器。类加载器的上级类加载器包括:类加载器的上一级类加载器、类加载器的上一级类加载器的上一级类加载器,依此类推,一直追溯到最上级的类加载器。
业务插件的类加载器的上一级类加载器为插件平台的类加载器,插件平台的类加载器的上一级类加载器为安卓***的类加载器。安卓***的类加载器之间又具有层级关系。
每一类加载器中都指定了默认的从中加载类的类文件,即,每一类加载器的代码中设定了默认的从中加载类的类文件。
在一个实施例中,业务插件类加载模块810可以从下至上逐级查找各个上级类加载器的每一类加载器指定的类文件,直到找到存在待加载类的类文件,并从其中加载待加载类。
在一个实施例中,业务插件类加载模块810还用于若上述的上级类加载器指定的类文件中不存在待加载类,则可抛出异常信息。
上述插件平台中的插件更新加载装置,在插件平台被启动后,更新以及加载本地的核心插件,并进一步更新以及加载本地的业务插件;其中,核心插件提供用于被业务插件调用的接口;由于业务插件可能调用了核心插件提供的接口,而核心插件提供的接口很可能使用了本地核心插件的类,上述方法,在加载本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到本地的核心插件对应的类文件,可以确保成功地加载业务插件所调用的类。当核心插件提供的用于被业务插件调用的接口使用了核心插件所实现的基础功能时,上述装置可确保业务插件成功的使用核心插件所实现的基础功能;从而上述方法提供了一种插件平台上的业务插件可使用插件平台上的核心插件所实现的基础功能的机制;
当业务插件所调用的由核心插件所实现的基础功能发生变更时,只需要更新对应的核心插件即可,而不需要下载整个插件平台的软件包并进行安装,从而,可节省为了适应插件平台上的插件可调用的基础功能发生变更所使用的网络流量和所花费的时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种插件平台中的插件更新加载方法,包括以下步骤:
插件平台被启动后,获取本地的核心插件对应的更新策略,根据所述本地的核心插件对应的更新策略更新所述本地的核心插件,启动所述本地的核心插件;所述核心插件提供用于被业务插件调用的接口;
获取本地的业务插件对应的更新策略,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件,启动所述本地的业务插件;
在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件,所述本地的核心插件对应的类文件中存储所述本地的核心插件的类。
2.根据权利要求1所述的插件平台中的插件更新方法,其特征在于,所述获取本地的核心插件对应的更新策略的步骤包括:
获取本地的核心插件信息列表;
发送携带所述本地的核心插件信息列表的请求,以请求所述本地的核心插件对应的更新策略;
接收响应所述请求下发的所述本地的核心插件对应的更新策略。
3.根据权利要求2所述的插件平台中的插件更新方法,其特征在于,所述本地的核心插件对应的更新策略用于描述本地需要更新的核心插件的插件包名、下载地址以及更新方式;所述更新方式分为首次安装和非首次安装;
所述根据所述本地的核心插件对应的更新策略更新所述本地的核心插件的步骤包括:
根据所述本地的核心插件对应的更新策略描述的下载地址以及插件包名下载核心插件的软件包,并判断所述更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下,若为非首次安装,则在本地的核心插件的安装目录下删除已经存在的与下载的核心插件的软件包的包名相同的软件包,并将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
4.根据权利要求1所述的插件平台中的插件更新方法,其特征在于,所述获取本地的业务插件对应的更新策略的步骤包括:
获取本地的业务插件信息列表;
发送携带所述本地的业务插件信息列表的请求,以请求所述本地的业务插件对应的更新策略;
接收响应所述请求下发的所述本地的业务插件对应的更新策略。
5.根据权利要求4所述的插件平台中的插件更新方法,其特征在于,所述本地的业务插件对应的更新策略用于描述本地需要更新的业务插件的插件包名、下载地址以及更新方式;所述更新方式分为首次安装和非首次安装;
所述根据所述本地的业务插件对应的更新策略更新所述本地的业务插件的步骤包括:
根据所述本地的业务插件对应的更新策略描述的下载地址以及插件包名下载业务插件的软件包,并判断所述更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下,若为非首次安装,则在本地的业务插件的安装目录下删除已经存在的与下载的业务插件的软件包的包名相同的软件包,并将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
6.根据权利要求1所述的插件平台中的插件更新方法,其特征在于,在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件夹的步骤包括:
在加载所述本地的业务插件所调用的类的过程中,在待加载类所属的业务插件对应的类文件中查找待加载类;业务插件对应的类文件中存储业务插件的类;
若所属的业务插件对应的类文件中存在待加载类,则从所属的业务插件对应的类文件中加载待加载类;
若所属的业务插件对应的类文件中不存在待加载类,则在所述本地的核心插件对应的类文件中查找待加载类,若所述本地的核心插件对应的类文件中存在待加载类,则从所述本地的核心插件对应的类文件中加载待加载类;
若所述本地的核心插件对应的类文件中不存在待加载类,则在所属的业务插件的类加载器的上级类加载器指定的类文件中查找待加载类,若所述上级类加载器指定的类文件中存在待加载类,则从所述上级类加载器指定的类文件中加载待加载类。
7.一种插件平台中的插件更新加载装置,其特征在于,包括:
核心插件下载更新模块,用于插件平台被启动后,获取本地的核心插件对应的更新策略,根据所述本地的核心插件对应的更新策略更新所述本地的核心插件;
核心插件启动模块,用于启动所述本地的核心插件;所述核心插件提供用于被业务插件调用的接口;
业务插件下载更新模块,用于获取本地的业务插件对应的更新策略,根据所述本地的业务插件对应的更新策略更新所述本地的业务插件;
业务插件启动模块,用于启动所述本地的业务插件;
业务插件类加载模块,用于在加载所述本地的业务插件所调用的类的过程中,将待加载类的查找范围拓展到所述本地的核心插件对应的类文件,所述本地的核心插件对应的类文件中存储所述本地的核心插件的类。
8.根据权利要求7所述的插件平台中的插件更新装置,其特征在于,所述核心插件下载更新模块获取本地的核心插件对应的更新策略的过程包括:获取本地的核心插件信息列表;发送携带所述本地的核心插件信息列表的请求,以请求下发所述本地的核心插件对应的更新策略;接收响应所述请求下发的所述本地的核心插件对应的更新策略。
9.根据权利要求8所述的插件平台中的插件更新装置,其特征在于,所述本地的核心插件对应的更新策略用于描述本地需要更新的核心插件的插件包名、下载地址以及更新方式;所述更新方式分为首次安装和非首次安装;
所述核心插件下载更新模块根据所述本地的核心插件对应的更新策略更新所述本地的核心插件的过程包括:
根据所述本地的核心插件对应的更新策略描述的下载地址以及插件包名下载核心插件的软件包,并判断所述更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下,若为非首次安装,则在本地的核心插件的安装目录下删除已经存在的与下载的核心插件的软件包的包名相同的软件包,并将下载的核心插件的软件包拷贝到本地的核心插件的安装目录下。
10.根据权利要求7所述的插件平台中的插件更新装置,其特征在于,所述业务插件下载更新模块获取本地的业务插件对应的更新策略的过程包括:获取本地的业务插件信息列表;发送携带所述本地的业务插件信息列表的请求,以请求下发所述本地的业务插件对应的更新策略;接收响应所述请求下发的所述本地的业务插件对应的更新策略。
11.根据权利要求10所述的插件平台中的插件更新装置,其特征在于,所述本地的业务插件对应的更新策略用于描述本地需要更新的业务插件的插件包名、下载地址以及更新方式;所述更新方式分为首次安装和非首次安装;
所述业务插件下载更新模块根据所述本地的业务插件对应的更新策略更新所述本地的业务插件的过程包括:
根据所述本地的业务插件对应的更新策略描述的下载地址以及插件包名下载业务插件的软件包,并判断所述更新策略中描述的对应的更新方式为首次安装还是非首次安装,若为首次安装,则将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下,若为非首次安装,则在本地的业务插件的安装目录下删除已经存在的与下载的业务插件的软件包的包名相同的软件包,并将下载的业务插件的软件包拷贝到本地的业务插件的安装目录下。
12.根据权利要求7所述的插件平台中的插件更新装置,其特征在于,业务插件类加载模块用于:
在加载所述本地的业务插件所调用的类的过程中,在待加载类所属的业务插件对应的类文件中查找待加载类;其中,业务插件对应的类文件中存储业务插件的类;
若所属的业务插件对应的类文件中存在待加载类,则从所属的业务插件对应的类文件中加载待加载类;
若所属的业务插件对应的类文件中不存在待加载类,则在所述本地的核心插件对应的类文件中查找待加载类,若所述本地的核心插件对应的类文件中存在待加载类,则从所述本地的核心插件对应的类文件中加载待加载类;
若所述本地的核心插件对应的类文件中不存在待加载类,则在所属的业务插件的类加载器的上级类加载器指定的类文件中查找待加载类,若所述上级类加载器指定的类文件中存在待加载类,则从所述上级类加载器指定的类文件中加载待加载类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510501298.9A CN105373396B (zh) | 2015-08-14 | 2015-08-14 | 插件平台中的插件更新加载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510501298.9A CN105373396B (zh) | 2015-08-14 | 2015-08-14 | 插件平台中的插件更新加载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373396A true CN105373396A (zh) | 2016-03-02 |
CN105373396B CN105373396B (zh) | 2018-01-05 |
Family
ID=55375624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510501298.9A Active CN105373396B (zh) | 2015-08-14 | 2015-08-14 | 插件平台中的插件更新加载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373396B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930183A (zh) * | 2016-04-13 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种视频应用程序升级方法和装置 |
CN106131612A (zh) * | 2016-06-30 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 安卓app动态加载资源功能模块的方法及*** |
CN107346252A (zh) * | 2016-05-07 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN107436787A (zh) * | 2017-07-31 | 2017-12-05 | 腾讯科技(深圳)有限公司 | 资源处理方法、装置、存储介质和电子装置 |
CN107608663A (zh) * | 2017-09-27 | 2018-01-19 | 北京蜂语网络科技有限公司 | 一种移动应用插件及移动应用的开发方法及装置 |
CN107643952A (zh) * | 2016-07-20 | 2018-01-30 | 平安科技(深圳)有限公司 | 本地类库调用方法和装置 |
CN107977410A (zh) * | 2017-11-21 | 2018-05-01 | 掌阅科技股份有限公司 | 基于电子书应用的书架管理方法及电子设备 |
CN110162345A (zh) * | 2019-05-05 | 2019-08-23 | 网宿科技股份有限公司 | 一种应用程序访问方法、装置和存储介质 |
CN110413229A (zh) * | 2019-07-10 | 2019-11-05 | 华中科技大学 | 一种数据写入方法 |
CN110704122A (zh) * | 2018-07-10 | 2020-01-17 | ***通信集团浙江有限公司 | 插件加载方法及装置 |
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的*** |
CN111459570A (zh) * | 2020-03-30 | 2020-07-28 | 掌阅科技股份有限公司 | Pdf插件加载方法、电子设备和计算机存储介质 |
CN111754131A (zh) * | 2020-06-30 | 2020-10-09 | 苏州朗动网络科技有限公司 | 企业情报动态监控方法、设备及介质 |
CN112068899A (zh) * | 2020-09-01 | 2020-12-11 | 北京五八信息技术有限公司 | 插件加载方法、装置、电子设备及存储介质 |
CN112486539A (zh) * | 2020-12-09 | 2021-03-12 | 税友软件集团股份有限公司 | 一种应用更新方法、装置、设备及存储介质 |
CN114661376A (zh) * | 2022-03-29 | 2022-06-24 | 杭州安恒信息技术股份有限公司 | 一种***功能拓展方法、装置、设备及介质 |
CN114936049A (zh) * | 2022-05-17 | 2022-08-23 | 浙江大学 | 一种可热插拔的数据融合平台算子动态扩展方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464805A (zh) * | 2008-12-24 | 2009-06-24 | 中兴通讯股份有限公司 | 一种插件管理方法及其*** |
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用***及其实现方法 |
CN102253840A (zh) * | 2011-08-04 | 2011-11-23 | 深圳芯智汇科技有限公司 | 插件管理方法及插件管理器 |
CN102880935A (zh) * | 2012-09-10 | 2013-01-16 | 曙光信息产业(北京)有限公司 | 一种Linux集群软件的管理方法及其管理*** |
CN103425468A (zh) * | 2012-05-17 | 2013-12-04 | 航天信息股份有限公司 | 插件式软件集成方法及装置 |
CN103970573A (zh) * | 2014-05-21 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 用于移动设备的轻应用程序***及其程序加载***和方法 |
CN104679572A (zh) * | 2015-03-26 | 2015-06-03 | 北京神舟航天软件技术有限公司 | 基于预加载机制的插件支持方法 |
-
2015
- 2015-08-14 CN CN201510501298.9A patent/CN105373396B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464805A (zh) * | 2008-12-24 | 2009-06-24 | 中兴通讯股份有限公司 | 一种插件管理方法及其*** |
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用***及其实现方法 |
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102253840A (zh) * | 2011-08-04 | 2011-11-23 | 深圳芯智汇科技有限公司 | 插件管理方法及插件管理器 |
CN103425468A (zh) * | 2012-05-17 | 2013-12-04 | 航天信息股份有限公司 | 插件式软件集成方法及装置 |
CN102880935A (zh) * | 2012-09-10 | 2013-01-16 | 曙光信息产业(北京)有限公司 | 一种Linux集群软件的管理方法及其管理*** |
CN103970573A (zh) * | 2014-05-21 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 用于移动设备的轻应用程序***及其程序加载***和方法 |
CN104679572A (zh) * | 2015-03-26 | 2015-06-03 | 北京神舟航天软件技术有限公司 | 基于预加载机制的插件支持方法 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930183A (zh) * | 2016-04-13 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种视频应用程序升级方法和装置 |
CN107346252A (zh) * | 2016-05-07 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN107346252B (zh) * | 2016-05-07 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN106131612A (zh) * | 2016-06-30 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 安卓app动态加载资源功能模块的方法及*** |
CN107643952B (zh) * | 2016-07-20 | 2020-03-17 | 平安科技(深圳)有限公司 | 本地类库调用方法和装置 |
CN107643952A (zh) * | 2016-07-20 | 2018-01-30 | 平安科技(深圳)有限公司 | 本地类库调用方法和装置 |
CN107436787A (zh) * | 2017-07-31 | 2017-12-05 | 腾讯科技(深圳)有限公司 | 资源处理方法、装置、存储介质和电子装置 |
CN107608663A (zh) * | 2017-09-27 | 2018-01-19 | 北京蜂语网络科技有限公司 | 一种移动应用插件及移动应用的开发方法及装置 |
CN107977410B (zh) * | 2017-11-21 | 2020-07-03 | 掌阅科技股份有限公司 | 基于电子书应用的书架管理方法及电子设备 |
CN107977410A (zh) * | 2017-11-21 | 2018-05-01 | 掌阅科技股份有限公司 | 基于电子书应用的书架管理方法及电子设备 |
CN110704122A (zh) * | 2018-07-10 | 2020-01-17 | ***通信集团浙江有限公司 | 插件加载方法及装置 |
CN110162345A (zh) * | 2019-05-05 | 2019-08-23 | 网宿科技股份有限公司 | 一种应用程序访问方法、装置和存储介质 |
CN110162345B (zh) * | 2019-05-05 | 2022-02-18 | 网宿科技股份有限公司 | 一种应用程序访问方法、装置和存储介质 |
CN110413229A (zh) * | 2019-07-10 | 2019-11-05 | 华中科技大学 | 一种数据写入方法 |
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的*** |
CN110764836B (zh) * | 2019-09-18 | 2024-02-09 | 华为技术有限公司 | 插件实现的方法和插件实现的*** |
US11880695B2 (en) | 2019-09-18 | 2024-01-23 | Huawei Technologies Co., Ltd. | Plug-in implementation method and plug-in implementation system |
CN111459570A (zh) * | 2020-03-30 | 2020-07-28 | 掌阅科技股份有限公司 | Pdf插件加载方法、电子设备和计算机存储介质 |
CN111459570B (zh) * | 2020-03-30 | 2023-03-17 | 掌阅科技股份有限公司 | Pdf插件加载方法、电子设备和计算机存储介质 |
CN111754131A (zh) * | 2020-06-30 | 2020-10-09 | 苏州朗动网络科技有限公司 | 企业情报动态监控方法、设备及介质 |
CN112068899A (zh) * | 2020-09-01 | 2020-12-11 | 北京五八信息技术有限公司 | 插件加载方法、装置、电子设备及存储介质 |
CN112486539A (zh) * | 2020-12-09 | 2021-03-12 | 税友软件集团股份有限公司 | 一种应用更新方法、装置、设备及存储介质 |
CN112486539B (zh) * | 2020-12-09 | 2023-08-08 | 税友软件集团股份有限公司 | 一种应用更新方法、装置、设备及存储介质 |
CN114661376A (zh) * | 2022-03-29 | 2022-06-24 | 杭州安恒信息技术股份有限公司 | 一种***功能拓展方法、装置、设备及介质 |
CN114936049A (zh) * | 2022-05-17 | 2022-08-23 | 浙江大学 | 一种可热插拔的数据融合平台算子动态扩展方法 |
CN114936049B (zh) * | 2022-05-17 | 2023-09-29 | 浙江大学 | 一种可热插拔的数据融合平台算子动态扩展方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105373396B (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373396A (zh) | 插件平台中的插件更新方法和装置 | |
KR100915564B1 (ko) | 실행하는 동안 애플리케이션을 업그레이드하기 위한 방법,소프트웨어 및 장치 | |
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
US7584470B2 (en) | Method and system for peer-to-peer software distribution with a package builder | |
US9454356B2 (en) | Method of and terminal for updating library file in system application | |
US8050663B2 (en) | System and method of providing contents for mobile communication terminal | |
CN107506221A (zh) | 应用程序升级方法、装置及设备 | |
CN105786538B (zh) | 基于安卓***的软件升级方法和装置 | |
RU2339076C2 (ru) | Выполнение неверифицированных программ в операционной среде устройства радиосвязи | |
KR20180137554A (ko) | 패치 업그레이드 기반 파일 처리 방법 및 디바이스, 단말기, 및 저장 매체 | |
US20230393840A1 (en) | File update method and apparatus, device and storage medium | |
CN107220074A (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN107256161B (zh) | 基于electron技术的客户端升级方法 | |
CN104918114A (zh) | 一种操作***升级方法及装置 | |
CN101694625A (zh) | 基于加密服务器管理的客户端软件更新方法及装置 | |
CN112615747B (zh) | 一种网络设备自动部署配置的方法及装置 | |
CN107643898A (zh) | 终端升级方法及装置 | |
CN110968823A (zh) | 一种应用客户端启动方法,业务服务器和客户端设备 | |
CN117056115B (zh) | 应用程序的修复方法和装置、存储介质及电子设备 | |
CN110045998A (zh) | 加载动态库的方法及装置 | |
CN112256351B (zh) | Feign组件的实现方法、微服务调用方法及装置 | |
KR101638689B1 (ko) | 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템 | |
KR101083229B1 (ko) | 이동 단말의 필요 어플리케이션 다운로드 방법, 장치, 시스템, 및 기록 매체 | |
CN112256295A (zh) | 应用程序的更新方法、装置、设备和存储介质 | |
CN107783837B (zh) | 一种进行存储扩展的方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |