CN105138352B - 一种用于安装应用插件的方法和装置 - Google Patents
一种用于安装应用插件的方法和装置 Download PDFInfo
- Publication number
- CN105138352B CN105138352B CN201510465295.4A CN201510465295A CN105138352B CN 105138352 B CN105138352 B CN 105138352B CN 201510465295 A CN201510465295 A CN 201510465295A CN 105138352 B CN105138352 B CN 105138352B
- Authority
- CN
- China
- Prior art keywords
- dependent
- dependent component
- list
- application plug
- plug
- 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
Links
Images
Abstract
本发明提供了一种用于安装应用插件的方法和装置,其中,该方法包括以下步骤:基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表;获取所述待安装依赖组件列表中的各个待安装依赖组件;依次安装所述待安装依赖组件列表中的各个待安装依赖组件;当所述待安装依赖组件列表中的各个待安装依赖组件均安装成功后,安装所述待安装应用插件。与现有技术相比,本发明能够确定待安装应用插件的依赖关系,并自动获取及安装其所依赖的组件,从而能够克服现有插件机制中所存在的插件间依赖问题以及插件间所使用的Jar包冲突的问题,提高了插件机制的灵活性和易用性。
Description
技术领域
本发明涉及插件安装领域,尤其涉及一种用于安装应用插件的方法和装置。
背景技术
现有技术中,插件是一种较为常用的机制。例如,在Android系统中随着应用的增大,很多大应用都使用插件机制来解决Android系统方法数限制的问题。但是插件机制中存在插件可能依赖其他插件的问题。此外,如两个或多个插件分别安装了相同的第三方Jar包,则将造成Jar包冲突问题。在现有技术中,针对上述情况,还没有很好的解决方案。当前,有些方案是通过人工强制插件间不能有依赖,或者人工强制两个插件不能使用相同的第三方Jar包,或通过修改Jar包名等避开Jar包冲突问题。然而,上述方法并未真正解决插件对于其他组件的依赖问题,如何解决上述问题值得研究。
发明内容
本发明的目的是提供一种用于安装应用插件的方法和装置。
根据本发明的一个方面,提供一种用于安装应用插件的方法,其中,所述方法包括:
-基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表;
-获取所述待安装依赖组件列表中的各个待安装依赖组件;
-依次安装所述待安装依赖组件列表中的各个待安装依赖组件;
-当所述一个或多个待安装依赖组件安装成功后,安装所述待安装应用插件。
根据本发明的另一个方面,提供一种用于安装应用插件的装置,其中,所述装置包括:
-用于基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表的装置;
-用于获取所述待安装依赖组件列表中的各个待安装依赖组件的装置;
-用于依次安装所述待安装依赖组件列表中的各个待安装依赖组件的装置;
-用于当所述一个或多个待安装依赖组件安装成功后,安装所述待安装应用插件的装置。
与现有技术相比,本发明能够确定待安装应用插件的依赖关系,并自动获取及安装其所依赖的组件,从而能够克服现有插件机制中所存在的插件间依赖问题以及插件间所使用的Jar包冲突的问题,提高了插件机制的灵活性和易用性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的实施例的用于安装应用插件的方法的流程图;
图2示出根据本发明另一个方面的实施例的用于安装应用插件的装置的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的实施例的用于安装应用插件的方法的流程图。
其中,本实施例的方法主要通过用户设备来实现;所述用户设备包括但不限于PC机、平板电脑、智能手机、PDA等。
需要说明的是,所述用户设备仅为举例,其他现有的或今后可能出现的网络设备和用户设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在一个实施例中,所述用于安装应用插件的方法用于Android系统中。本领域技术人员应理解,该方法也可用于其他现有技术中存在的以及将来可能出现的支持应用插件的操作系统中。
首先,在步骤S11中,用户设备将基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表。
此处,依赖组件意指运行待安装应用插件所需要的其他组件,例如运行待安装应用插件所需要的该应用的其他插件,或运行待安装应用插件所需要的第三方Jar包等。
具体地,用户设备可以通过检查待安装应用插件的依赖关系,来获取该待安装应用插件所依赖的各个组件,也即依赖组件列表。
在一个实施例中,待安装应用插件的安装包中包括该待安装应用插件的依赖关系。例如待安装应用插件A的安装包中可包括其依赖关系“依赖:插件B、插件C、Jar:X.Y.Z”。则用户设备可以通过检查待安装应用插件的安装包来获取到该待安装应用插件的依赖关系。
在一个实施例中,用户设备可以首先从网络设备获取待安装应用插件的基础数据,然后基于该待安装应用插件的基础数据,确定该待安装应用插件的依赖关系。
此处,网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
待安装应用插件的基础数据中可包括该待安装应用插件的依赖关系。例如,待安装应用插件A的基础数据中可定义“依赖:插件B、插件C、Jar:X.Y.Z”,也即该待安装应用插件A依赖于插件B、插件C以及Jar包X.Y.Z。本领域技术人员应理解,此处,对于应用插件的基础数据中定义依赖关系的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个示例中,应用插件的基础数据可由该待安装应用插件的开发人员或维护人员定义,网络设备负责基础数据的存储以及更新,用户设备在本地不存储基础数据。当用户设备需要获取应用插件的基础数据时,用户设备可通过网络来与网络设备通信,并通过网络设备获取到应用插件的基础数据。按照这种方式,用户设备能够保证获取到与网络设备一致的最新的基础数据。
本领域技术人员应理解,此处,对于应用插件的基础数据的定义、存储、更新、获取等相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
当用户设备从网络设备获取到待安装应用插件的基础数据之后,用户设备可基于该待安装应用插件的基础数据,确定该待安装应用插件的依赖关系。例如,用户设备获取到待安装应用插件A的基础数据中包含“依赖:插件B、插件C、Jar:X.Y.Z”,则用户设备可确定该待安装应用插件A的依赖关系为依赖于插件B、插件C、以及Jar包X.Y.Z。
接着,用户设备可基于所述待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表。接上例,用户设备可基于上述依赖关系,确定应用插件A的依赖组件列表为:插件B、插件C、以及Jar包X.Y.Z。接着,用户设备可通过与其上所安装的操作系统进行交互等现有技术所支持的方式来检查该依赖组件列表中的各个依赖组件是否在该用户设备中已安装,并将各个未安装的依赖组件所形成的列表确定为待安装依赖组件列表。例如,接上例,用户设备可检查插件B、插件C以及Jar包X.Y.Z是否在该用户设备中已安装。假定检查结果为插件B未安装、插件C已安装、Jar包X.Y.Z未安装,则用户设备确定待安装依赖组件列表为:插件B、Jar包X.Y.Z。
接着,在步骤S12中,用户设备获取该待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,用户设备将通过网络设备,从预先定义的地址来获取各个待安装依赖组件。
在一个优选实施例中,用户设备首先从网络设备获取该待安装依赖组件列表中的各个待安装依赖组件的基础数据。此处,待安装依赖组件的基础数据可包括如待安装依赖组件的安装包名称、版本、安装包获取地址、安装包大小等信息。在一个示例中,依赖组件的基础数据可由该组件的开发人员或维护人员定义,网络设备负责组件的基础数据的存储以及更新,用户设备在本地不存储组件的基础数据。当用户设备需要获取组件的基础数据时,用户设备可通过网络来与网络设备通信,并通过网络设备获取到组件的基础数据。按照这种方式,用户设备能够保证获取到与网络设备一致的最新的基础数据。本领域技术人员应理解,此处,对于组件的基础数据的定义、存储、更新、获取等相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
当用户设备从网络设备获取到待安装依赖组件的基础数据之后,可基于该基础数据,从本地获取该待安装依赖组件。例如,对于待安装依赖组件X,用户设备从网络设备获取到其基础数据,其中包括该组件X的安装包名称为“plugin-X.apk”、版本号为2.0。则用户设备可在本地查找版本号为2.0的“plugin-X.apk”安装包。如果用户设备本地查找成功,则用户设备可从本地获取到该待安装依赖插件。
当用户设备从本地获取该待安装依赖组件失败时,用户设备可从网络设备获取该待安装依赖组件并将该待安装依赖组件存储在本地。例如,对于一个待安装依赖组件Y,用户设备从网络设备获取到其基础数据,其中包括该组件Y的安装包名称“plugin-Y.apk”、版本号为2.0、安装包获取地址“ftp://server/download/plugin-Y.apk”。假定用户设备按照上文所述的方法未能从本地获取到该待安装依赖组件Y,则用户设备可基于上述安装包获取地址来从网络设备获取该待安装依赖组件Y。当用户设备从网络设备获取到该待安装依赖组件Y后,用户设备可将其存储在本地以供后续使用。
按照上文所述的方法,用户设备获取到待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,对于所获取到的各个待安装依赖组件,用户设备还可基于各个待安装依赖组件的基础数据,对其分别进行验证。例如,用户设备可根据待安装依赖组件的基础数据中所包括的版本号及安装包大小,来验证获取的待安装依赖组件的安装包的版本号、安装包大小是否正确。本领域技术人员应理解,此处,对于基于基础数据来验证所获取的待安装依赖组件的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,在步骤S13中,用户设备将依次安装所述待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,用户设备将首先按照上文所述的方法来获取待安装依赖组件列表中的一个待安装依赖组件,然后安装该待安装依赖组件。当一个待安装依赖组件安装成功后,用户设备将继续获取下一个待安装依赖组件并进行安装。用户设备重复上述过程直至所有待安装依赖组件均已被安装。此外,当用户设备安装某个待安装依赖组件失败时,用户设备将不再继续获取及安装该待安装依赖组件列表中的后续待安装依赖组件。
在另一个实施例中,首先,用户设备将按照上文所述的方法来获取待安装依赖组件列表中的所有待安装依赖组件。然后,用户设备将依次安装该待安装依赖组件列表中的各个待安装依赖组件。当用户设备安装某个待安装依赖组件失败时,用户设备将不再继续安装该待安装依赖组件列表中的后续待安装依赖组件。
在一个优选实施例中,用户设备将首先确定待安装依赖组件列表中的各个待安装依赖组件的类型。例如待安装插件的基础数据中所包括的依赖信息中可以包括各个依赖组件的类型。则用户设备可相应地基于待安装插件的基础数据确定各个待安装依赖组件的类型。在一个实施例中,待安装依赖组件的类型可以为以下任一种:应用插件类型、Jar包类型。接着,用户设备可基于待安装依赖组件的类型来安装该待安装依赖组件。例如,对于应用插件类型的待安装依赖组件,用户设备可按照应用插件的安装方式来进行安装。对于Jar包类型的待安装依赖组件,用户设备可将该Jar包安装到应用的公共目录下,该公共目录下的Jar包可以被该应用的各个插件访问及使用。当该应用的另一个待安装应用插件也依赖于该Jar包时,则其无需再次安装该Jar包,从而避免了多个待安装应用插件分别安装相同的Jar包所可能造成的Jar包冲突问题。
接着,在步骤S14中,当待安装依赖组件列表中的各个待安装依赖组件均安装成功后,用户设备将安装待安装应用插件。在一个实施例中,当待安装依赖组件列表中的某个待安装依赖组件未能安装成功时,用户设备将退出安装该待安装应用插件的过程。
在一个实施例中,待安装应用插件还包括待更新应用插件。待更新应用插件意指在用户设备中已安装但需更新的应用插件。对于待更新应用插件,可以使用本发明的方法,来进行更新。例如,对于已安装的待更新应用插件Z,用户设备可按照上文所述的方法,基于该应用插件Z的依赖关系,来确定该应用插件Z的待安装依赖组件列表;然后用户设备可获取该待安装依赖组件列表中的各个待安装依赖组件并依次安装各个待安装依赖组件;最后当所有待安装依赖组件均安装成功后,用户设备将更新该待更新应用。
图2示出根据本发明另一个方面的实施例的用于安装应用插件的装置的示意图。
其中,本实施例的装置主要通过用户设备来实现;所述用户设备包括但不限于PC机、平板电脑、智能手机、PDA等。
需要说明的是,所述用户设备仅为举例,其他现有的或今后可能出现的网络设备和用户设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在一个实施例中,所述用于安装应用插件的装置用于Android系统中。本领域技术人员应理解,该装置也可用于其他现有技术中存在的以及将来可能出现的支持应用插件的操作系统中。
如图2所示,所述用于安装应用插件的装置包括用于基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表的装置21,以下简称第一确定装置21;用于获取所述待安装依赖组件列表中的各个待安装依赖组件的装置22,以下简称第一获取装置22;用于依次安装所述待安装依赖组件列表中的各个待安装依赖组件的装置23,以下简称第一安装装置23;以及用于当所述待安装依赖组件列表中的各个待安装依赖组件均安装成功后,安装所述待安装应用插件的装置24,以下简称插件安装装置24。
首先,第一确定装置21将基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表。
此处,依赖组件意指运行待安装应用插件所需要的其他组件,例如运行待安装应用插件所需要的该应用的其他插件,或运行待安装应用插件所需要的第三方Jar包等。
具体地,第一确定装置21可以通过检查待安装应用插件的依赖关系,来获取该待安装应用插件所依赖的各个组件,也即依赖组件列表。
在一个实施例中,待安装应用插件的安装包中包括该待安装应用插件的依赖关系。例如待安装应用插件A的安装包中可包括其依赖关系“依赖:插件B、插件C、Jar:X.Y.Z”。则第一确定装置21可以通过检查待安装应用插件的安装包来获取到该待安装应用插件的依赖关系。
在一个实施例中,第一确定装置21还包括用于从网络设备获取待安装应用插件的基础数据的装置,以下简称第二获取装置211(未示出);用于基于所述待安装应用插件的基础数据,确定所述待安装应用插件的依赖关系的装置,以下简称第二确定装置212(未示出)。
第二获取装置211可以首先从网络设备获取待安装应用插件的基础数据,然后第二确定装置212基于该待安装应用插件的基础数据,确定该待安装应用插件的依赖关系。
此处,网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
待安装应用插件的基础数据中可包括该待安装应用插件的依赖关系。例如,待安装应用插件A的基础数据中可定义“依赖:插件B、插件C、Jar:X.Y.Z”,也即该待安装应用插件A依赖于插件B、插件C以及Jar包X.Y.Z。本领域技术人员应理解,此处,对于应用插件的基础数据中定义依赖关系的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个示例中,应用插件的基础数据可由该待安装应用插件的开发人员或维护人员定义,网络设备负责基础数据的存储以及更新,用户设备在本地不存储基础数据。当用户设备需要获取应用插件的基础数据时,用户设备可通过网络来与网络设备通信,并通过网络设备获取到应用插件的基础数据。按照这种方式,用户设备能够保证获取到与网络设备一致的最新的基础数据。
本领域技术人员应理解,此处,对于应用插件的基础数据的定义、存储、更新、获取等相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
当第二获取装置211从网络设备获取到待安装应用插件的基础数据之后,第二确定装置212可基于该待安装应用插件的基础数据,确定该待安装应用插件的依赖关系。例如,第二获取装置211获取到待安装应用插件A的基础数据中包含“依赖:插件B、插件C、Jar:X.Y.Z”,则第二确定装置212可确定该待安装应用插件A的依赖关系为依赖于插件B、插件C、以及Jar包X.Y.Z。
接着,第一确定装置21可基于所述待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表。接上例,第一确定装置21可基于上述依赖关系,确定应用插件A的依赖组件列表为:插件B、插件C、以及Jar包X.Y.Z。接着,第一确定装置21可通过与其上所安装的操作系统进行交互等现有技术所支持的方式来检查该依赖组件列表中的各个依赖组件是否在该用户设备中已安装,并将各个未安装的依赖组件所形成的列表确定为待安装依赖组件列表。例如,接上例,第一确定装置21可检查插件B、插件C以及Jar包X.Y.Z是否在该用户设备中已安装。假定检查结果为插件B未安装、插件C已安装、Jar包X.Y.Z未安装,则第一确定装置21确定待安装依赖组件列表为:插件B、Jar包X.Y.Z。
接着,第一获取装置22获取该待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,第一获取装置22将通过网络设备,从预先定义的地址来获取各个待安装依赖组件。
在一个优选实施例中,第一获取装置22包括用于从网络设备获取所述待安装依赖组件列表中的各个待安装依赖组件的基础数据的的装置,以下简称第三获取装置221(未示出);用于对于所述待安装依赖组件列表中的各个待安装依赖组件,基于该待安装依赖组件的基础数据,从本地获取该待安装依赖组件的装置,以下简称第四获取装置222(未示出);以及用于当从本地获取该待安装依赖组件失败时,从网络设备获取该待安装依赖组件并将该待安装依赖组件存储在本地的装置,以下简称第五获取装置223(未示出)。
第三获取装置221首先从网络设备获取该待安装依赖组件列表中的各个待安装依赖组件的基础数据。此处,待安装依赖组件的基础数据可包括如待安装依赖组件的安装包名称、版本、安装包获取地址、安装包大小等信息。在一个示例中,依赖组件的基础数据可由该组件的开发人员或维护人员定义,网络设备负责组件的基础数据的存储以及更新,用户设备在本地不存储组件的基础数据。当用户设备需要获取组件的基础数据时,用户设备的第三获取装置221可通过网络来与网络设备通信,并通过网络设备获取到组件的基础数据。按照这种方式,用户设备能够保证获取到与网络设备一致的最新的基础数据。本领域技术人员应理解,此处,对于组件的基础数据的定义、存储、更新、获取等相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
当第三获取装置221从网络设备获取到待安装依赖组件的基础数据之后,第四获取装置222可基于该基础数据,从本地获取该待安装依赖组件。例如,对于待安装依赖组件X,第三获取装置221从网络设备获取到其基础数据,其中包括该组件X的安装包名称为“plugin-X.apk”、版本号为2.0。则第四获取装置222可在本地查找版本号为2.0的“plugin-X.apk”安装包。如果第四获取装置222本地查找成功,则第四获取装置222可从本地获取到该待安装依赖插件。
当第四获取装置222从本地获取该待安装依赖组件失败时,第五获取装置223可从网络设备获取该待安装依赖组件并将该待安装依赖组件存储在本地。例如,对于一个待安装依赖组件Y,第三获取装置221从网络设备获取到其基础数据,其中包括该组件Y的安装包名称“plugin-Y.apk”、版本号为2.0、安装包获取地址“ftp://server/download/plugin-Y.apk”。假定第四获取装置222按照上文所述的方法未能从本地获取到该待安装依赖组件Y,则第五获取装置223可基于上述安装包获取地址来从网络设备获取该待安装依赖组件Y。当第五获取装置223从网络设备获取到该待安装依赖组件Y后,第五获取装置223可将其存储在本地以供后续使用。
按照上文所述的方法,第一获取装置22获取到待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,所述用于安装应用插件的装置还包括用于基于所述待安装依赖组件列表中的各个待安装依赖组件的基础数据,分别验证所获取的各个待安装依赖组件的装置,以下简称验证装置25(未示出)。
对于所获取到的各个待安装依赖组件,验证装置25可基于各个待安装依赖组件的基础数据,对其分别进行验证。例如,验证装置25可根据待安装依赖组件的基础数据中所包括的版本号及安装包大小,来验证获取的待安装依赖组件的安装包的版本号、安装包大小是否正确。本领域技术人员应理解,此处,对于验证装置25的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,第一安装装置23将依次安装所述待安装依赖组件列表中的各个待安装依赖组件。
在一个实施例中,第一获取装置22将首先按照上文所述的方法来获取待安装依赖组件列表中的一个待安装依赖组件,然后第一安装装置23安装该待安装依赖组件。当一个待安装依赖组件安装成功后,第一获取装置22将继续获取下一个待安装依赖组件并且第一安装装置23对其进行安装。上述过程重复进行直至所有待安装依赖组件均已被安装。此外,当第一安装装置23安装某个待安装依赖组件失败时,第一获取装置22将不再继续获取,第一安装装置23也不再安装该待安装依赖组件列表中的后续待安装依赖组件。
在另一个实施例中,首先,第一获取装置22将按照上文所述的方法来获取待安装依赖组件列表中的所有待安装依赖组件。然后,第一安装装置23将依次安装该待安装依赖组件列表中的各个待安装依赖组件。当第一安装装置23安装某个待安装依赖组件失败时,第一安装装置23将不再继续安装该待安装依赖组件列表中的后续待安装依赖组件。
在一个优选实施例中,第一安装装置23中包括用于确定所述待安装依赖组件列表中的各个待安装依赖组件的类型的装置,以下简称类型确定装置231(未示出);以及用于基于所述待安装依赖组件列表中的各个待安装依赖组件的类型,分别安装各个待安装依赖组件的装置,以下简称第二安装装置232(为示出)。
类型确定装置231将首先确定待安装依赖组件列表中的各个待安装依赖组件的类型。例如待安装插件的基础数据中所包括的依赖信息中可以包括各个依赖组件的类型。则类型确定装置231可相应地基于待安装插件的基础数据确定各个待安装依赖组件的类型。在一个实施例中,待安装依赖组件的类型可以为以下任一种:应用插件类型、Jar包类型。接着,第二安装装置232可基于待安装依赖组件的类型来安装该待安装依赖组件。例如,对于应用插件类型的待安装依赖组件,第二安装装置232可按照应用插件的安装方式来进行安装。对于Jar包类型的待安装依赖组件,第二安装装置232可将该Jar包安装到应用的公共目录下,该公共目录下的Jar包可以被该应用的各个插件访问及使用。当该应用的另一个待安装应用插件也依赖于该Jar包时,则无需再次安装该Jar包,从而避免了多个待安装应用插件分别安装相同的Jar包所可能造成的Jar包冲突问题。
接着,当待安装依赖组件列表中的各个待安装依赖组件均安装成功后,插件安装装置24将安装待安装应用插件。在一个实施例中,当待安装依赖组件列表中的某个待安装依赖组件未能安装成功时,插件安装装置24将退出安装该待安装应用插件的过程。
在一个实施例中,待安装应用插件还包括待更新应用插件。待更新应用插件意指在用户设备中已安装但需更新的应用插件。对于待更新应用插件,可以使用本发明的用于安装应用插件的装置来进行更新。例如,对于已安装的待更新应用插件Z,可使用上文所述的装置,基于该应用插件Z的依赖关系,来确定该应用插件Z的待安装依赖组件列表;然后可获取该待安装依赖组件列表中的各个待安装依赖组件并依次安装各个待安装依赖组件;最后当所有待安装依赖组件均安装成功后,用于安装应用插件的装置可更新该待更新应用。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种用于安装应用插件的方法,其中,所述方法包括:
-基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表,其中还包括:
-从网络设备获取待安装应用插件的基础数据;
-基于所述待安装应用插件的基础数据,确定所述待安装应用插件的依赖关系;
-获取所述待安装依赖组件列表中的各个待安装依赖组件;
-依次安装所述待安装依赖组件列表中的各个待安装依赖组件;
-当所述待安装依赖组件列表中的各个待安装依赖组件均安装成功后,安装所述待安装应用插件:
其中,所述依次安装所述待安装依赖组件列表中的各个待安装依赖组件的步骤包括:
对于应用插件类型的待安装依赖组件,按照应用插件的安装方式来进行安装,对于Jar包类型的待安装依赖组件,将该Jar包安装到应用的公共目录下。
2.根据权利要求1所述的方法,其中,获取所述待安装依赖组件列表中的各个待安装依赖组件的步骤包括:
-从网络设备获取所述待安装依赖组件列表中的各个待安装依赖组件的基础数据;
-对于所述待安装依赖组件列表中的各个待安装依赖组件,基于该待安装依赖组件的基础数据,从本地获取该待安装依赖组件;
-当从本地获取该待安装依赖组件失败时,从网络设备获取该待安装依赖组件并将该待安装依赖组件存储在本地。
3.根据权利要求2所述的方法,其中,所述获取所述待安装依赖组件列表中的各个待安装依赖组件的步骤还包括:
-基于所述待安装依赖组件列表中的各个待安装依赖组件的基础数据,分别验证所获取的各个待安装依赖组件。
4.根据权利要求1至3中任一项所述的方法,其中,所述依次安装所述待安装依赖组件列表中的各个待安装依赖组件的步骤包括:
-确定所述待安装依赖组件列表中的各个待安装依赖组件的类型;
-基于所述待安装依赖组件列表中的各个待安装依赖组件的类型,分别安装各个待安装依赖组件。
5.根据权利要求4所述的方法,其中,所述待安装依赖组件的类型包括以下任一种:
-应用插件类型;
-Jar包类型。
6.根据权利要求1所述的方法,其中,所述待安装应用插件还包括待更新应用插件。
7.根据权利要求1所述的方法,其中,所述方法用于Android系统中。
8.一种用于安装应用插件的装置,其中,所述装置包括:
-用于基于待安装应用插件的依赖关系,确定所述待安装应用插件的待安装依赖组件列表的装置,所述装置还包括:
-用于从网络设备获取待安装应用插件的基础数据的装置;
-用于基于所述待安装应用插件的基础数据,确定所述待安装应用插件的依赖关系的装置;
-用于获取所述待安装依赖组件列表中的各个待安装依赖组件的装置;
-用于依次安装所述待安装依赖组件列表中的各个待安装依赖组件的装置;
-用于当所述待安装依赖组件列表中的各个待安装依赖组件均安装成功后,安装所述待安装应用插件的装置;
其中,所述用于依次安装所述待安装依赖组件列表中的各个待安装依赖组件的装置用于:
对于应用插件类型的待安装依赖组件,按照应用插件的安装方式来进行安装,对于Jar包类型的待安装依赖组件,将该Jar包安装到应用的公共目录下。
9.根据权利要求8所述的装置,其中,用于获取所述待安装依赖组件列表中的各个待安装依赖组件的装置包括:
-用于从网络设备获取所述待安装依赖组件列表中的各个待安装依赖组件的基础数据的的装置;
-用于对于所述待安装依赖组件列表中的各个待安装依赖组件,基于该待安装依赖组件的基础数据,从本地获取该待安装依赖组件的装置;
-用于当从本地获取该待安装依赖组件失败时,从网络设备获取该待安装依赖组件并将该待安装依赖组件存储在本地的装置。
10.根据权利要求9所述的装置,其中,所述用于获取所述待安装依赖组件列表中的各个待安装依赖组件的装置还包括:
-用于基于所述待安装依赖组件列表中的各个待安装依赖组件的基础数据,分别验证所获取的各个待安装依赖组件的装置。
11.根据权利要求8至10中任一项所述的装置,其中,所述用于依次安装所述待安装依赖组件列表中的各个待安装依赖组件的装置包括:
-用于确定所述待安装依赖组件列表中的各个待安装依赖组件的类型的装置;
-用于基于所述待安装依赖组件列表中的各个待安装依赖组件的类型,分别安装各个待安装依赖组件的装置。
12.根据权利要求11所述的装置,其中,所述待安装依赖组件的类型包括以下任一种:
-应用插件类型;
-Jar包类型。
13.根据权利要求8所述的装置,其中,所述待安装应用插件还包括待更新应用插件。
14.根据权利要求8所述的装置,其中,所述装置用于Android系统中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510465295.4A CN105138352B (zh) | 2015-07-31 | 2015-07-31 | 一种用于安装应用插件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510465295.4A CN105138352B (zh) | 2015-07-31 | 2015-07-31 | 一种用于安装应用插件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138352A CN105138352A (zh) | 2015-12-09 |
CN105138352B true CN105138352B (zh) | 2020-03-20 |
Family
ID=54723710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510465295.4A Active CN105138352B (zh) | 2015-07-31 | 2015-07-31 | 一种用于安装应用插件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138352B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506221A (zh) * | 2016-11-22 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种远程自动安装paas系统的方法及系统 |
CN110308999B (zh) * | 2018-03-20 | 2024-02-20 | Tcl科技集团股份有限公司 | 一种应用间动态共享依赖包的方法、存储介质及移动终端 |
CN110442399B (zh) * | 2019-08-09 | 2022-08-16 | 广州小鹏汽车科技有限公司 | 应用的React Native业务执行方法、装置、存储介质及终端设备 |
CN111026455B (zh) * | 2019-11-27 | 2023-02-24 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN116243899B (zh) * | 2022-12-06 | 2023-09-15 | 浙江讯盟科技有限公司 | 一种基于网络环境的自定义编排容器和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945530A (zh) * | 2006-11-07 | 2007-04-11 | 中兴通讯股份有限公司 | 具有依赖关系组件的部署系统和方法 |
CN101030144A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 用于打包软件的方法与系统 |
CN101770366A (zh) * | 2009-11-27 | 2010-07-07 | 山东中创软件商用中间件股份有限公司 | 一种基于Web服务的eclipse插件存储及管理的方法 |
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用系统及其实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486734A (zh) * | 2010-12-03 | 2012-06-06 | 上海宝信软件股份有限公司 | 一种富客户端应用系统 |
-
2015
- 2015-07-31 CN CN201510465295.4A patent/CN105138352B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030144A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 用于打包软件的方法与系统 |
CN1945530A (zh) * | 2006-11-07 | 2007-04-11 | 中兴通讯股份有限公司 | 具有依赖关系组件的部署系统和方法 |
CN101770366A (zh) * | 2009-11-27 | 2010-07-07 | 山东中创软件商用中间件股份有限公司 | 一种基于Web服务的eclipse插件存储及管理的方法 |
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105138352A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117169B (zh) | 用于修复内核漏洞的方法和装置 | |
US9727327B1 (en) | Software distribution framework | |
CN105138352B (zh) | 一种用于安装应用插件的方法和装置 | |
US9471365B2 (en) | Techniques for performing virtual machine software upgrades using virtual disk swapping | |
US9098375B2 (en) | Automatic management of software patch installation | |
US10447814B2 (en) | Joint servicing of software packages | |
US20090100420A1 (en) | Automatic Acquisition and Installation of Software Upgrades for Collections of Virtual Machines | |
US9652220B2 (en) | Zero down-time deployment of new application versions | |
CA2894094C (en) | Managing software suite component versions | |
CN107408046B (zh) | 用于跨异构计算环境供应云服务的系统和方法 | |
US7627866B2 (en) | Systems and methods for dynamic application patching | |
US20150113516A1 (en) | Assigning severity to a software update | |
US10025587B2 (en) | Method of bootup and installation, and computer system thereof | |
JP6198229B2 (ja) | 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット | |
US10726133B1 (en) | Securely loading UEFI images at runtime | |
US8769521B2 (en) | Calendar aware adaptive patching of a computer program | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN108733398B (zh) | 一种软件升级的处理方法及装置 | |
US8904396B2 (en) | System and method of general service management | |
CN109933355B (zh) | 应用程序升级方法及装置 | |
CN115994003A (zh) | 操作系统中共享对象的处理方法及处理装置 | |
US20150178060A1 (en) | Creating a prerequisite checklist corresponding to a software application | |
US20220334820A1 (en) | System and method for intermediate software upgrades for information handling systems | |
US20120084772A1 (en) | Method and system for deploying application components in a partial deployment | |
CN112685071A (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 |