一种插件更新方法、装置、设备和存储介质与流程

文档序号:17474240发布日期:2019-04-20 06:01阅读:179来源:国知局
一种插件更新方法、装置、设备和存储介质与流程

本发明实施例涉及计算机技术,尤其涉及一种插件更新方法、装置、设备及存储介质。



背景技术:

热修复是一种快速且低成本修复当前应用程序版本的漏洞的方式,其实质上是指能够修复当前应用程序版本的漏洞的一些程序,这些程序代码可以理解为插件。由于热修复并不是通过对应用程序的版本进行更新来对应用程序的漏洞进行修复,因此,热修复可以实现在无需重新发布当前应用程序的更新版本的基础上,完成对当前应用程序版本的漏洞的修复,在这个过程中不会使应用程序当前正在运行的业务中断。可以理解到,由于热修复在上述过程中不会使当前应用程序正在运行的业务中断,因此,上述过程对用户来说是无感知的。此外,可将热修复过程理解为插件更新过程。

在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:由于现有技术中热修复平台和广告后台耦合,因此,插件更新的灵活性不高。



技术实现要素:

本发明实施例提供一种插件更新方法、装置、设备及存储介质,以提升插件更新的灵活性。

第一方面,本发明实施例提供了一种插件更新方法,该方法包括:

获取插件更新请求,所述插件更新请求包括第一插件属性;

根据所述插件更新请求确定待筛选插件,所述待筛选插件包括第二插件属性;

根据所述第一插件属性和所述第二插件属性,从所述待筛选插件中确定目标插件;

发送所述目标插件。

进一步的,所述根据所述第一插件属性和所述第二插件属性,从所述待筛选插件中确定目标插件,包括:

所述第一插件属性与所述第二插件属性之间满足对应的更新条件,则将所述第二插件属性对应的待筛选插件作为目标插件。

进一步的,所述第一插件属性包括第一通用插件属性和第一非通用插件属性。

进一步的,所述第二插件属性包括第二通用插件属性和第二非通用插件属性,所述第二通用插件属性和第二非通用插件属性分别存储于不同的插件属性表。

进一步的,所述根据所述插件更新请求确定待筛选插件,包括:

根据所述第一通用插件属性和所述第二通用插件属性,确定待筛选插件。

进一步的,所述根据所述第一通用插件属性和所述第二通用插件属性,确定待筛选插件,包括:

将所述第二通用插件属性与所述第一通用插件属性相同的插件,作为待筛选插件。

进一步的,所述第一插件属性与所述第二插件属性之间满足对应的更新条件,包括:

所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件。

进一步的,所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件,包括:

如果所述更新条件为大于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性大于所述第二非通用插件属性;或者

如果所述更新条件为小于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性小于所述第二非通用插件属性;或者

如果所述更新条件为等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性等于所述第二非通用插件属性;或者

如果所述更新条件为不等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性不等于所述第二非通用插件属性;或者

如果所述更新条件为小于等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性小于等于所述第二非通用插件属性;或者

如果所述更新条件为大于等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性大于等于所述第二非通用插件属性。

进一步的,所述目标插件的数量为一个。

第二方面,本发明实施例还提供了一种插件更新装置,该装置包括:

插件更新请求获取模块,用于获取插件更新请求,所述插件更新请求包括第一插件属性;

待筛选插件确定模块,用于根据所述插件更新请求确定待筛选插件,所述待筛选插件包括第二插件属性;

目标插件确定模块,用于根据所述第一插件属性和所述第二插件属性,从所述待筛选插件中确定目标插件;

发送所述目标插件,发送所述目标插件。

进一步的,所述目标插件确定模块,包括:

目标插件确定单元,用于所述第一插件属性与所述第二插件属性之间满足对应的更新条件,则将所述第二插件属性对应的待筛选插件作为目标插件。

进一步的,所述第一插件属性包括第一通用插件属性和第一非通用插件属性。

进一步的,所述第二插件属性包括第二通用插件属性和第二非通用插件属性,所述第二通用插件属性和第二非通用插件属性分别存储于不同的插件属性表。

进一步的,所述待筛选插件确定模块,包括:

待筛选插件确定单元,用于根据所述第一通用插件属性和所述第二通用插件属性,确定待筛选插件。

进一步的,所述待筛选插件确定单元,用于:

将所述第二通用插件属性与所述第一通用插件属性相同的插件,作为待筛选插件。

进一步的,所述第一插件属性与所述第二插件属性之间满足对应的更新条件,包括:

所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件。

进一步的,所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件,包括:

如果所述更新条件为大于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性大于所述第二非通用插件属性;或者

如果所述更新条件为小于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性小于所述第二非通用插件属性;或者

如果所述更新条件为等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性等于所述第二非通用插件属性;或者

如果所述更新条件为不等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性不等于所述第二非通用插件属性;或者

如果所述更新条件为小于等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性小于等于所述第二非通用插件属性;或者

如果所述更新条件为大于等于,则所述第一非通用插件属性与所述第二非通用插件属性之间满足对应的更新条件为所述第一非通用插件属性大于等于所述第二非通用插件属性。

进一步的,所述待筛选插件包括插件标识,所述插件标识用于关联相同待筛选插件的第二通用插件属性和第二非通用插件属性。

进一步的,所述目标插件的数量为一个。

第三方面,本发明实施例还提供了一种设备,该设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例第一方面所述的方法。

本发明实施例通过获取插件更新请求,插件更新请求包括第一插件属性,根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性,根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件,发送目标插件,由于上述操作是在独立的热修复平台执行的,因此,实现了提升插件更新的灵活性。

附图说明

图1是本发明实施例中的一种插件更新方法的流程图;

图2是本发明实施例中的另一种插件更新方法的流程图;

图3是本发明实施例中的一种插件更新装置的结构示意图;

图4是本发明实施例中的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例提供的一种插件更新方法的流程图,本实施例可适用于提升插件更新灵活性的情况,该方法可以由插件更新装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机或移动终端等。如图1所示,该方法具体包括如下步骤:

步骤110、获取插件更新请求,插件更新请求包括第一插件属性。

在本发明实施例中,插件表示的是指能够修复当前应用程序版本的漏洞的一些程序。插件更新请求可用于请求是否需要对当前应用程序的插件进行更新。

插件更新请求具体可以第一插件属性,第一插件属性表明当前应用程序的插件所具有的属性,第一插件属性可以包括第一插件属性名和第一插件属性值,其中,第一属性名和第一属性值对应。第一插件属性可以包括平台和当前平台名称、渠道和当前渠道号、应用程序版本和当前应用程序版本号、城市和当前城市名称以及系统版本和当前系统版本号等,其中,第一插件属性名可以包括平台、渠道、应用程序以及系统版本等,相应的,第一插件属性值可以包括第一平台名称、第一渠道号、第一应用程序版本号以及第一系统版本号等。渠道为应用程序发布的市场,第一渠道号具体可以包括第三方市场、手机厂商的商店和电信运营商的商店。更为具体的,第三方市场还可以包括应用宝和豌豆荚等,手机厂商的商店还可以包括小米商店和联想乐商等,电信运营商的商店还可以包括联通沃商店等。系统版本为客户端的操作系统,第一系统版本号可以包括android10.5、ios12、windows10和macosx等。

需要说明的是,本发明实施例所述的插件更新请求可以为发送方发出并由接收方接收的插件更新请求,其中,发送方可以为客户端,接收方可以为服务器,即本发明实施例所述的插件更新请求可以为由客户端发出并由服务器接收的插件更新请求,也即客户端的当前应用程序在启动时,可生成插件更新请求,并将该插件更新请求发送给服务器。此外,将插件更新请求发送给服务器,具体可以为发送给服务器中独立的热修复平台。

步骤120、根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性。

步骤130、根据第一插件属性和所第二插件属性,从待筛选插件中确定目标插件。

在本发明的实施例中,第一插件属性的插件属性类型可以包括第一通用插件属性和第一非通用插件属性,其中,第一通用插件属性指可以作为插件筛选条件的插件属性类型,示例性的,如前文所提及的第一插件属性可以包括平台和第一平台名称、渠道和第一渠道号、应用程序版本和第一应用程序版本号、城市和第一城市名称以及系统版本和第一系统版本号等,其中,平台和第一平台名称、渠道和第一渠道号、应用程序版本和第一应用程序版本号以及城市和第一城市名称均为属性类型为第一通用插件插件属性的第一插件属性,系统版本和第一系统版本号为插件属性类型为第一非通用插件属性的第一插件属性。可以理解到,对于插件属性类型为第一通用插件属性的第一插件属性以及插件属性类型为第二通用插件属性的第一插件属性所包括的具体内容,可根据实际情况进行设定,在此不作具体限定。

待筛选插件是由第二插件属性组成的插件,换句话说,待筛选插件的插件属性为第二插件属性,第二插件属性可以包括第二插件属性名和第二插件属性值,第二插件属性名和第二插件属性值对应。第二插件属性可以包括平台和第二平台名称、渠道和第二渠道号、应用程序版本和第二应用程序版本号、城市和第二城市名称以及系统版本和第二系统版本号等,其中,第二插件属性名可以包括平台、渠道、应用程序以及系统版本等,相应的,第二插件属性值可以包括第二平台名称、第二渠道号、第二应用程序版本号以及第二系统版本号等。渠道为应用程序发布的市场,第二渠道号具体可以包括第三方市场、手机厂商的商店和电信运营商的商店。更为具体的,第三方市场还可以包括应用宝和豌豆荚等,手机厂商的商店还可以包括小米商店和联想乐商等,电信运营商的商店还可以包括联通沃商店等。系统版本为客户端的操作系统,第二系统版本号可以包括android10.5、ios12、windows10和macosx等。

需要说明的是,第一插件属性的个数大于等于第二插件属性的个数,在第一插件属性中总能查找到与第二插件属性的第二插件属性名匹配的第一插件属性名,这里所述的匹配指的是第一插件属性的第一插件属性名与第二插件属性的第二插件属性名相同。

还需要说明的是,第二插件属性的插件属性类型也可以包括第二通用插件属性和第二非通用插件属性,其中,与前文所述的第一插件属性相同,平台和第二平台名称、渠道和第二渠道号、应用程序版本和第二应用程序版本号以及城市和第二城市名称为插件属性类型为第二通用插件属性的第二插件属性,系统版本和第二系统版本号为插件属性类型为第二非插件属性的第二插件属性。可以理解到,对于插件属性类型为第二通用插件属性的第二插件属性,其具体所包括的内容需要与插件属性类型为第一通用插件属性的第一插件属性所包括的具体内容相同,即将哪些第一插件属性的插件属性类型定义为第一通用插件属性,则需要将相同第二插件属性的插件属性类型定义为第二通用插件属性,这里所述的相同指的是第一插件属性的第一插件属性名与第二插件属性的第二插件属性名相同。同样,对于插件属性类型为第二非通用插件属性的第二插件属性,其具体所包括的内容需要与插件属性类型为第一非通用插件属性的第一插件属性所包括的具体内容相同,即将哪些第一插件属性的插件属性类型定义为第一非通用插件属性,则需要将相同第二插件属性的插件属性类型定义为第二非通用插件属性,这里所述的相同同样指的是第一插件属性的第一插件属性名与第二插件属性的第二插件属性名相同。

可以理解到,第二插件属性值和第一插件属性值可以相同,也可以不同。这里所述的第二插件属性值和第一插件属性值可以相同,也可以不同,可作如下理解:由于第一插件属性的个数可以为至少一个,第二插件属性的个数也可以为至少一个,而待筛选插件相比于当前插件来说,可能仅改变了部分当前插件的第一插件属性的第一插件属性值,即该部分当前插件的第一插件属性的第一插件属性值与对应的待筛选插件的第二插件属性的第二插件属性值不同,其余未改变部分当前插件的第一插件属性的第一插件属性值与对应的待筛选插件的第二插件属性的第二插件属性值相同。

根据插件更新请求,确定待筛选插件,可作如下理解:根据插件属性类型为第一通用插件属性的第一插件属性,确定与上述第一插件属性匹配的第二插件属性,这里所述的匹配指的是插件属性类型为第一通用插件属性的第一插件属性与插件属性类型为第二通用插件属性的第二插件属性相同,具体的,插件属性类型为第一通用插件属性的第一插件属性的第一插件属性名与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性名相同,在此条件下,插件属性类型为第一通用插件属性的第一插件属性的第一插件属性值与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性值相同。根据确定的第二插件属性得到对应的待筛选插件。

在得到待筛选插件后,需要进一步从待筛选插件中确定目标插件,具体的:可从待筛选插件中选择一个待筛选插件作为当前待筛选插件,每个待筛选插件的第二插件属性的个数为至少一个,对于当前待筛选插件:确定当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果满足,则确定是否存在下一第二插件属性,如果存在下一第二插件属性,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,则确定是否存在下一第二插件属性,如果存在下一第二插件属性,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,可以理解到,只要存在下一第二插件属性且当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,就继续重复上述过程,直至确定当前待筛选插件的各第二插件属性分别与对应的第一插件属性之间满足对应的更新条件,则确定当前待筛选插件为目标插件。在上述过程中,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间不满足更新条件,则将下一待筛选插件作为新的当前待筛选插件,并确定新的当前待筛选插件是否为目标插件,确定新的当前待筛选插件是否为目标插件的过程与上文所述的确定当前待筛选插件是否为目标插件的过程相同,直至从待筛选插件中确定目标插件。

可以理解到,对于一个设备(如客户端)发送的插件更新请求来说,确定的目标插件的个数为一个。在此基础上,如果待筛选插件的个数为n个,n≥2,前n-1个待筛选插件均不为目标插件,则第n个待筛选插件可以进行上文所述的确定该待筛选插件是否为目标插件的过程,也可以不进行上文所述的过程,直接将该待筛选插件作为目标插件。

需要说明的是,对于当前待筛选插件来说,虽然其插件属性类型为第二通用插件属性的第二插件属性与插件属性类型为第一通用插件属性的第一插件属性相同,但仍存在当前待筛选插件的第二插件属性与对应的第一插件属性不满足对应的更新条件的情况,因此,仍需要对上述插件属性类型为通用插件属性的参数进行上述过程。

另需要说明的是,根据上文所述可知,当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,可作如下理解:每个当前第二插件属性对应一个更新条件,当前第二插件属性的当前第二插件属性值和该更新条件可以组成一个插件属性值的取值范围,如果当前第二插件属性对应的第一插件属性的第一插件属性值属于该插件属性值的取值范围,则确定该当前第二插件属性与对应的第一插件属性之间满足对应的更新条件;如果当前第二插件属性对应的第一插件属性的第一插件属性值不属于该插件属性值的取值范围,则确定该当前第二插件属性与对应的第一插件属性之间不满足对应的更新条件,其中,更新条件可以为大于、小于、等于、不等于、小于等于或大于等于。

此外,当前待筛选插件的当前第二插件属性与对应的第一插件属性是否满足对应的更新条件,还可作如下理解:如果更新条件为大于,则当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件为当前第二插件属性对应的第一插件属性的第一插件属性值是否大于当前第二插件属性的当前第二插件属性值;如果更新条件为小于,则当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件为当前第二插件属性对应的第一插件属性的第一插件属性值是否小于当前第二插件属性的当前第二插件属性值;如果更新条件为不等于,则当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件为当前第二插件属性对应的第一插件属性的第一插件属性值是否不等于当前第二插件属性的当前第二插件属性值;如果更新条件为小于等于,则当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足是否对应的更新条件为当前第二插件属性对应的第一插件属性的第一插件属性值是否小于等于当前第二插件属性的当前第二插件属性值;如果更新条件为大于等于,则当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足是否对应的更新条件为当前第二插件属性对应的第一插件属性的第一插件属性值是否大于等于当前第二插件属性的当前第二插件属性值。

还需要说明的是,上述确定目标插件的过程即是热修复过程,其是在服务器中独立的热修复平台执行的,其与广告后台无关,因此,可以提升热修复的灵活性,也即可以提升插件更新的灵活性。

步骤140、发送目标插件。

在本发明的实施例中,在确定目标插件后,可将目标插件发送给插件更新请求的发送方。其中,发送方可以为客户端。如果发送方为客户端,则在确定目标插件后,便可将目标插件发送给客户端,以使客户端可以基于该目标插件完成热修复。

本实施例的技术方案,通过获取插件更新请求,插件更新请求包括第一插件属性,根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性,根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件,发送目标插件,由于上述操作是在独立的热修复平台执行的,因此,实现了提升插件更新的灵活性。

可选的,在上述技术方案的基础上,根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件,具体可以包括:第一插件属性与第二插件属性之间满足对应的更新条件,则将第二插件属性对应的待筛选插件作为目标插件。

在本发明的实施例中,第一插件属性可以包括第一插件属性名和第一插件属性值,每个第一插件属性名对应一个第一插件属性值。第二插件属性可以包括第二插件属性名和第二插件属性值,每个第二插件属性名对应一个第二插件属性值。第一插件属性与第二插件属性之间满足对应的更新条件,则将第二插件属性对应的待筛选插件作为目标插件,可作如下理解:

可从待筛选插件中选择一个待筛选插件作为当前待筛选插件,每个待筛选插件的第二插件属性的个数为至少一个,对于当前待筛选插件:确定当前待筛选插件的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果满足,则确定是否存在下一第二插件属性,如果存在下一第二插件属性,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,则确定是否存在下一第二插件属性,如果存在下一第二插件属性,则将下一第二插件属性作为新的当前第二插件属性,并确定新的当前第二插件属性与对应的第一插件属性之间是否满足对应的更新条件,可以理解到,只要存在下一第二插件属性且当前待筛选插件的当前第二插件属性与对应的第一插件属性之间满足对应的更新条件,就继续重复上述过程,直至确定当前待筛选插件的各第二插件属性分别与对应的第一插件属性之间满足对应的更新条件,则确定当前待筛选插件为目标插件。在上述过程中,如果当前待筛选插件的当前第二插件属性与对应的第一插件属性之间不满足更新条件,则将下一待筛选插件作为新的当前待筛选插件,并确定新的当前待筛选插件是否为目标插件,确定新的当前待筛选插件是否为目标插件的过程与上文所述的确定当前待筛选插件是否为目标插件的过程相同,直至从待筛选插件中确定目标插件。

可选的,在上述技术方案的基础上,第一插件属性可以包括第一通用插件属性和第一非通用插件属性。

在本发明的实施例中,第一插件属性的插件属性类型具体可以包括第一通用插件属性和第一非通用插件属性,其中,第一通用插件属性指可以作为插件筛选条件的插件属性类型,即第一通用插件属性可以用于确定待筛选插件。第一非通用插件属性可以用于从待筛选插件中确定目标插件。

可选的,在上述技术方案的基础上,第二插件属性可以包括第二通用插件属性和第二非通用插件属性,第二通用插件属性和第二非通用插件属性分别存储于不同的插件属性表。

在本发明的实施例中,第二插件属性的插件属性类型具体可以包括第二通用插件属性和第二非通用插件属性,为了实现可以灵活设置插件属性类型为第二非通用插件属性的第二插件属性,采用将插件属性类型为第二通用插件属性的第二插件属性与插件属性类型为第二非通用插件属性的第二插件属性分开存储于不同插件属性表的方式,具体的:

将插件属性类型为第二通用插件属性的第二插件属性存储于通用插件属性表,将插件属性类型为第二非通用插件属性的第二插件属性存储于非通用插件属性表,即第二通用插件属性和第二非通用插件属性分别存储于不同的插件属性表。此外,待筛选插件包括插件标识,则插件标识可以用于关联相同待筛选插件的第二通用插件属性表和第二非通用插件属性表。

需要说明的是,将插件属性类型为第二非通用插件属性的第二插件属性存储于非通用插件属性表,其中,可将每个插件属性类型为第二非通用插件属性的第二插件属性理解为非通用插件属性表中的一条记录,同时,由于每个第二插件属性对应一个更新条件,因此,该更新条件是上述记录中的部分,插件属性类型为第二非通用插件属性的第二插件属性和对应的更新条件为非通用插件属性表中的一条记录。如果需要新增一个插件属性类型为第二非通用插件属性的第二插件属性和对应的更新条件,则只需要向非通用插件属性表中添加一条记录即可。

相比于传统技术而言,传统技术中插件属性类型为第二非通用插件属性的第二插件属性和插件属性类型为第二通用插件属性的第二插件属性均存储于同一个插件属性表中,如果需要新增一个插件属性类型为第二非通用插件属性的第二插件属性和对应的更新条件,则需要在该插件属性表中添加一个字段,配置后台界面中添加该字段,即需要将整个开发流程执行一遍。而本发明实施例所提供的技术方案,只需要在非通用插件属性表中添加一条记录,而无需将整个开发流程执行一遍。本发明实施例所提供的技术方案在实现灵活设置插件属性类型为第二非通用插件属性的第二插件属性的同时,提高了处理效率。

可选的,在上述技术方案的基础上,根据插件更新请求确定待筛选插件,具体可以包括:根据第一通用插件属性和第二通用插件属性,确定待筛选插件。

在本发明的实施例中,根据第一通用插件属性和第二通用插件属性,确定待筛选插件,可作如下理解:根据插件属性类型为第一通用插件属性的第一插件属性,确定与上述第一插件属性匹配的第二插件属性,这里所述的匹配指的是插件属性类型为第一通用插件属性的第一插件属性与插件属性类型为第二通用插件属性的第二插件属性相同,具体的,插件属性类型为第一通用插件属性的第一插件属性的第一插件属性名与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性名相同,在此条件下,插件属性类型为第一通用插件属性的第一插件属性的第一插件属性值与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性值相同。根据确定的第二插件属性得到对应的待筛选插件。可以理解到,上述第二插件属性可能对应至少一个待筛选插件,即待筛选插件的个数为至少一个,上述待筛选插件具有同样的插件属性类型为第二通用插件属性的第二插件属性。

通过根据第一通用插件属性和第二通用插件属性,确定待筛选插件,可以理解为在确定目标插件前,先对插件进行了一个筛选操作,缩小了数据处理量,提高了处理效率。

可选的,在上述技术方案的基础上,根据第一通用插件属性和第二通用插件属性,确定待筛选插件,具体可以包括:将第二通用插件属性与第一通用插件属性相同的插件,作为待筛选插件。

在本发明的实施例中,需要说明的是,这里所述的第二通用插件属性与第一通用插件属性相同的插件指的是插件属性类型为第一通用插件属性的第一插件属性的第一插件属性名与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性名相同,在此条件下,插件属性类型为第一通用插件属性的第一插件属性的第一插件属性值与插件属性类型为第二通用插件属性的第二插件属性的第二插件属性值相同。

可选的,在上述技术方案的基础上,第一插件属性与第二插件属性之间满足对应的更新条件,具体可以包括:第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件。

在本发明的实施例中,第一非通用插件属性和第二非通用插件属性可以用于确定目标插件。第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件,可作如下理解:每个第二非通用插件属性对应一个更新条件,当前第二非通用插件属性的当前第二非通用插件属性值和该更新条件可以组成一个插件属性值的取值范围,如果当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值属于该插件属性值的取值范围,则确定该当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件,其中,更新条件可以为大于、小于、等于、不等于、小于等于或大于等于。此外,第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件,还可作如下理解:如果更新条件为大于,则当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件为当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值大于当前第二非通用插件属性的当前第二非通用插件属性值;如果更新条件为小于,则当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件为当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值小于于当前第二非通用插件属性的当前第二非通用插件属性值;如果更新条件为不等于,则当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件为当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值不等于当前第二非通用插件属性的当前第二非通用插件属性值;如果更新条件为小于等于,则当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件为当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值小于等于当前第二非通用插件属性的当前第二非通用插件属性值;如果更新条件为大于等于,则当前第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件为当前第二非通用插件属性对应的第一非通用插件属性的第一非通用插件属性值大于等于当前第二非通用插件属性的当前第二非通用插件属性值。

可选的,在上述技术方案的基础上,第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件,具体可以包括:如果更新条件为大于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性大于第二非通用插件属性。或者如果更新条件为小于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性小于第二非通用插件属性。或者如果更新条件为等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性等于第二非通用插件属性。或者如果更新条件为不等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性不等于第二非通用插件属性。或者如果更新条件为小于等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性小于等于第二非通用插件属性。或者如果更新条件为大于等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性大于等于第二非通用插件属性。

在本发明的实施例中,更新条件可以为运算符,运算符可以包括大于、小于、等于、不等于、小于等于或大于等于。

可选的,在上述技术方案的基础上,待筛选插件包括插件标识,插件标识用于关联相同待筛选插件的第二通用插件属性和第二非通用插件属性。

在本发明的实施例中,待筛选插件包括插件标识,则插件标识可以用于关联相同待筛选插件的第二通用插件属性表和第二非通用插件属性表,更为具体的,插件标识可以用于关联相同待筛选插件的第二通用插件属性和第二非通用插件属性。

可选的,在上述技术方案的基础上,目标插件的数量为一个。

在本发明的实施例中,目标插件的数量为一个,为了避免出现由不同待筛选插件中第二插件属性名相同且插件属性类型为第二非通用插件属性的第二插件属性,各第二插件属性对应的插件属性值的取值范围之间存在交集所导致的确定出的目标插件为两个或两个以上的情况,在对不同待筛选插件中第二插件属性名相同且插件属性类型为第二非通用插件属性的第二插件属性,设置上述各第二插件属性对应的插件属性值的取值范围时,保证各第二插件属性对应的插件属性值的取值范围之间不存在交集,其中,每个第二插件属性对应的插件属性值的取值范围由第二插件属性的第二非通用插件属性值和对应的更新条件确定。

示例性的,如待筛选插件a和待筛选插件b中,待筛选插件a中插件属性类型为第二非通用插件属性的第二插件属性的第二插件属性名为系统版本,第二非通用插件值为android10.5,更新条件为大于,则由第二插件属性的第二非通用插件属性值和对应的更新条件确定的插件属性值的取值范围a为大于10.5,待筛选插件b中插件属性类型为第二非通用插件属性的第二插件属性的第二插件属性名为系统版本,第二非通用插件值为android11,更新条件为等于,则由第二插件属性的第二非通用插件属性值和对应的更新条件确定的插件属性值的取值范围b为等于11,则插件属性值的取值范围a与插件属性值值的取值范围b存在交集。在对不同待筛选插件中第二插件属性名相同且插件属性类型为第二非通用插件属性的第二插件属性,设置上述各第二插件属性对应的插件属性值的取值范围时,即需要避免出现上述插件属性值的取值范围a与插件属性值的取值范围b存在交集的情况。

需要说明的是,本发明实施例所提供的技术方案,待筛选插件的第二插件属性可以由配置参数后台设置。

还需要说明的是,可以通过插件更新接口接收发送方发送的插件更新请求,其中,发送方可以为客户端。

另需要说明的是,插件更新请求包括第一插件属性,第一插件属性包括第一插件属性名和第一插件属性值,第一插件属性名和第一插件属性值可以键值对形式存储,即可将第一插件属性名和第一插件属性值存储为map对象,map对象为将键映射到值的对象,这里所述的键为第一插件属性名,值为第一插件属性值。

此外,第二插件属性包括第二插件属性名和第二插件属性值,则第二插件属性也可以键值对形式存储,这里所述的键为第二插件属性名,值为第二插件属性值。

图2为本发明实施例提供的另一种插件更新方法的流程图,本实施例可适用于提升插件更新灵活性的情况,该方法可以由插件更新装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机或移动终端等。如图2所示,该方法具体包括如下步骤:

步骤210、获取插件更新请求,插件更新请求包括第一插件属性,第一插件属性包括第一通用插件属性和第一非通用插件属性。

步骤220、根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性,第二插件属性包括第二通用插件属性和第二非通用插件属性,其中,待筛选插件中的第二通用插件属性与对应的第一通用插件属性相同。

步骤230、如果当前待筛选插件的各第二非通用插件属性分别与对应的第一非通用插件属性之间满足对应的更新条件,则确定当前待筛选插件为目标插件。

步骤240、如果当前待筛选插件的各第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件,则将下一待筛选插件作为新的当前待筛选插件并确定新的当前待筛选插件是否为目标插件,直至确定目标插件。

步骤250、将目标插件发送给插件更新请求的发送方。

在本发明的实施例中,需要说明的是,第一通用插件属性包括第一通用插件属性名和第一通用插件属性值,第一非通用插件属性包括第一非通用插件属性名和第一非通用插件属性值,第二通用插件属性包括第二通用插件属性名和第二通用插件属性值,第二非通用插件属性包括第二非通用插件属性名和第二非通用插件属性值。即第一插件属性包括第一插件属性名和第一插件属性值,第二插件属性包括第二插件属性名和第二插件属性值为了更好地理解本发明实施例所提供的技术方案,下面将以具体示例进行说明。具体的:

插件更新请求包括五个第一插件属性,这五个第一插件属性分别为平台和第一平台名称、渠道和第一渠道号、应用程序版本和第一应用程序版本号、城市和第一城市名称以及系统版本和第一系统版本号,其中,平台和第一平台名称、渠道和第一渠道号、应用程序版本和第一应用程序版本号以及城市和第一城市名称为插件属性类型为第一通用插件属性的第一插件属性,系统版本和第一系统版本号为插件属性类型为第一非通用插件属性的第一插件属性,第一系统版本号为android10.0,根据插件属性类型为第一通用插件属性的第一插件属性确定两个待筛选插件为待筛选插件c和待筛选插件d。

待筛选插件c中插件属性类型为第二非通用插件属性的第二插件属性的第二插件属性名为系统版本,第二插件属性值为android11,更新条件为等于,则由第二插件属性值和对应的更新条件确定的插件属性值的取值范围c为等于11,待筛选插件d中插件属性类型为第二非通用插件属性的第二插件属性的第二插件属性名为系统版本,第二插件属性值为android9,更新条件为大于,则由第二插件属性值和对应的更新条件确定的插件属性值的取值范围d为大于9,将待筛选插件c作为当前待筛选插件,确定第一系统版本号不属于插件属性值的取值范围c,则将下一待筛选插件d作为新的当前待筛选插件,确定第一系统版本号属于插件属性值的取值范围d,则确定待筛选插件d为目标插件,并将该目标插件发送给插件更新请求的发送方。

本实施例的技术方案,通过获取插件更新请求,插件更新请求包括第一插件属性,第一插件属性包括第一通用插件属性和第一非通用插件属性,根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性,第二插件属性包括第二通用插件属性和第二非通用插件属性,待筛选插件中的第二通用插件属性与对应的第一通用插件属性相同,如果当前待筛选插件的各第二非通用插件属性分别与对应的第一非通用插件属性之间满足对应的更新条件,则确定当前待筛选插件为目标插件,或者,如果当前待筛选插件的各第二非通用插件属性与对应的第一非通用插件属性之间满足对应的更新条件,则将下一待筛选插件作为新的当前待筛选插件并确定新的当前待筛选插件是否为目标插件,直至确定目标插件,将目标插件发送给插件更新请求的发送方,由于上述操作是在独立的热修复平台执行的,因此,实现了提升插件更新的灵活性。

图3为本发明实施例提供的一种插件更新装置的结构示意图,本实施例可适用于提升插件更新灵活性的情况,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机或移动终端等。如图3所示,该装置具体包括:

插件更新请求获取模块310,用于获取插件更新请求,插件更新请求包括第一插件属性。

待筛选插件确定模块320,用于根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性。

目标插件确定模块330,用于根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件。

发送所述目标插件340,发送目标插件。

本实施例的技术方案,通过获取插件更新请求,插件更新请求包括第一插件属性,根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性,根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件,发送目标插件,由于上述操作是在独立的热修复平台执行的,因此,实现了提升插件更新的灵活性。

可选的,在上述技术方案的基础上,目标插件确定模块330,具体可以包括:

目标插件确定单元,用于第一插件属性与第二插件属性之间满足对应的更新条件,则将第二插件属性对应的待筛选插件作为目标插件。

可选的,在上述技术方案的基础上,第一插件属性可以包括第一通用插件属性和第一非通用插件属性。

可选的,在上述技术方案的基础上,第二插件属性可以包括第二通用插件属性和第二非通用插件属性,第二通用插件属性和第二非通用插件属性分别存储于不同的插件属性表。

可选的,在上述技术方案的基础上,待筛选插件确定模块320,具体可以包括:

待筛选插件确定单元,用于根据第一通用插件属性和第二通用插件属性,确定待筛选插件。

可选的,在上述技术方案的基础上,待筛选插件确定单元,具体可以用于:

将第二通用插件属性与第一通用插件属性相同的插件,作为待筛选插件。

可选的,在上述技术方案的基础上,第一插件属性与第二插件属性之间满足对应的更新条件,具体可以包括:

第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件。

可选的,在上述技术方案的基础上,第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件,具体可以包括:

如果更新条件为大于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性大于第二非通用插件属性。或者

如果更新条件为小于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性小于第二非通用插件属性。或者

如果所更新条件为等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性等于第二非通用插件属性。或者

如果更新条件为不等于,则所第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性不等于第二非通用插件属性。或者

如果更新条件为小于等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性小于等于第二非通用插件属性。或者

如果更新条件为大于等于,则第一非通用插件属性与第二非通用插件属性之间满足对应的更新条件为第一非通用插件属性大于等于第二非通用插件属性。

可选的,在上述技术方案的基础上,待筛选插件具体可以包括插件标识,插件标识用于关联相同待筛选插件的第二通用插件属性和第二非通用插件属性。

可选的,在上述技术方案的基础上,目标插件的数量为一个。

本发明实施例所提供的插件更新装置可执行本发明任意实施例所提供的插件更新方法,具备执行方法相应的功能模块和有益效果。

图4为本发明实施例提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备412的框图。图4显示的设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,设备412以通用计算设备的形式表现。设备412的组件可以包括但不限于:一个或者多个处理器416,系统存储器428,连接于不同系统组件(包括系统存储器428和处理器416)的总线418。

总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(instructionsetarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mca)总线,增强型(instructionsetarchitecture,isa)总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。

设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被移动终端412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)630和/或高速缓存存储器332。设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如(computerdiscread-onlymemory,cd-rom),数字视盘(digitalvideodisc-readonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。

设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该设备412交互的设备通信,和/或与使得该设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口422进行。并且,设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(localareanetwork,lan),广域网(wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与设备412的其它模块通信。应当明白,尽管图4中未示出,可以结合设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdisks,raid)系统、磁带驱动器以及数据备份存储系统等。

处理器416通过运行存储在系统存储器428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种插件更新方法,该方法包括:

获取插件更新请求,插件更新请求包括第一插件属性。

根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性。

根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件。

发送目标插件。

当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供应用于设备的插件更新方法的技术方案。该设备的硬件结构以及功能可参见实施例的内容解释。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种插件更新方法,该方法包括:

获取插件更新请求,插件更新请求包括第一插件属性。

根据插件更新请求确定待筛选插件,待筛选插件包括第二插件属性。

根据第一插件属性和第二插件属性,从待筛选插件中确定目标插件。

发送目标插件。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(computerdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的设备的插件更新方法中的相关操作。对存储介质的介绍可参见实施例中的内容解释。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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