CN110297658A - 功能组件共享方法、装置和计算机设备 - Google Patents
功能组件共享方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110297658A CN110297658A CN201810234582.8A CN201810234582A CN110297658A CN 110297658 A CN110297658 A CN 110297658A CN 201810234582 A CN201810234582 A CN 201810234582A CN 110297658 A CN110297658 A CN 110297658A
- Authority
- CN
- China
- Prior art keywords
- software
- development kit
- functional component
- host
- current
- 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
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000006870 function Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 18
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 19
- 230000003287 optical effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种功能组件共享方法、装置和计算机设备,其中方法包括:读取当前软件的软件开发工具包中预存的软件列表,获取集成有软件开发工具包的各个软件的标识,获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,采用上述类似方法,将各个软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中运行的功能组件的数量,减少系统资源的消耗量,提高系统稳定性,提高用户的使用体验。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种功能组件共享方法、装置和计算机设备。
背景技术
目前,在Android系统中,多个软件APP都实现一些相同的功能组件,例如用户行为埋点上报、云端消息推送、服务配置下发等功能。针对这些功能组件,有以下两种实现方式,第一种方式是在单个APP内集成所有需要的功能组件,APP之间完全独立;第二种方式是将公用的功能组件抽取到一个单独的APP中,所有的组件接口调用,均由该APP来完成。
然而,上述第一种方式中,Android系统中可能同时运行多个功能完全相同的组件实例,系统资源消耗量大,容易卡顿,导致系统的稳定性差。上述第二种方式中,当包括各公用的功能组件的APP卸载或者无法使用时,将导致多个APP都无法使用,系统的稳定性差,影响用户的使用体验。
发明内容
为克服相关技术中存在的问题,本申请提供一种功能组件共享方法、装置和计算机设备。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供一种功能组件共享方法,包括:
读取当前软件的软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
其中在一种具体的实施方式中,所述的方法还包括:
在接收到非宿主软件广播的版本升级消息时,或者,
在获取到卸载宿主软件的消息时,
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
根据所述各个软件的软件开发工具包的版本号,重新确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
其中在另一种具体的实施方式中,获取卸载宿主软件的消息的方式为,
接收所述当前软件对应的操作系统发送的卸载宿主软件的消息;或者,
检测所述当前软件的软件开发工具包中的功能组件接口的绑定关系,在所述绑定关系断开时,确定获取到卸载宿主软件的消息。
其中在另一种具体的实施方式中,所述根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,包括:
根据所述各个软件的软件开发工具包的版本号,对所述各个软件进行排序,获取排序结果;
在所述排序结果中存在对应的版本号相同的至少两个软件时,按照所述至少两个软件的默认优先级对所述至少两个软件进行排序;
将所述排序结果中排序最前的软件确定为宿主软件。
其中在另一种具体的实施方式中,所述的方法还包括:
在所述当前软件的软件开发工具包的版本升级后,所述当前软件首次运行时,且所述当前软件为非宿主软件时,广播所述当前软件的版本升级消息。
其中在另一种具体的实施方式中,所述的方法还包括:
获取所述当前软件的接口调用请求,所述接口调用请求中包括:待调用接口和待处理数据;
在所述当前软件为所述宿主软件时,对与所述待调用接口绑定的功能组件实例进行运行,以使所述功能组件实例对所述待处理数据进行处理,获取调用结果。
其中在另一种具体的实施方式中,所述的方法还包括:
在所述当前软件为非宿主软件时,将所述接口调用请求发送给所述宿主软件,以使所述宿主软件对与所述待调用接口绑定的功能组件实例进行运行,获取调用结果。
本申请实施例提供的技术方案可以包括以下有益效果:读取当前软件的软件开发工具包中预存的软件列表,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
第二方面,本申请实施例提供一种功能组件共享装置,包括:
读取模块,用于读取当前软件的软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
获取模块,用于根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
绑定模块,用于根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
其中在一种具体的实施方式中,所述获取模块,还用于在接收到非宿主软件广播的版本升级消息时,或者,
在获取到卸载宿主软件的消息时,
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
所述绑定模块,还用于根据所述各个软件的软件开发工具包的版本号,重新确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
其中在另一种具体的实施方式中,所述获取模块具体用于,
接收所述当前软件对应的操作系统发送的卸载宿主软件的消息;或者,
检测所述当前软件的软件开发工具包中的功能组件接口的绑定关系,在所述绑定关系断开时,确定获取到卸载宿主软件的消息。
其中在另一种具体的实施方式中,所述绑定模块包括:
排序单元,用于根据所述各个软件的软件开发工具包的版本号,对所述各个软件进行排序,获取排序结果;
所述排序单元,还用于在所述排序结果中存在对应的版本号相同的至少两个软件时,按照所述至少两个软件的默认优先级对所述至少两个软件进行排序;
确定单元,用于将所述排序结果中排序最前的软件确定为宿主软件。
其中在另一种具体的实施方式中,所述的装置还包括:
广播模块,用于在所述当前软件的软件开发工具包的版本升级后,所述当前软件首次运行时,且所述当前软件为非宿主软件时,广播所述当前软件的版本升级消息。
其中在另一种具体的实施方式中,所述的装置还包括:运行模块;
所述获取模块,还用于获取所述当前软件的接口调用请求,所述接口调用请求中包括:待调用接口和待处理数据;
所述运行模块,用于在所述当前软件为所述宿主软件时,对与所述待调用接口绑定的功能组件实例进行运行,以使所述功能组件实例对所述待处理数据进行处理,获取调用结果。
其中在另一种具体的实施方式中,所述的装置还包括:
发送模块,用于在所述当前软件为非宿主软件时,将所述接口调用请求发送给所述宿主软件,以使所述宿主软件对与所述待调用接口绑定的功能组件实例进行运行,获取调用结果。
本申请实施例提供的技术方案可以包括以下有益效果:读取当前软件的软件开发工具包中预存的软件列表,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
第三方面,本申请实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上所述的方法。
第四方面,本申请实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请功能组件共享方法一个实施例的流程图;
图2为软件开发工具包的结构示意图;
图3为车机的屏幕示意图;
图4为车机各APP的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中的功能组件实例的绑定示意图;
图5为本申请功能组件共享方法另一个实施例的流程图;
图6为本申请功能组件共享装置一个实施例的结构示意图;
图7为本申请功能组件共享装置另一个实施例的结构示意图;
图8为本申请功能组件共享装置另一个实施例的结构示意图;
图9为本申请功能组件共享装置另一个实施例的结构示意图;
图10为本申请计算机设备一个实施例的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为本申请功能组件共享方法一个实施例的流程图,本实施例中的功能组件共享方法可以由功能组件共享装置实现,功能组件共享装置具体可以为集成有软件开发工具包的软件,或者软件中集成的软件开发工具包,如图1所示,上述功能组件共享方法可以包括以下步骤:
S101、读取当前软件的软件开发工具包中预存的软件列表;软件列表中包括:集成有软件开发工具包的各个软件的标识;软件开发工具包中还包括:至少一个公用的功能组件;功能组件包括:功能组件接口和功能组件实例。
本实施例中,当前软件指的是,集成有软件开发工具包,且安装到硬件设备中,首次运行或者再次运行的软件。其中,为了避免对宿主软件的重复确定,一般可以选择在集成有软件开发工具包,且安装到硬件设备中的当前软件首次运行时,执行图1所示的功能组件共享方法。硬件设备例如,手机、电脑、PAD、车载终端、车机等。当前软件例如,微信、QQ、导航、音乐软件等。当前软件的首次运行指的是,当前软件安装到硬件设备上后,在硬件设备上的首次运行。本实施例中,当前软件在首次运行时,在硬件设备上创建与当前软件对应的进程,从而在当前软件进行后续运行时,采用已创建的进程来实现当前软件的运行。若当前软件被卸载,或者当前软件对应的进程被停止或删除,则在此之后当前软件在该硬件设备上的第一次运行,也可以确定为当前软件的首次运行。
本实施例中,软件开发工具包(Software Development Kit,SDK)可以包括:集成有软件开发工具包的各个软件的标识,以及各个软件之间的部分或者全部公用的功能组件。其中,软件的标识例如可以为软件的包名等。公用的功能组件例如可以为,长连接组件、埋点组件、轨迹组件等。如图2所示,为软件开发工具包的结构示意图,在图2中软件开发工具包中包括:长连接组件、埋点组件和轨迹组件。长连接组件包括:长连接接口和长连接实例;埋点组件包括:埋点上报接口和埋点上报实例;轨迹组件包括:轨迹回传接口和轨迹回传实例。
本实施例中,软件开发工具包SDK从结构上还可以分为接口层和实现层。接口层面向软件APP,提供具体功能组件的调用接口。实现层负责具体的功能组件实现,并响应接口层的接口调用。每个功能组件之间可以相互独立,也可以互相调用。在Android系统中,接口层和实现层可以通过Android接口定义语言(Android Interface Definition Language,AIDL)机制进行方法调用和数据通讯。在图2中,接口层可以包括:长连接接口、埋点上报接口和轨迹回传接口;实现层可以包括:长连接实例、埋点上报实例和轨迹回传实例。另外,需要说明的是,本申请实施例的功能组件共享装置还可以用于苹果系统IOS等。
需要说明的是,本实施例中,在当前软件进行版本升级时,当前软件的软件开发工具包可以随之升级,在软件开发工具包进行版本升级的过程中,实现软件列表的更新,软件开发工具包中功能组件的更新等。
S102、根据各个软件的标识,获取各个软件的软件开发工具包的版本号。
本实施例中,功能组件共享装置可以跨进程调用各个软件的相应接口,获取各个软件的软件开发工具包的版本号。
另外,若硬件设备中未安装有某个软件,则将该软件的软件开发工具包的版本号设置为-1。
S103、根据各个软件的软件开发工具包的版本号,确定各个软件中的宿主软件,将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
本实施例中,功能组件共享装置根据各个软件的软件开发工具包的版本号,确定各个软件中的宿主软件的过程具体可以为,根据各个软件的软件开发工具包的版本号,对各个软件进行排序,获取排序结果;在排序结果中存在对应的版本号相同的至少两个软件时,按照至少两个软件的默认优先级对至少两个软件进行排序;将排序结果中排序最前的软件确定为宿主软件。
本实施例中,在Android系统中,在确定各个软件中的宿主软件后,功能组件共享装置可以调用Android系统提供的bindService接口将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
进一步的,在集成有软件开发工具包的当前软件安装到硬件设备上且首次运行的场景下,当前软件的软件开发工具包的版本号从原来的-1升级到正值,且此时的当前软件为非宿主软件,则当前软件满足广播版本升级消息的条件,则功能组件共享装置可以广播当前软件的版本升级消息。该硬件设备上之前安装的集成有软件开发工具包的其他软件在接收到当前软件的版本升级消息后,可以执行图1所示的功能组件共享方法,即其他软件中的每一个软件都执行以下操作:读取软件的软件开发工具包中预存的软件列表;根据软件列表中各个软件的标识,获取各个软件的软件开发工具包的版本号;根据各个软件的软件开发工具包的版本号,确定各个软件中的宿主软件,将软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
需要说明的是,当前软件的宿主软件确定策略,和其他软件的宿主软件确定策略完全相同,也就是说,集成有软件开发工具包的各个软件根据宿主软件确定策略得到的宿主软件为同一软件,从而各个软件都将软件开发工具包中的功能组件接口与同一软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享。
例如,以硬件设备为车机为例进行说明,如图3所示,为车机的屏幕示意图,在图3中,车机上安装有导航APP、音乐APP和电台APP。其中,导航APP为腾讯地图;音乐APP为QQ音乐;电台APP为腾讯车载电台。
在导航APP为宿主软件的情况下,各APP的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中的功能组件实例的绑定示意图可以如图4所示,在图4中,音乐APP的SDK功能组件接口与导航APP的SDK功能组件实例绑定;导航APP的SDK功能组件接口与导航APP的SDK功能组件实例绑定;电台APP的SDK功能组件接口与导航APP的SDK功能组件实例绑定。
在图3中,以微信推送功能为例,用户可以将位置、歌曲、公众号文章通过手机微信发送到车机,车机端的导航APP、音乐APP、电台APP会分别响应推送,并执行对应的功能逻辑。其中,各个APP响应推送的方式为,由导航APP运行SDK功能组件中的长连接实例来建立车机与服务端的传输控制协议(Transmission Control Protocol,TCP)长连接,通过TCP长连接接收服务端发送的微信推送内容,将接收到的微信推送内容发送给各个APP。另外,导航APP也可以接收各个APP的待发送内容,将各个APP的待发送内容通过TCP长连接发送到服务端。
进一步的,在上述实施例的基础上,所述的方法还可以包括:在当前软件的软件开发工具包的版本升级后,当前软件首次运行时,且当前软件为非宿主软件时,广播当前软件的版本升级消息。
其中,版本升级消息中可以携带:当前软件的软件开发工具包的升级后版本,使得集成有软件开发工具包的其他软件可以直接根据当前软件的软件开发工具包的升级后版本以及其他软件的软件开发工具包的版本,重新确定宿主软件。
进一步的,在上述实施例的基础上,所述的方法还可以包括:获取当前软件的接口调用请求,接口调用请求中包括:待调用接口和待处理数据;在当前软件为宿主软件时,对与待调用接口绑定的功能组件实例进行运行,以使功能组件实例对待处理数据进行处理,获取调用结果。在当前软件为非宿主软件时,将接口调用请求发送给宿主软件,以使宿主软件对与待调用接口绑定的功能组件实例进行运行,获取调用结果。
其中,待处理数据为与待调用接口绑定的功能组件实例需要处理的数据,例如,在待调用接口为长连接接口,与待调用接口绑定的功能组件实例为长连接实例的情况下,待处理数据可以为需要推送的微信数据等。例如,在图3和图4中,在当前软件为导航APP时,导航APP可以运行长连接实例,将微信数据推送给车机上的导航APP、音乐APP和电台APP。
另外,本实施例中,将公用的功能组件集成在软件开发工具包中,从而可以对公用的功能组件进行统一开发和维护,避免重复开发。
本申请实施例提供的技术方案可以包括以下有益效果:读取当前软件的软件开发工具包中预存的软件列表,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
图5为本申请功能组件共享方法另一个实施例的流程图,如图5所示,在图1所示实施例的基础上,上述功能组件共享方法还可以包括:
S104、在接收到非宿主软件广播的版本升级消息时,或者,在获取到卸载宿主软件的消息时,根据各个软件的标识,获取各个软件的软件开发工具包的版本号。
本实施例中,集成有软件开发工具包的各个软件中,非宿主软件的软件开发工具包的版本升级后,非宿主软件会广播版本升级消息,使得其他软件获取该版本升级消息。
本实施例中,功能组件共享装置获取卸载宿主软件的消息的方式为,接收当前软件对应的操作系统发送的卸载宿主软件的消息;或者,检测当前软件的软件开发工具包中的功能组件接口的绑定关系,在绑定关系断开时,确定获取到卸载宿主软件的消息。
其中,在Android系统中,Android系统可以检测各个软件中功能组件接口与功能组件实例之间的绑定关系,在绑定关系断开时,向各个软件或者各个软件的软件开发工具包发送卸载宿主软件的消息。其中,卸载宿主软件的消息可以为心跳消息。
S105、根据各个软件的软件开发工具包的版本号,重新确定各个软件中的宿主软件,将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
本实施例中,在集成有软件开发工具包的各个软件中,在非宿主软件的软件开发工具包的版本升级,或者宿主软件被卸载时,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
另外,本实施例中,在宿主软件被卸载时,根据宿主软件确定策略重新确定宿主软件,可以避免宿主软件故障时,其他软件可不用的问题。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请功能组件共享装置一个实施例的结构示意图,本实施例中的功能组件共享装置可以为集成有软件开发工具包的软件,或者软件中集成的软件开发工具包,实现本申请图1或者图5所示实施例提供的功能组件共享方法,上述功能组件共享装置可以包括:读取模块61、获取模块62和绑定模块63。
其中,读取模块61,用于读取当前软件的软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
获取模块62,用于根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
绑定模块63,用于根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
本实施例中,当前软件指的是,集成有软件开发工具包,且安装到硬件设备中,首次运行或者再次运行的软件。其中,为了避免对宿主软件的重复确定,一般可以选择在集成有软件开发工具包,且安装到硬件设备中的当前软件首次运行时,执行图1所示的功能组件共享方法。硬件设备例如,手机、电脑、PAD、车载终端、车机等。当前软件例如,微信、QQ、导航、音乐软件等。当前软件的首次运行指的是,当前软件安装到硬件设备上后,在硬件设备上的首次运行。本实施例中,当前软件在首次运行时,在硬件设备上创建与当前软件对应的进程,从而在当前软件进行后续运行时,采用已创建的进程来实现当前软件的运行。若当前软件被卸载,或者当前软件对应的进程被停止或删除,则在此之后当前软件在该硬件设备上的第一次运行,也可以确定为当前软件的首次运行。
本实施例中,软件开发工具包(Software Development Kit,SDK)可以包括:集成有软件开发工具包的各个软件的标识,以及各个软件之间的部分或者全部公用的功能组件。其中,软件的标识例如可以为软件的包名等。公用的功能组件例如可以为,长连接组件、埋点组件、轨迹组件等。如图2所示,为软件开发工具包的结构示意图,在图2中软件开发工具包中包括:长连接组件、埋点组件和轨迹组件。长连接组件包括:长连接接口和长连接实例;埋点组件包括:埋点上报接口和埋点上报实例;轨迹组件包括:轨迹回传接口和轨迹回传实例。
本实施例中,软件开发工具包SDK从结构上还可以分为接口层和实现层。接口层面向软件APP,提供具体功能组件的调用接口。实现层负责具体的功能组件实现,并响应接口层的接口调用。每个功能组件之间可以相互独立,也可以互相调用。在Android系统中,接口层和实现层可以通过Android接口定义语言(Android Interface Definition Language,AIDL)机制进行方法调用和数据通讯。在图2中,接口层可以包括:长连接接口、埋点上报接口和轨迹回传接口;实现层可以包括:长连接实例、埋点上报实例和轨迹回传实例。另外,需要说明的是,本申请实施例的功能组件共享装置还可以用于苹果系统IOS等。
需要说明的是,本实施例中,在当前软件进行版本升级时,当前软件的软件开发工具包可以随之升级,在软件开发工具包进行版本升级的过程中,实现软件列表的更新,软件开发工具包中功能组件的更新等。
本实施例中,功能组件共享装置可以跨进程调用各个软件的相应接口,获取各个软件的软件开发工具包的版本号。另外,若硬件设备中未安装有某个软件,则将该软件的软件开发工具包的版本号设置为-1。
进一步的,结合参考图7,图7为本申请功能组件共享装置另一个实施例的结构示意图,在图6所示实施例的基础上,绑定模块63可以包括:排序单元631和确定单元632。
其中,排序单元631,用于根据所述各个软件的软件开发工具包的版本号,对所述各个软件进行排序,获取排序结果;
所述排序单元631,还用于在所述排序结果中存在对应的版本号相同的至少两个软件时,按照所述至少两个软件的默认优先级对所述至少两个软件进行排序;
确定单元632,用于将所述排序结果中排序最前的软件确定为宿主软件。
本实施例中,在Android系统中,在确定各个软件中的宿主软件后,功能组件共享装置可以调用Android系统提供的bindService接口将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
进一步的,在集成有软件开发工具包的当前软件安装到硬件设备上且首次运行的场景下,当前软件的软件开发工具包的版本号从原来的-1升级到正值,且此时的当前软件为非宿主软件,则当前软件满足广播版本升级消息的条件,则功能组件共享装置可以广播当前软件的版本升级消息。该硬件设备上之前安装的集成有软件开发工具包的其他软件在接收到当前软件的版本升级消息后,可以执行图1所示的功能组件共享方法,即其他软件中的每一个软件都执行以下操作:读取软件的软件开发工具包中预存的软件列表;根据软件列表中各个软件的标识,获取各个软件的软件开发工具包的版本号;根据各个软件的软件开发工具包的版本号,确定各个软件中的宿主软件,将软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
需要说明的是,当前软件的宿主软件确定策略,和其他软件的宿主软件确定策略完全相同,也就是说,集成有软件开发工具包的各个软件根据宿主软件确定策略得到的宿主软件为同一软件,从而各个软件都将软件开发工具包中的功能组件接口与同一软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享。
进一步的,结合参考图8,图8为本申请功能组件共享装置另一个实施例的结构示意图,在图6所示实施例的基础上,所述的装置还包括:广播模块64,用于在所述当前软件的软件开发工具包的版本升级后,所述当前软件首次运行时,且所述当前软件为非宿主软件时,广播所述当前软件的版本升级消息。
其中,版本升级消息中可以携带:当前软件的软件开发工具包的升级后版本,使得集成有软件开发工具包的其他软件可以直接根据当前软件的软件开发工具包的升级后版本以及其他软件的软件开发工具包的版本,重新确定宿主软件。
进一步的,结合参考图9,图9为本申请功能组件共享装置另一个实施例的结构示意图,在图6所示实施例的基础上,所述的装置还包括:运行模块65和发送模块66;
所述获取模块62,还用于获取所述当前软件的接口调用请求,所述接口调用请求中包括:待调用接口和待处理数据;
所述运行模块65,用于在所述当前软件为所述宿主软件时,对与所述待调用接口绑定的功能组件实例进行运行,以使所述功能组件实例对所述待处理数据进行处理,获取调用结果;
所述发送模块66,用于在所述当前软件为非宿主软件时,将所述接口调用请求发送给所述宿主软件,以使所述宿主软件对与所述待调用接口绑定的功能组件实例进行运行,获取调用结果。
其中,待处理数据为与待调用接口绑定的功能组件实例需要处理的数据,例如,在待调用接口为长连接接口,与待调用接口绑定的功能组件实例为长连接实例的情况下,待处理数据可以为需要推送的微信数据等。例如,在图3和图4中,在当前软件为导航APP时,导航APP可以运行长连接实例,将微信数据推送给车机上的导航APP、音乐APP和电台APP。
本申请实施例提供的技术方案可以包括以下有益效果:读取当前软件的软件开发工具包中预存的软件列表,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
进一步的,在图6所示实施例的基础上,所述获取模块62,还用于在接收到非宿主软件广播的版本升级消息时,或者,在获取到卸载宿主软件的消息时,根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
所述绑定模块63,还用于根据所述各个软件的软件开发工具包的版本号,重新确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
本实施例中,集成有软件开发工具包的各个软件中,非宿主软件的软件开发工具包的版本升级后,非宿主软件会广播版本升级消息,使得其他软件获取该版本升级消息。
本实施例中,获取模块62具体可以用于,接收当前软件对应的操作系统发送的卸载宿主软件的消息;或者,检测当前软件的软件开发工具包中的功能组件接口的绑定关系,在绑定关系断开时,确定获取到卸载宿主软件的消息。
其中,在Android系统中,Android系统可以检测各个软件中功能组件接口与功能组件实例之间的绑定关系,在绑定关系断开时,向各个软件或者各个软件的软件开发工具包发送卸载宿主软件的消息。其中,卸载宿主软件的消息可以为心跳消息。
本实施例中,在集成有软件开发工具包的各个软件中,在非宿主软件的软件开发工具包的版本升级,或者宿主软件被卸载时,获取集成有软件开发工具包的各个软件的标识,进而获取各个软件的软件开发工具包的版本号,确定宿主软件;将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,各个软件中的其他软件可以采用上述类似方法,实现软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定,从而只需要运行宿主软件中的功能组件实例,非宿主软件可以通过功能组件接口调用宿主软件中的功能组件实例,从而实现宿主软件中的功能组件实例在各个软件之间的共享,减少系统中需要同时运行的功能组件的数量,从而减少系统资源的消耗量,提高系统的稳定性,提高用户的使用体验。
另外,本实施例中,在宿主软件被卸载时,根据宿主软件确定策略重新确定宿主软件,可以避免宿主软件故障时,其他软件可不用的问题。
图10为本申请计算机设备一个实施例的结构示意图,本实施例中的计算机设备可以实现集成有软件开发工具包的软件,或者软件中集成的软件开发工具包的功能,上述计算机设备可以包括:一个或多个处理器;存储器,用于存储一个或多个程序;当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器读取当前软件的软件开发工具包中预存的软件列表;软件列表中包括:集成有软件开发工具包的各个软件的标识;软件开发工具包中还包括:至少一个公用的功能组件;功能组件包括:功能组件接口和功能组件实例;根据各个软件的标识,获取各个软件的软件开发工具包的版本号;根据各个软件的软件开发工具包的版本号,确定各个软件中的宿主软件,将当前软件的软件开发工具包中的功能组件接口与宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
图10示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图10显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc ReadOnly Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图10所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图10中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请图1或者图5所示实施例提供的功能组件共享方法。
本实施例还提供一种非临时性计算机可读存储介质,当上述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行本申请图1或者图5所示实施例提供的功能组件共享方法。
本实施例还提供一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行一种功能组件共享方法,所述方法包括:
在集成有软件开发工具包的当前软件首次运行时,读取所述软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array;以下简称:PGA),现场可编程门阵列(Field ProgrammableGate Array;以下简称:FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种功能组件共享方法,其特征在于,包括:
读取当前软件的软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
2.根据权利要求1所述的方法,其特征在于,还包括:
在接收到非宿主软件广播的版本升级消息时,或者,
在获取到卸载宿主软件的消息时,
根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
根据所述各个软件的软件开发工具包的版本号,重新确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
3.根据权利要求2所述的方法,其特征在于,获取卸载宿主软件的消息的方式为,接收所述当前软件对应的操作系统发送的卸载宿主软件的消息;或者,
检测所述当前软件的软件开发工具包中的功能组件接口的绑定关系,在所述绑定关系断开时,确定获取到卸载宿主软件的消息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,包括:
根据所述各个软件的软件开发工具包的版本号,对所述各个软件进行排序,获取排序结果;
在所述排序结果中存在对应的版本号相同的至少两个软件时,按照所述至少两个软件的默认优先级对所述至少两个软件进行排序;
将所述排序结果中排序最前的软件确定为宿主软件。
5.根据权利要求1所述的方法,其特征在于,还包括:
在所述当前软件的软件开发工具包的版本升级后,所述当前软件首次运行时,且所述当前软件为非宿主软件时,广播所述当前软件的版本升级消息。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取所述当前软件的接口调用请求,所述接口调用请求中包括:待调用接口和待处理数据;
在所述当前软件为所述宿主软件时,对与所述待调用接口绑定的功能组件实例进行运行,以使所述功能组件实例对所述待处理数据进行处理,获取调用结果。
7.根据权利要求6所述的方法,其特征在于,还包括:
在所述当前软件为非宿主软件时,将所述接口调用请求发送给所述宿主软件,以使所述宿主软件对与所述待调用接口绑定的功能组件实例进行运行,获取调用结果。
8.一种功能组件共享装置,其特征在于,包括:
读取模块,用于读取当前软件的软件开发工具包中预存的软件列表;所述软件列表中包括:集成有软件开发工具包的各个软件的标识;所述软件开发工具包中还包括:至少一个公用的功能组件;所述功能组件包括:功能组件接口和功能组件实例;
获取模块,用于根据所述各个软件的标识,获取所述各个软件的软件开发工具包的版本号;
绑定模块,用于根据所述各个软件的软件开发工具包的版本号,确定所述各个软件中的宿主软件,将所述当前软件的软件开发工具包中的功能组件接口与所述宿主软件的软件开发工具包中相应的功能组件实例进行绑定。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1-7中任一所述的方法。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810234582.8A CN110297658B (zh) | 2018-03-21 | 2018-03-21 | 功能组件共享方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810234582.8A CN110297658B (zh) | 2018-03-21 | 2018-03-21 | 功能组件共享方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297658A true CN110297658A (zh) | 2019-10-01 |
CN110297658B CN110297658B (zh) | 2022-09-20 |
Family
ID=68025350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810234582.8A Active CN110297658B (zh) | 2018-03-21 | 2018-03-21 | 功能组件共享方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297658B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559027A (zh) * | 2020-12-23 | 2021-03-26 | 平安银行股份有限公司 | 功能组件的创建与管理方法、系统、设备及可读存储介质 |
CN112860457A (zh) * | 2021-02-22 | 2021-05-28 | 招联消费金融有限公司 | 软件开发工具包调用方法、装置、计算机设备和存储介质 |
CN113722107A (zh) * | 2021-11-01 | 2021-11-30 | 阿里云计算有限公司 | 云产品管控服务部署方法、装置、设备和存储介质 |
CN113742285A (zh) * | 2021-08-31 | 2021-12-03 | 珠海读书郎软件科技有限公司 | 一种资源管理及同步的方法 |
WO2024021467A1 (zh) * | 2022-07-26 | 2024-02-01 | 天翼云科技有限公司 | 一种集群资源规划方法、设备、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552438B1 (en) * | 2000-05-25 | 2009-06-23 | The United States Of America As Represented By The Secretary Of The Navy | Resource management device |
CN103617380A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 应用程序权限动态控制方法和系统 |
CN105718261A (zh) * | 2015-01-16 | 2016-06-29 | 贾志东 | 一种基于功件和功件树的目标产品生成方法和系统 |
-
2018
- 2018-03-21 CN CN201810234582.8A patent/CN110297658B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552438B1 (en) * | 2000-05-25 | 2009-06-23 | The United States Of America As Represented By The Secretary Of The Navy | Resource management device |
CN103617380A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 应用程序权限动态控制方法和系统 |
CN105718261A (zh) * | 2015-01-16 | 2016-06-29 | 贾志东 | 一种基于功件和功件树的目标产品生成方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559027A (zh) * | 2020-12-23 | 2021-03-26 | 平安银行股份有限公司 | 功能组件的创建与管理方法、系统、设备及可读存储介质 |
CN112860457A (zh) * | 2021-02-22 | 2021-05-28 | 招联消费金融有限公司 | 软件开发工具包调用方法、装置、计算机设备和存储介质 |
CN113742285A (zh) * | 2021-08-31 | 2021-12-03 | 珠海读书郎软件科技有限公司 | 一种资源管理及同步的方法 |
CN113742285B (zh) * | 2021-08-31 | 2022-09-20 | 珠海读书郎软件科技有限公司 | 一种资源管理及同步的方法 |
CN113722107A (zh) * | 2021-11-01 | 2021-11-30 | 阿里云计算有限公司 | 云产品管控服务部署方法、装置、设备和存储介质 |
WO2024021467A1 (zh) * | 2022-07-26 | 2024-02-01 | 天翼云科技有限公司 | 一种集群资源规划方法、设备、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110297658B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297658B (zh) | 功能组件共享方法、装置和计算机设备 | |
CN109213611B (zh) | 跨进程通讯方法、装置、终端及存储介质 | |
EP2945058B1 (en) | Processing method and device for application program | |
US10712915B2 (en) | Information presentation using a client on a terminal | |
CN110275723A (zh) | 获取资源的方法、装置、电子设备及可读介质 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
WO2019024649A1 (zh) | 应用程序的启动方法、装置、存储介质和终端 | |
US10241718B2 (en) | Electronic device and method of analyzing fragmentation of electronic device | |
CN102982052A (zh) | 用于划分媒体文件的方法和设备 | |
CN109375937A (zh) | 系统升级方法、装置、终端设备及存储介质 | |
CN109522198A (zh) | 应用程序的处理方法、装置、电子设备及可读存储介质 | |
CN111079125A (zh) | 一种应用程序调用第三方库动态提升权限的方法及装置 | |
CN104731626B (zh) | 应用的安装方法及装置 | |
CN114422436B (zh) | 网关、网关控制方法、装置、电子设备和存储介质 | |
CN111309406A (zh) | 应用程序的事件处理方法、装置及电子设备 | |
CN111414152B (zh) | 业务逻辑的实现方法、系统、可读介质和电子设备 | |
CN112199132A (zh) | 页面布局方法及装置 | |
CN109408387B (zh) | 页面测试方法及装置 | |
CN108804258B (zh) | 数据恢复方法、装置、移动终端和存储介质 | |
CN114793227B (zh) | 车载软件下载方法、电子设备及计算机可读存储介质 | |
CN112905072B (zh) | 应用程序的处理方法、装置及电子设备 | |
CN113760631B (zh) | 页面加载时长确定方法、装置、设备和存储介质 | |
CN111625326B (zh) | 任务管线执行方法、装置及电子设备 | |
CN109871226B (zh) | 下载器的配置方法、装置、介质及电子设备 | |
CN115412993A (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 |