组件启动方法及装置与流程

文档序号:29157020发布日期:2022-03-08 21:25阅读:202来源:国知局
组件启动方法及装置与流程

1.本技术实施例涉及信息技术领域,尤其涉及一种组件启动方法及装置。


背景技术:

2.插件化技术最初源于免安装运行安卓应用程序包(android application package,apk)。通过插件化技术,可以将应用中不常用的功能模块做成插件,在运行时直进行接加载,从而可以减小应用的安装包的大小并实现应用功能的动态扩展。
3.在相关技术中,组件需要配置到可扩展标记语言(extensible markup language,xml)中才能被系统所感知。而插件中的组件,由于无法被添加到xml中,所以无法被系统所感知,因此需要通过桩进行代理。桩通常包含有静态桩和动态桩。由于动态桩具有可复用性,在使用结束后可以释放,释放之后又可代理其他的组件。因此,通常使动态桩来代理组件。
4.然而,通过动态桩来启动组件时,需要先通过跨进程调用,让动态桩分配器为组件分配动态桩,之后再次通过跨进程调用启动对应的组件。这导致启动组件的流程被拉长,进而使得组件的启动速度过慢,影响用户体验。


技术实现要素:

5.本技术实施例提供一种组件启动方法及装置,以解决现有技术中组件启动速度慢的技术问题。
6.第一方面,本技术实施例提供一种组件启动方法,该方法应用于组件启动装置,组件启动装置可例如手机、笔记本电脑等终端设备。该方法包括:接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示,所述启动指示用于指示启动待运行的插件中的目标组件;若检测到所述目标组件与目标动态桩存在一对一的映射关系,则通过启动所述目标动态桩加载所述目标组件,所述目标动态桩用于代理所述目标组件的接口调用和生命周期。
7.上述方法中,为目标动态桩与目标组件设定一对一映射,从而使得无需再通过动态桩分配器为组件分配动态桩,可以直接通过与目标组件存在一对一映射的目标动态桩来启动动态桩,从而提高了组件的启动速度,提升了用户体验。
8.作为一种可能的实施方式,在所述接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示之前,所述方法还包括:建立所述目标动态桩与所述目标组件之间的一对一的映射关系;设置所述目标动态桩与所述目标组件的一对一的映射关系的有效期。
9.通过该可能的实施方式中,在设定有效期的基础上,可以实现一个目标动态桩在不同时间段与不同目标组件的建立一对一的映射关系,从而提高动态桩的使用率。
10.作为一种可能的实施方式,所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系,包括:获取所述目标组件的配置信息;根据所述目标组件的配置信息,建立
所述目标动态桩与所述目标组件之间的一对一的映射关系。
11.通过该可能的实施方式中,通过获取配置信息可以简单快速地建立目标动态桩与所述目标组件之间的一对一的映射关系。
12.作为一种可能的实施方式,所述获取所述目标组件的配置信息,包括:在安装插件后,从所述插件的安装包中获取所述目标组件的配置信息。
13.作为一种可能的实施方式,所述目标组件的配置信息包括桩配置表。
14.作为一种可能的实施方式,所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系,包括:
15.根据所述桩配置表中所述目标组件对应的目标动态桩,建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
16.作为一种可能的实施方式,在所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系之前,所述方法还包括:查询所述目标动态桩的占用情况;所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系,包括:若所述目标动态桩未被占用,则建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
17.通过该可能的实施方式中,在建立映射关系前可以先检测目标动态桩是否被占用,从而避免影响正在占用该目标动态桩的组件。
18.作为一种可能的实施方式,所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系,还包括:若所述目标动态桩被占用,在所述目标动态桩被释放后建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
19.作为一种可能的实施方式,所述设置所述目标动态桩与所述目标组件的一对一的映射关系的有效期,包括:在桩链接列表中设置所述目标动态桩与所述目标组件之间的一对一的映射关系的有效期。
20.作为一种可能的实施方式,所述建立所述目标动态桩与所述目标组件之间的一对一的映射关系,包括:查询空闲的动态桩;将所述空闲的动态桩作为目标动态桩与所述目标组件建立一对一的映射关系。
21.作为一种可能的实施方式,在所述设置所述目标动态桩与所述目标组件的一对一的映射关系的有效期之后,所述方法还包括:将所述目标动态桩的桩地址发送给第一应用和/或操作系统。
22.作为一种可能的实施方式,所述有效期为永久。
23.第二方面,本技术实施例提供一种组件启动装置,所述装置包括:
24.接收模块,用于接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示,所述启动指示用于指示加载待运行的插件中的目标组件;
25.处理模块,用于若检测到所述目标组件与目标动态桩存在一对一的映射关系,则通过启动所述目标动态桩加载所述目标组件,所述目标动态桩用于代理所述目标组件的接口调用和生命周期。
26.作为一种可能的实施方式,所述处理模块,还用于建立所述目标动态桩与所述目标组件之间的一对一的映射关系;设置所述目标动态桩与所述目标组件的一对一的映射关系的有效期。
27.作为一种可能的实施方式,所述处理模块,具体用于获取所述目标组件的配置信
息;根据所述目标组件的配置信息,建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
28.作为一种可能的实施方式,所述处理模块,具体用于在安装插件后,从所述插件的安装包中获取所述目标组件的配置信息。
29.作为一种可能的实施方式,所述目标组件的配置信息包括桩配置表。
30.作为一种可能的实施方式,所述处理模块,具体用于根据所述桩配置表中所述目标组件对应的目标动态桩,建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
31.作为一种可能的实施方式,所述处理模块,还用于查询所述目标动态桩的占用情况;若所述目标动态桩未被占用,则建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
32.作为一种可能的实施方式,所述处理模块,还用于若所述目标动态桩被占用,在所述目标动态桩被释放后建立所述目标动态桩与所述目标组件之间的一对一的映射关系。
33.作为一种可能的实施方式,所述处理模块,具体用于在桩链接列表中设置所述目标动态桩与所述目标组件之间的一对一的映射关系的有效期。
34.作为一种可能的实施方式,所述处理模块,具体用于查询空闲的动态桩;将所述空闲的动态桩作为目标动态桩与所述目标组件建立一对一的映射关系。
35.作为一种可能的实施方式,所述装置还包括:
36.发送模块,用于将所述目标动态桩的桩地址发送给第一应用和/或操作系统。
37.作为一种可能的实施方式,所述有效期为永久。
38.第三方面,本技术实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现第一方面所述的组件启动方法。
39.第四方面,本技术实施例提供一种电子设备,包括:处理器和收发器;所述存储器和所述处理器耦合,所述处理器用于执行第一方面所述的方法。
40.第五方面,本技术实施例提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,组件启动装置的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得通信装置实施第一方面所述的组件启动方法。
41.第十三方面,本技术实施例提供一种芯片,包括:处理器和接口,所述接口用于获取程序或指令,所述处理器用于调用所述程序或指令以执行第一方面所述的方法。
42.本技术实施例提供一种组件启动方法及装置,先接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示,启动指示用于指示加载待运行的插件中的目标组件,随后,若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。与现有技术相比,本技术通过为目标动态桩与目标组件设定一对一映射,从而使得无需再通过动态桩分配器为组件分配动态桩,可以直接通过与目标组件存在一对一映射的目标动态桩来启动动态桩,从而提高了组件的启动速度,提升了用户体验。
附图说明
43.图1为本技术实施例提供的一种动态桩与静态桩的示意图;
44.图2为本技术实施例提供的一种新增静态桩的示意图;
45.图3为本技术实施例提供的一种组件启动方法的场景示意图;
46.图4为本技术实施例提供的一种组件启动方法的流程示意图;
47.图5为本技术实施例提供的另一种组件启动方法的流程示意图;
48.图6为本技术实施例提供的一种组件启动的原理图;
49.图7为本技术实施例提供的再一种组件启动方法的流程示意图;
50.图8为本技术实施例提供的另一种组件启动的原理图;
51.图9为本技术实施例提供的一种组件启动装置的结构示意图;
52.图10为本技术实施例提供的一种电子设备的结构示意。
具体实施方式
53.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.插件化技术最初源于免安装运行安卓应用程序包(android application package,apk)。通过插件化技术,可以将应用中不常用的功能模块做成插件,在运行时直进行接加载,从而可以减小应用的安装包的大小并实现应用功能的动态扩展。
55.在相关技术中,组件需要配置到可扩展标记语言(extensible markup language,xml)中才能被系统所感知。图1为本技术实施例提供的一种动态桩与静态桩的示意图。如图1,动态桩与组件的映射关系为1对n的关系,主要通过桩管理器来为组件动态地分配动态桩。当应用想要启动一个组件时,需要先通过动态桩分配器分配一个动态桩,然后应用才可以通过这个动态桩来启动组件。而静态桩与组件的映射关系为1对1的关系,静态桩对应的组件是固定的。当应用想要启动静态桩代理的组件的时候,只需要直接启动静态桩的桩,静态桩就会直接加载相应的组件。
56.相比于动态桩,由于静态桩映射关系是固定的,因此,在启动时无需获取桩地址,可以通过直接启动静态桩的形式拉起组件,对性能有较大提升。图2为本技术实施例提供的一种新增静态桩的示意图。如图2所示,当插件中想要新增一个使用静态桩的组件的时候,需要在容器apk中新增一个静态桩,这使得插件apk无法独立发布,其新增的组件只能在最新版本的容器apk中运行,大大限制了插件apk独立发布的能力。
57.因此,现有技术中通常使用可复用性更强的动态桩。然而,通过动态桩来启动组件时,需要先通过跨进程调用,让动态桩分配器为组件分配动态桩,之后再次通过跨进程调用启动对应的组件。这导致启动组件的流程被拉长,进而使得组件的启动速度过慢,影响用户体验。
58.在实际应用中,对于插件的组件对启动性能要求严格。在一些情况中,组件的启动性能直接影响到了组件的使用率。示例性的,支付插件中支付页面的启动性能,会直接影响到用户支付转化率,影响到支付的收入。
59.为解决上述问题,本技术实施例提供了一种组件启动方法及装置,从而提高了组件的启动速度,提升了用户体验。由于本技术中在组件和动态桩之间设置有一对一的映射关系,从而使得第三方应用在启动组件时,无需再通过动态桩分配器为组件分配动态桩,可以直接通过对应的目标动态桩来启动,从而提高了组件的启动速度,提升了用户体验。
60.下面对本技术的应用场景进行说明。
61.图3为本技术实施例提供的一种组件启动方法的场景示意图。如图3,若终端设备上的三方应用检测到用户点击了支付,则第三方应用会发送一个启动支付应用(容器apk)中支付页面(插件apk)的组件的请求。此时,支付应用在收到三方应用中的请求后,会通过桩管理器查询在空白页面里加载插件apk的具体组件,随后通过运行环境将插件apk加载,然后再通过代理桩把组件加载进来。
62.其中,本技术实施例对于应用的类型和插件的类型均不作限制,可以根据实际情况具体设置。上述终端设备,也可以称为终端terminal、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)等。终端设备101可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等,上述终端设备可以应用于5g网络,甚至于未来的6g网络或者7g网络等。
63.此外,终端设备可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和人造卫星上。本技术实施例对终端设备的应用场景也不做限定。
64.需要说明的是,本技术实施例中涉及的组件启动方法可以应用于图3所示的场景中,但对此不做限制,也可以运用于其他需要启动组件的场景中。
65.可以理解,上述组件启动方法可以通过本技术实施例提供的组件启动装置实现,组件启动装置可以是某个设备的部分或全部,例如为上述终端设备或终端设备的芯片。
66.下面以集成或安装有相关执行代码的终端设备例,以具体地实施例对本技术实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
67.图4为本技术实施例提供的一种组件启动方法的流程示意图,本实施例涉及的是如何服务器如何通过动态桩启动插件中的组件的过程。如图4所示,该方法包括:
68.步骤s101:接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示,启动指示用于指示启动待运行的插件中的目标组件。
69.在本技术中,当第一应用需要调用插件中的目标组件时,可以发送针对目标动态桩的启动指示,终端设备在接收到启动指示后,可以加载待运行的插件中的目标组件。
70.其中,本技术实施例对于第一应用、插件以及组件均不做限制。示例性的,第一应用可以为购物应用、聊天应用、视频应用等。示例性的,插件可以为支付插件、音频插件等。示例性的,常用的组件可以分为应用程序组件(activity)、服务组件(service)、内容提供
者组件(content provider)和广播接收器组件(broadcast receiver)。其中,activity用于提供屏幕与用于付进行交互,service用于后台运行一种服务程序,content provider用于进行进程间的数据交互和共享,broadcast receiver用于接收并响应来自应用或系统的广播。需要说明的是,本技术实施例中可以启动上述任一类型的组件。
71.步骤s102:若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。
72.在本步骤中,当终端设备接收第一应用发送的启动指示后,可以检测目标组件与动态桩是否存在一对一的映射关系,若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件。
73.在一些实施例中,若未检测到目标组件与任意动态桩存在一对一的映射关系,则先通过跨进程调用,让动态桩分配器为组件分配动态桩,之后再次通过跨进程调用启动对应的组件。
74.需要说明的是,本技术实施例对于如何检测目标组件与目标动态桩存在一对一的映射关系不做限制,一种可选的实施方式中,在接收启动指示后,目标动态桩可以通过动态桩分配器查验与自身存在一对一的映射关系的目标组件,若查验到与自身存在一对一的映射关系的目标组件,则启动该目标组件。若无与自身存在一对一的映射关系的目标组件,则不启动任何组件。
75.在一些实施例中,上述一对一的映射关系还可以设置有有效期,则相应的,目标动态桩再查验与自身存在一对一的映射关系的目标组件后,还可以查验一对一的映射关系的有效期。若在有效期内,则加载目标组件,若不在有效期内,则不启动任何组件。
76.为了保证在接收到启动指示时可以无需由动态桩分配器为组件分配动态桩,在接收第一应用发送的针对目标动态桩的启动指示之前,第一终端可以建立目标动态桩与目标组件之间的一对一的映射关系,并设置目标动态桩与目标组件的一对一的映射关系的有效期。
77.需要说明的是,本技术实施例对于建立目标动态桩与目标组件之间的一对一的映射关系的时间不做限制,一种可选的实施方式中,可以在安装插件后,立即建立目标动态桩与目标组件之间的一对一的映射关系。
78.此外,本技术实施例中,也可以采用多种不同方式建立目标动态桩与目标组件之间的一对一的映射关系。
79.一种可选的实施方式中,在安装插件后,终端设备可以从插件的安装包中获取目标组件的配置信息。随后,根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系。其中,目标组件的配置信息包括桩配置表。,相应的,终端设备可以根据桩配置表中目标组件对应的目标动态桩,建立目标动态桩与目标组件之间的一对一的映射关系。
80.需要说明的是,在一些实施例中,在确定出配置信息中目标组件对应的目标动态桩后,该目标动态桩可能处于被占用的状态,若此时建立目标动态桩与目标组件之间的一对一的映射关系,可能会影响正在占用该目标动态桩的组件的正常运行。因此,在建立目标动态桩与目标组件之间的一对一的映射关系之前,可以查询目标动态桩的占用情况,若目标动态桩未被占用,则立即建立目标动态桩与目标组件之间的一对一的映射关系。若目标
动态桩被占用,在目标动态桩被释放后建立目标动态桩与目标组件之间的一对一的映射关系。
81.此外,设置目标动态桩与目标组件之间的一对一的映射关系的有效期具体可以设置在桩链接列表中。
82.另一种可选的实施方式中,终端设备可以查询空闲的动态桩,随后,将空闲的动态桩作为目标动态桩与目标组件建立一对一的映射关系。最后,将目标动态桩的桩地址发送给第一应用和/或操作系统。
83.本技术中,通过建立目标动态桩与目标组件之间的一对一的映射关系,并设置有效期,相当于将动态桩在有效期内转化为静态桩。
84.本技术实施例提供一种组件启动方法,先接收第一应用发送的启动指示,启动指示用于指示加载待运行的插件中的目标组件,随后,若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。与现有技术相比,本技术通过为目标动态桩与目标组件设定一对一映射,从而使得无需再通过动态桩分配器为组件分配动态桩,可以直接通过与目标组件存在一对一映射的目标动态桩来启动动态桩,从而提高了组件的启动速度,提升了用户体验。
85.在上述实施例的基础上,下面提供两种建立目标动态桩与目标组件之间的一对一的映射关系的方式。第一种方式中,若已经预先设置好目标组件对应的目标动态桩,则可以直接根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系。
86.图5为本技术实施例提供的另一种组件启动方法的流程示意图,图6为本技术实施例提供的一种组件启动的原理图,本实施例涉及的是如何终端设备如何根据目标组件的配置信息建立目标动态桩与目标组件之间的一对一的映射关系的具体过程。如图5和图6所示,该方法包括:
87.步骤s201:获取目标组件的配置信息。
88.在一些实施例中,在安装插件后,终端设备可以从插件的安装包中获取目标组件的配置信息。其中,配置信息包括桩配置表
89.示例性的,如图6所示,当第一应用的容器apk下载安装插件之后,会扫描插件中组件的配置信息。随后终端设备的动态桩分配器中的通信模块获取配置信息,再由动态桩分配器中的配置读取模块读取插件配置信息中的桩配置表。
90.步骤s202:根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系。
91.在本步骤中,当终端设备获取目标组件的配置信息后,可以根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系。
92.需要说明的是,本技术实施例对于如何建立目标动态桩与目标组件之间的一对一的映射关系不做限制,在一种可选的实施方式中,可以根据桩配置表中目标组件对应的目标动态桩,建立目标动态桩与目标组件之间的一对一的映射关系。
93.示例性的,如图6所示,若读取到组件b的配置信息中组件b与动态桩1对应,则可以在组件b以及组件b对应的动态桩1之间设置一对一的映射关系。相应的,动态桩1可以作为组件b的启动入口。
94.在一种可选的实施方式中,在建立目标动态桩与目标组件之间的一对一的映射关系之前,第一终端还可以查询目标动态桩的占用情况。若目标动态桩未被占用,则建立目标动态桩与目标组件之间的一对一的映射关系。若目标动态桩被占用,在目标动态桩被释放后建立目标动态桩与目标组件之间的一对一的映射关系。
95.示例性的,如图6所示,动态桩分配器中的配置读取模块可以通过动态桩分配器中的查询模块查询桩链接列表,从而确定当前动态桩1是否被占用。若如图6中动态桩1已经被组件a占用,则等待组件1被释放后,配置读取模块通过动态桩分配器中的桩链接模块,向桩链接列表中插入动态桩1与组件b之间的一对一的映射关系,将动态桩1指向组件b。若动态桩1未被占用,则直接向桩链接列表中插入动态桩1与组件b之间的一对一的映射关系。
96.步骤s203:设置目标动态桩与目标组件的一对一的映射关系的有效期。
97.在本步骤中,在终端设备根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系之后,可以设置目标动态桩与目标组件的一对一的映射关系的有效期。
98.本技术实施例对于如何设置目标动态桩与目标组件的一对一的映射关系的有效期不做限制,一种可选的实施方式中,可以在桩链接列表中设置目标动态桩与目标组件之间的一对一的映射关系的有效期。
99.示例性的,如图6所示,配置读取模块通过时效控制模块,在桩链接表中的有效期中,设置动态桩1的有效期。
100.其中,本技术实施例中涉及的目标动态桩的有效期可以设置为永久。
101.步骤s204:接收第一应用发送的启动指示,启动指示用于指示加载待运行的插件中的目标组件。
102.步骤s205:若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。
103.本实施例中,步骤s204-步骤s205的具体实现过程和实现原理与图4中步骤s101-步骤s102的类似,此处不再赘述。
104.本技术实施例,通过获取目标组件的配置信息,再根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系,从而将动态桩转换为静态桩,使得使用插件的应用可以通过启动目标组件对应的目标动态桩来加载目标组件,提高了组件的起点速度。此外,通过配置信息的方式转换动态桩,其使用范围更广,可以将所有类型的动态桩转换为静态桩。并且本技术的启动组件的方式与原生的逻辑完全一致,无需在启动信息中添加额外的数据来指明需要启动组件,从而降低学习成本和出错率。
105.在上述实施例的基础上,下面对于第二种建立目标动态桩与目标组件之间的一对一的映射关系的方式进行说明。第二种方式中,若未预先设置好目标组件对应的目标动态桩,则可以直接查询空闲的动态桩,随后将空闲的动态桩作为目标动态桩与目标组件建立一对一的映射关系。
106.图7为本技术实施例提供的再一种组件启动方法的流程示意图,图8为本技术实施例提供的另一种组件启动的原理图,本实施例涉及的是如何终端设备如何通过查询空闲的动态桩建立目标动态桩与目标组件之间的一对一的映射关系的具体过程。如图7所示和图8所示,该方法包括:
107.步骤s301:查询空闲的动态桩。
108.步骤s302:将空闲的动态桩作为目标动态桩与目标组件建立一对一的映射关系。
109.步骤s303:将目标动态桩的桩地址发送给第一应用和/或操作系统。
110.本技术中,但需要建立目标动态桩与目标组件建立一对一的映射关系,终端设备可以直接查询查询空闲的动态桩,并将空闲的动态桩作为目标动态桩与目标组件建立一对一的映射关系。随后,将目标动态桩的桩地址发送给第一应用和/或操作系统。
111.示例性的,如图8所示,插件可以通过动态桩分配器的通信模块,来调用桩链接模块,为组件b链接一个空闲的动态桩地址。其次,插件通过动态桩分配器的通信模块,调用桩查询模块,查询到组件b对应的动态桩地址。再通过时效控制模块,设置此桩地址的有效期为永久。最后,将查询到的动态桩地址,注册到系统当中,或者发送给其他使用方。此后,使用方则可以通过此地址直接启动组件b,实现静态桩的效果。
112.步骤s304:设置目标动态桩与目标组件的一对一的映射关系的有效期。
113.步骤s305:接收第一应用发送的启动指示,启动指示用于指示加载待运行的插件中的目标组件。
114.步骤s306:若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。
115.本实施例中,步骤s304-步骤s306的具体实现过程和实现原理与图5中步骤s203-步骤s205的类似,此处不再赘述。
116.本技术实施例通过与动态桩分配器进行交互,直接将某个动态桩转成静态桩的过程。其常常适用于在需要在运行态将组件注册到系统中的场景。例如,向系统注册一个组件(jobservice),由于系统会持续反射调用服务的入口地址,所以入口地址不能使用动态桩的形式,需要转换为静态桩。
117.本技术中,可以将目标动态桩与目标组件的一对一的映射关系注册到系统中,从而使得可以被系统回调使用。此外,可以动态分配桩地址,使用空闲的桩地址来转成静态桩,无需考虑桩占用问题。
118.本技术实施例提供一种组件启动方法,先接收第一应用发送的启动指示,启动指示用于指示加载待运行的插件中的目标组件,随后,若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。与现有技术相比,本技术通过为目标动态桩与目标组件设定一对一映射,从而使得无需再通过动态桩分配器为组件分配动态桩,可以直接通过与目标组件存在一对一映射的目标动态桩来启动动态桩,从而提高了组件的启动速度,提升了用户体验。
119.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
120.图9为本技术实施例提供的一种组件启动装置的结构示意图。该组件启动装置可以用于执行上述图4~图8所示实施例中的组件启动方法,该组件启动装置可以为上述终端设备本身,也可以为上述终端设备内部的元件或者集成电路,例如芯片。如图9所示,该组件
启动装置40包括:接收模块41,处理模块42,发送模块43;
121.接收模块41,用于接收用户通过操作终端设备上安装的第一应用触发的针对目标动态桩的启动指示,启动指示用于指示加载待运行的插件中的目标组件;
122.处理模块42,用于若检测到目标组件与目标动态桩存在一对一的映射关系,则通过启动目标动态桩加载目标组件,目标动态桩用于代理目标组件的接口调用和生命周期。
123.一种可选的实施方式中,处理模块42,还用于建立目标动态桩与目标组件之间的一对一的映射关系;设置目标动态桩与目标组件的一对一的映射关系的有效期。
124.一种可选的实施方式中,处理模块42,具体用于获取目标组件的配置信息;根据目标组件的配置信息,建立目标动态桩与目标组件之间的一对一的映射关系。
125.一种可选的实施方式中,处理模块42,具体用于在安装插件后,从插件的安装包中获取目标组件的配置信息。
126.一种可选的实施方式中,目标组件的配置信息包括桩配置表。
127.一种可选的实施方式中,处理模块42,具体用于根据桩配置表中目标组件对应的目标动态桩,建立目标动态桩与目标组件之间的一对一的映射关系。
128.一种可选的实施方式中,处理模块42,还用于查询目标动态桩的占用情况;若目标动态桩未被占用,则建立目标动态桩与目标组件之间的一对一的映射关系。
129.一种可选的实施方式中,处理模块42,还用于若目标动态桩被占用,在目标动态桩被释放后建立目标动态桩与目标组件之间的一对一的映射关系。
130.一种可选的实施方式中,处理模块42,具体用于在桩链接列表中设置目标动态桩与目标组件之间的一对一的映射关系的有效期。
131.一种可选的实施方式中,处理模块42,具体用于查询空闲的动态桩;将空闲的动态桩作为目标动态桩与目标组件建立一对一的映射关系。
132.一种可选的实施方式中,装置还包括:
133.发送模块43,用于将目标动态桩的桩地址发送给第一应用和/或操作系统。
134.一种可选的实施方式中,有效期为永久。
135.本技术实施例提供的组件启动装置,可以执行上述方法实施例中终端设备的执行的组件启动方法,其实现原理和技术效果类似,在此不再赘述。
136.图10为本技术实施例提供的一种电子设备的结构示意,如图10所示,该电子设备可以包括:至少一个处理器51和存储器52。图10示出的是以一个处理器为例的电子设备。
137.存储器52,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
138.存储器52可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
139.处理器51用于执行存储器52存储的计算机执行指令,以实现上表单生成方法;
140.其中,处理器51可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
141.可选的,在具体实现上,如果通信接口、存储器52和处理器51独立实现,则通信接口、存储器52和处理器51可以通过总线相互连接并完成相互间的通信。总线可以是工业标
准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
142.可选的,在具体实现上,如果通信接口、存储器52和处理器51集成在一块芯片上实现,则通信接口、存储器52和处理器51可以通过内部接口完成通信。
143.本技术实施例还提供了一种芯片,包括处理器和接口。其中接口用于输入输出处理器所处理的数据或指令。处理器用于执行以上方法实施例中提供的方法。该芯片可以应用于终端设备中。
144.本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有指令,当指令被执行时,使得计算机执行如本技术上述实施例中执行的方法;
145.本技术实施例提供一种程序产品,包括计算机程序,计算机程序存储在可读存储介质中,组件启动装置的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得通信装置实施第一方面的组件启动方法。
146.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
147.需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本技术的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
148.集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
149.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、
计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1