CN104572054A - 一种能力调用方法和设备 - Google Patents
一种能力调用方法和设备 Download PDFInfo
- Publication number
- CN104572054A CN104572054A CN201310499609.3A CN201310499609A CN104572054A CN 104572054 A CN104572054 A CN 104572054A CN 201310499609 A CN201310499609 A CN 201310499609A CN 104572054 A CN104572054 A CN 104572054A
- Authority
- CN
- China
- Prior art keywords
- specific implementation
- api specific
- capability component
- version
- party application
- 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
本发明公开了一种能力调用方法和设备,该方法包括:在第三方应用需要调用能力时,能力组件获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现;能力组件将API具体实现的版本信息发送给能力组件管理框架,能力组件管理框架利用版本信息判断API具体实现是否需要升级,在API具体实现不需要升级时,能力组件管理框架将API具体实现不需要升级的信息通知给能力组件;能力组件调用最高版本的API具体实现,并将API具体实现返回给第三方应用,由第三方应用利用API具体实现执行相应能力。本发明实施例中,避免能力调用过程中的运营问题和用户体验问题,节约终端设备的存储资源,提高产品性能,减少系统开销,提高用户体验。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种能力调用方法和设备。
背景技术
能力是指能够完成某特定业务处理事务的功能和资源集合,比如,百度的地图能力、中国移动的应用内计费能力等。互联网企业(苹果、谷歌、腾讯、百度等)以及电信运营商(中国移动等)均通过构建开放平台形成了以自身为核心的产业链,并将拥有庞大用户基础的核心能力对外开放,以繁荣第三方应用市场,为开发者带来价值,对公司主营业务正向促进。
现有技术中,能力开放技术通常是将能力以jar包的形式提供给开发者,由开发者将jar包集成到应用中,使得应用能够使用jar包中的能力。这种方式称为传统能力SDK(Software Development Kit,软件开发工具包)方式。
在上述传统能力SDK方式中,jar包只能提供给应用单独使用,并导致存在以下问题:(1)运营问题:能力重复安装、版本混乱、升级困难,相同能力可能由多个应用重复安装到终端设备上,在运行时会有多个版本同时存在,导致存储资源浪费;此外,能力被应用封装,导致能力提供方无法直接面对终端设备进行能力部署和升级。(2)用户体验问题:终端设备的公共资源使用混乱,引发用户体验异常;终端设备上的公共资源被多个应用各自同时使用,有可能出现资源冲突和使用混乱的情况,导致用户体验下降。
发明内容
本发明实施例提供一种能力调用方法和设备,以避免能力调用过程中的运营问题和用户体验问题,节约终端设备的存储资源,并提高用户体验。
为了达到上述目的,本发明实施例提供一种能力调用方法,用在终端设备内第三方应用调用能力的过程,所述终端设备包括能力组件和能力组件管理框架,所述能力组件为所述第三方应用对应的能力组件,所述方法包括:
在第三方应用需要调用能力时,所述能力组件获得所述终端设备上当前安装的所有第三方应用中的最高版本的应用程序接口API具体实现;
所述能力组件将所述API具体实现的版本信息发送给所述能力组件管理框架,由所述能力组件管理框架利用所述版本信息判断所述API具体实现是否需要升级,并在所述API具体实现不需要升级时,由所述能力组件管理框架将所述API具体实现不需要升级的信息通知给所述能力组件;
所述能力组件在所述API具体实现不需要升级时,调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,以由所述第三方应用利用所述API具体实现执行相应能力。
本发明实施例提供一种终端设备,用在终端设备内第三方应用调用能力的过程,所述终端设备包括能力组件管理模块和能力组件管理框架管理模块,所述能力组件管理模块为所述第三方应用对应的能力组件管理模块;其中:
所述能力组件管理模块,用于在所述第三方应用需要调用能力时,获得所述终端设备上当前安装的所有第三方应用中的最高版本的应用程序接口API具体实现,并将所述API具体实现的版本信息发送给所述能力组件管理框架管理模块;以及,在所述API具体实现不需要升级时,调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,以由所述第三方应用利用所述API具体实现执行相应能力;
所述能力组件管理框架管理模块,用于利用所述版本信息判断所述API具体实现是否需要升级,并在所述API具体实现不需要升级时,将所述API具体实现不需要升级的信息通知给所述能力组件管理模块。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在第三方应用需要调用能力时,通过将终端设备上当前安装的所有第三方应用中的最高版本的API(Application Program Interface,应用程序接口)具体实现返回给该第三方应用,以由该第三方应用利用该最高版本的API具体实现执行相应能力,从而在多个第三方应用之间实现共享最高版本的API具体实现的能力,避免了能力调用过程中的运营问题和用户体验问题,节约了终端设备的存储资源,并提高了产品性能,减少系统开销,并提高用户体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1和图2是本发明实施例一中调用最高版本的API具体实现的示意图;
图3是本发明实施例一提供的一种能力调用方法流程示意图;
图4是本发明实施例二提供的一种能力调用方法流程示意图;
图5是本发明实施例三提供的一种能力调用方法流程示意图;
图6是本发明实施例四提供的一种终端设备结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
针对现有技术中存在的问题,本发明实施例一提出一种能力调用方法,该方法用在终端设备内第三方应用调用能力的过程中,该终端设备包括能力组件和能力组件管理框架。其中,该能力组件为上述第三方应用对应的能力组件,且终端设备具体包括但不限于使用Android操作系统的移动终端。本发明实施例中,第三方应用包含的能力不仅可以供本第三方应用自身使用,还可以被其它第三方应用共享使用,这种形式的能力则称为能力组件。
与传统能力SDK方式相同的是,本发明实施例中提出的能力组件将API接口和API具体实现聚合在同一jar包中,并最终被编译到第三方应用的程序包中。与传统能力SDK方式不同的是,本发明实施例中提出的能力组件能够保证使用能力的第三方应用均使用到最高版本的API具体实现(即最新版本的API具体实现)。例如,在终端设备上安装有多个使用开放能力的第三方应用后,各第三方应用中包含的API接口均会调用最高版本的API具体实现。
如图1所示的调用最高版本的API具体实现的示意图,终端设备上有应用1和应用2,应用1内包含的API具体实现的版本为V1,应用2内包含的API具体实现的版本为V2,V2版本高于V1版本。基于此,应用1会调用应用2中包含的API具体实现,且应用2会调用应用2中包含的API具体实现,从而保证了各应用均能使用到最高版本的API具体实现。而传统能力SDK方式的API接口一定会调用自身的API具体实现,不会出现跨应用调用API具体实现的情况,也无法使得各个应用均能使用到最高版本的API具体实现。
与传统能力SDK方式无法自动升级相比,本发明实施例中提出的能力组件还可以自动升级。进一步的,该能力组件通过调用能力组件管理框架的初始化API,继而可以依托该能力组件管理框架实现本能力组件的自动升级。在能力组件升级完成之后,当终端设备上安装有更高版本的API具体实现时,该能力组件能够调用该终端设备上安装的更高版本的API具体实现。
如图2所示的调用更高版本的API具体实现的示意图,终端设备上安装有更高版本的API具体实现,该API具体实现的版本为V3,V3版本高于V2版本。基于此,应用1会调用V3版本的API具体实现,应用2会调用V3版本的API具体实现,从而保证各应用均能使用到最高版本的API具体实现。
在上述应用场景下,如图3所示,该能力调用方法包括以下步骤:
步骤301,在第三方应用需要调用能力时,该第三方应用的能力组件获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现。
步骤302,能力组件将最高版本的API具体实现的版本信息(如最高版本的API具体实现的版本为V3)发送给能力组件管理框架。
步骤303,能力组件管理框架利用最高版本的API具体实现的版本信息判断API具体实现是否需要升级。如果API具体实现不需要升级,则执行步骤304;如果API具体实现需要升级,则执行步骤305。
本发明实施例中,能力组件管理框架可以从能力管理子系统(即网络侧的服务器)上获得最高版本的API具体实现的版本信息,该最高版本的API具体实现为网络中所有第三方应用的最高版本的API具体实现。而能力组件管理框架在步骤302中收到的最高版本的API具体实现为终端设备上安装的所有第三方应用中最高版本的API具体实现。通过比较二者的版本信息,如果前者的版本与后者的版本相同,则API具体实现不需要升级,执行步骤304。如果前者的版本高于后者的版本,则API具体实现需要升级,执行步骤305。
步骤304,能力组件管理框架将API具体实现不需要升级的信息通知给能力组件,能力组件在API具体实现不需要升级时,调用最高版本的API具体实现(即步骤301中获得的最高版本的API具体实现),并将该API具体实现返回给第三方应用,以由第三方应用利用API具体实现执行相应能力。
步骤305,能力组件管理框架获得最高版本的能力组件升级数据,由终端设备利用能力组件升级数据对能力组件进行升级,升级后的能力组件调用最高版本的API具体实现(网络中所有第三方应用的最高版本的API具体实现,对能力组件升级后可获得该API具体实现),将最高版本的API具体实现返回给第三方应用,由第三方应用利用最高版本的API具体实现执行相应能力。
为了实现上述过程,需要在不同第三方应用之间实现共享最高版本的API具体实现的能力,对于使用Android操作系统的移动终端来说,支持跨进程调用的对象有Service、Content Provider、Preference等。考虑到能力最终以API形式提供给应用开发者,并且能力是多种多样的(既可能包括网络能力,也可能包括本地能力),而Content Provider和Preference只能进行存储,不适合提供网络能力接口,因此本发明实施例中选择Service来进行能力共享的改进。
基于此,需要确定能力Service的标识Action。对于能力Service,其启动方式分为显示启动和隐式启动,显示启动需要指定能力Service所在的类名,隐式启动需要指定能力Service的唯一的标识Action。因此对于跨进程调用,以隐式启动的能力Service为例,此时需要为每个能力Service设定唯一的标识Action。例如,“com.purchaseservice.BIND”。为了使得网络侧升级服务器时能够准确分辨能力Service,也将这个标识Action作为网络侧的标识。
进一步的,还需要为每个第三方应用中的能力Service设定版本标识。在第三方应用的AndroidManifest.xml文件中,在能力Service中新增自定义的版本标识,如下内容所示,android:priority="3000"中的内容即为能力Service的版本标识,且android:name="com.purchaseservice.BIND"即为标识Action。
<!--标识组件版本-->
<intent-filter android:priority="3000">
<action android:name="com.purchaseservice.BIND"/>
<category
android:name="android.intent.category.SAFIAP.COMPONENT"/>
</intent-filter>
进一步的,还需要为每个第三方应用中的能力Service设定唯一的启动标识Action。其中,通过获取AndroidManifest.xml文件中当前第三方应用对应的package名称,并将该package名称与能力Service的标识Action拼接成该能力Service的唯一的启动标识Action。如下内容所示,对于其中的内容<actionandroid:name="com.example.com.purchaseservice.BIND"/>,“com.example”是当前第三方应用的package名称,“com.purchaseservce.BIND”是标识Action。
<!--标识启动组件Service的真实Action-->
<intent-filter>
<action android:name="com.example.com.purchaseservice.BIND"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
进一步的,为了确保能力Service能够及时共享到最新版本的能力,能力Service还具备自动升级功能,本发明实施例中将实现自动升级功能的代码称为能力组件管理框架。在调用能力API之前,需要首先通过初始化方法检查能力管理子系统(即服务器)侧是否有新版本能力安装包,并记录在数据库。
基于上述分析过程,本发明实施例的上述能力调用方法进一步包括:
在第三方应用需要调用能力时,该第三方应用的能力组件获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现。之后,能力组件将最高版本的API具体实现的版本信息(如最高版本的API具体实现的版本为V3)发送给能力组件管理框架。之后,能力组件管理框架利用最高版本的API具体实现的版本信息判断API具体实现是否需要升级。在此过程中,能力组件管理框架利用版本信息判断API具体实现是否需要升级,具体包括:能力组件利用API具体实现的版本信息确定能力Service的版本标识,并获得对应API具体实现的第三方应用的标识Action,并将能力Service的版本标识以及标识Action发送给能力组件管理框架;能力组件管理框架获得标识Action所对应的最高版本的能力Service的版本标识,并比较能力Service的版本标识以及最高版本的能力Service的版本标识;如果二者相同,能力组件管理框架确定API具体实现不需要升级;如果最高版本的能力Service的版本标识大于能力Service的版本标识,能力组件管理框架确定API具体实现需要升级。
如果API具体实现不需要升级,则能力组件管理框架将API具体实现不需要升级的信息通知给能力组件,能力组件在API具体实现不需要升级时,调用最高版本的API具体实现,并将API具体实现返回给第三方应用,由第三方应用利用API具体实现执行相应能力。在此过程中,能力组件调用最高版本的API具体实现,并将API具体实现返回给第三方应用,包括:能力组件利用API具体实现的第三方应用的标识Action生成能力Service唯一对应的启动标识Action,并利用启动标识Action启动对应的能力Service,由能力Service调用最高版本的API具体实现,并将API具体实现返回给第三方应用。
如果API具体实现需要升级,则能力组件管理框架获得最高版本的能力组件升级数据,由终端设备利用能力组件升级数据对能力组件进行升级,升级后的能力组件调用最高版本的API具体实现(网络中所有第三方应用的最高版本的API具体实现,对能力组件升级后可获得该API具体实现),将最高版本的API具体实现返回给第三方应用,由第三方应用利用最高版本的API具体实现执行相应能力。在此过程中,升级后的能力组件调用最高版本的API具体实现,将API具体实现返回给第三方应用包括:升级后的能力组件利用最高版本的API具体实现的第三方应用的标识Action生成能力Service唯一对应的启动标识Action,并利用启动标识Action启动对应的能力Service,能力Service调用最高版本的API具体实现,并将API具体实现返回给第三方应用。
综上所述,本发明实施例中,在第三方应用需要调用能力时,通过将终端设备上当前安装的所有第三方应用中的最高版本的API具体实现返回给该第三方应用,以由该第三方应用利用该最高版本的API具体实现执行相应能力,从而在多个第三方应用之间实现共享最高版本的API具体实现的能力,避免了能力调用过程中的运营问题和用户体验问题,节约了终端设备的存储资源,并提高了产品性能,减少了系统开销,并提高了用户体验。
以下结合具体的应用场景对本发明实施例进行进一步的说明。
实施例二
本发明实施例二提出一种能力调用方法,如图4所示,该方法包括:
步骤401,用户选择进入第三方应用,并使用能力。
步骤402,第三方应用调用能力组件的初始化方法。
步骤403,能力组件的初始化方法调用能力组件管理框架的初始化方法。
在能力组件的初始化方法中,能力组件扫描获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现,并将最高版本的API具体实现的版本信息发送给能力组件管理框架。进一步的,能力组件利用最高版本的API具体实现的版本信息确定能力Service的版本标识,并获得对应最高版本的API具体实现的第三方应用的标识Action(即第三方应用的package名称),并将能力Service的版本标识以及标识Action发送给能力组件管理框架。
在能力组件管理框架的初始化方法中,能力组件管理框架从能力管理子系统(服务器)上获得最高版本的API具体实现的版本信息,该最高版本的API具体实现为网络中所有第三方应用的最高版本的API具体实现。通过比较来自能力组件的版本信息以及网络中最高版本的API具体实现的版本信息,如果前者的版本与后者的版本相同,则API具体实现不需要升级,如果前者的版本低于后者的版本,则API具体实现需要升级。进一步的,能力组件管理框架获得来自能力组件的标识Action所对应的最高版本的能力Service的版本标识,并比较能力Service的版本标识以及最高版本(即网络中所有第三方应用的最高版本)的能力Service的版本标识;如果二者相同,能力组件管理框架确定API具体实现不需要升级;如果最高版本的能力Service的版本标识大于能力Service的版本标识,能力组件管理框架确定API具体实现需要升级。
以API具体实现不需要升级为例进行后续说明,执行步骤404。
步骤404,在API具体实现不需要升级时,能力组件管理框架将API具体实现不需要升级的信息通知给第三方应用对应的能力组件。
步骤405,能力组件调用最高版本的API具体实现,并将该API具体实现返回给第三方应用,由第三方应用利用该API具体实现执行相应能力。
能力组件调用最高版本的API具体实现,并将该API具体实现返回给第三方应用的过程,具体包括但不限于:能力组件利用API具体实现的第三方应用的标识Action(即package名称)生成能力Service唯一对应的启动标识Action,并利用启动标识Action启动对应的能力Service,以由能力Service调用最高版本的API具体实现,并将该API具体实现返回给第三方应用。
实施例三
本发明实施例三提出一种能力调用方法,如图4所示,该方法包括:
步骤501,用户选择进入第三方应用,并使用能力。
步骤502,第三方应用调用能力组件的初始化方法。
步骤503,能力组件的初始化方法调用能力组件管理框架的初始化方法。
在能力组件的初始化方法中,能力组件扫描获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现,并将最高版本的API具体实现的版本信息发送给能力组件管理框架。进一步的,能力组件利用最高版本的API具体实现的版本信息确定能力Service的版本标识,并获得对应最高版本的API具体实现的第三方应用的标识Action(即第三方应用的package名称),并将能力Service的版本标识以及标识Action发送给能力组件管理框架。
在能力组件管理框架的初始化方法中,能力组件管理框架从能力管理子系统(服务器)上获得最高版本的API具体实现的版本信息,该最高版本的API具体实现为网络中所有第三方应用的最高版本的API具体实现。通过比较来自能力组件的版本信息以及网络中最高版本的API具体实现的版本信息,如果前者的版本与后者的版本相同,则API具体实现不需要升级,如果前者的版本低于后者的版本,则API具体实现需要升级。进一步的,能力组件管理框架获得来自能力组件的标识Action所对应的最高版本的能力Service的版本标识,并比较能力Service的版本标识以及最高版本(即网络中所有第三方应用的最高版本)的能力Service的版本标识;如果二者相同,能力组件管理框架确定API具体实现不需要升级;如果最高版本的能力Service的版本标识大于能力Service的版本标识,能力组件管理框架确定API具体实现需要升级。
以API具体实现需要升级为例进行后续说明,执行步骤504。
步骤504,在API具体实现需要升级时,能力组件管理框架将API具体实现需要升级的信息通知给用户,以提示用户下载最新版本的能力组件。
其中,能力组件的升级过程可以分为强制升级过程和可选升级过程。
针对强制升级过程,能力组件管理框架提示用户进行升级操作;如果用户取消升级,则结束本步骤;如果用户确认升级,则能力组件管理框架开始下载最高版本的能力组件升级数据(即统一能力组件升级包);在统一能力组件升级包下载完毕后,能力组件管理框架提示用户进行安装;如果用户取消安装,则结束本步骤;如果用户确认安装,则由终端设备利用能力组件升级数据对能力组件进行升级,并在能力组件升级完成之后,结束本步骤。
针对可选升级过程,能力组件管理框架提示用户进行升级操作,在此过程中,能力组件可以执行具体的被调用方法;如果用户取消升级,则结束本步骤;如果用户确认升级,则能力组件管理框架开始下载最高版本的能力组件升级数据(即统一能力组件升级包);在统一能力组件升级包下载完毕后,如果能力组件没有运行,则能力组件管理框架提示用户进行安装;如果能力组件正在运行,则提示用户在下次使用时再安装能力组件;如果用户取消安装,则结束本步骤;如果用户确认安装,则由终端设备利用能力组件升级数据对能力组件进行升级,并在能力组件升级完成之后,结束本步骤。
步骤505,升级后的能力组件调用最高版本的API具体实现,将该API具体实现返回给第三方应用,由第三方应用利用API具体实现执行相应能力。
升级后的能力组件调用最高版本的API具体实现,并将该API具体实现返回给第三方应用的过程,具体包括但不限于:升级后的能力组件利用最高版本的API具体实现的第三方应用的标识Action(即package名称)生成能力Service唯一对应的启动标识Action,并利用启动标识Action启动对应的能力Service,以由能力Service调用最高版本的API具体实现,并将该API具体实现返回给第三方应用,由第三方应用利用API具体实现执行相应能力。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种终端设备,用在终端设备内第三方应用调用能力的过程,如图6所示,所述终端设备包括能力组件管理模块11和能力组件管理框架管理模块12,所述能力组件管理模块11为所述第三方应用对应的能力组件管理模块11;其中:
所述能力组件管理模块11,用于在所述第三方应用需要调用能力时,获得所述终端设备上当前安装的所有第三方应用中的最高版本的应用程序接口API具体实现,并将所述API具体实现的版本信息发送给所述能力组件管理框架管理模块12;以及,在所述API具体实现不需要升级时,调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,以由所述第三方应用利用所述API具体实现执行相应能力;
所述能力组件管理框架管理模块12,用于利用所述版本信息判断所述API具体实现是否需要升级,并在所述API具体实现不需要升级时,将所述API具体实现不需要升级的信息通知给所述能力组件管理模块11。
所述能力组件管理框架管理模块12,还用于在所述API具体实现需要升级时,获得最高版本的能力组件升级数据,以利用所述能力组件升级数据对所述能力组件管理模块进行升级,并由升级后的能力组件管理模块11调用最高版本的API具体实现,并将所述最高版本的API具体实现返回给所述第三方应用,由所述第三方应用利用所述最高版本的API具体实现执行相应能力。
所述能力组件管理模块11,还用于利用所述API具体实现的版本信息确定能力Service的版本标识,并获得对应所述API具体实现的第三方应用的标识Action,并将所述能力Service的版本标识以及所述标识Action发送给所述能力组件管理框架管理模块12;
所述能力组件管理框架管理模块12,具体用于获得所述标识Action所对应的最高版本的能力Service的版本标识,并比较所述能力Service的版本标识以及最高版本的能力Service的版本标识;如果二者相同,则确定所述API具体实现不需要升级;如果最高版本的能力Service的版本标识大于所述能力Service的版本标识,则确定所述API具体实现需要升级。
所述能力组件管理模块11,具体用于利用所述API具体实现的第三方应用的标识Action生成所述能力Service唯一对应的启动标识Action,并利用所述启动标识Action启动对应的能力Service,由所述能力Service调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用。
所述终端设备具体包括使用Android操作系统的移动终端。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种能力调用方法,用在终端设备内第三方应用调用能力的过程,其特征在于,所述终端设备包括能力组件和能力组件管理框架,且所述能力组件为所述第三方应用对应的能力组件,所述方法包括以下步骤:
在第三方应用需要调用能力时,所述能力组件获得所述终端设备上当前安装的所有第三方应用中的最高版本的应用程序接口API具体实现;
所述能力组件将所述API具体实现的版本信息发送给所述能力组件管理框架,由所述能力组件管理框架利用所述版本信息判断所述API具体实现是否需要升级,并在所述API具体实现不需要升级时,由所述能力组件管理框架将所述API具体实现不需要升级的信息通知给所述能力组件;
所述能力组件在所述API具体实现不需要升级时,调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,以由所述第三方应用利用所述API具体实现执行相应能力。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述API具体实现需要升级时,所述能力组件管理框架获得最高版本的能力组件升级数据,由所述终端设备利用所述能力组件升级数据对所述能力组件进行升级,并由升级后的能力组件调用最高版本的API具体实现,并将所述最高版本的API具体实现返回给所述第三方应用,以由所述第三方应用利用所述最高版本的API具体实现执行相应能力。
3.如权利要求1所述的方法,其特征在于,所述能力组件管理框架利用所述版本信息判断所述API具体实现是否需要升级,具体包括:
所述能力组件利用所述API具体实现的版本信息确定能力Service的版本标识,并获得对应所述API具体实现的第三方应用的标识Action,并将所述能力Service的版本标识以及所述标识Action发送给所述能力组件管理框架;
所述能力组件管理框架获得所述标识Action所对应的最高版本的能力Service的版本标识,并比较所述能力Service的版本标识以及最高版本的能力Service的版本标识;如果二者相同,所述能力组件管理框架确定所述API具体实现不需要升级;如果最高版本的能力Service的版本标识大于所述能力Service的版本标识,所述能力组件管理框架确定所述API具体实现需要升级。
4.如权利要求3所述的方法,其特征在于,所述能力组件调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,包括:
所述能力组件利用所述API具体实现的第三方应用的标识Action生成所述能力Service唯一对应的启动标识Action,并利用所述启动标识Action启动对应的能力Service,由所述能力Service调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用。
5.如权利要求1-4任一项所述的方法,其特征在于,所述终端设备具体包括使用Android操作系统的移动终端。
6.一种终端设备,用在终端设备内第三方应用调用能力的过程,其特征在于,所述终端设备包括能力组件管理模块和能力组件管理框架管理模块,所述能力组件管理模块为所述第三方应用对应的能力组件管理模块;其中:
所述能力组件管理模块,用于在所述第三方应用需要调用能力时,获得所述终端设备上当前安装的所有第三方应用中的最高版本的应用程序接口API具体实现,并将所述API具体实现的版本信息发送给所述能力组件管理框架管理模块;以及,在所述API具体实现不需要升级时,调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用,以由所述第三方应用利用所述API具体实现执行相应能力;
所述能力组件管理框架管理模块,用于利用所述版本信息判断所述API具体实现是否需要升级,并在所述API具体实现不需要升级时,将所述API具体实现不需要升级的信息通知给所述能力组件管理模块。
7.如权利要求6所述的终端设备,其特征在于,
所述能力组件管理框架管理模块,还用于在所述API具体实现需要升级时,获得最高版本的能力组件升级数据,以利用所述能力组件升级数据对所述能力组件管理模块进行升级,并由升级后的能力组件管理模块调用最高版本的API具体实现,并将所述最高版本的API具体实现返回给所述第三方应用,以由所述第三方应用利用所述最高版本的API具体实现执行相应能力。
8.如权利要求6所述的终端设备,其特征在于,
所述能力组件管理模块,还用于利用所述API具体实现的版本信息确定能力Service的版本标识,并获得对应所述API具体实现的第三方应用的标识Action,并将所述能力Service的版本标识以及所述标识Action发送给所述能力组件管理框架管理模块;
所述能力组件管理框架管理模块,具体用于获得所述标识Action所对应的最高版本的能力Service的版本标识,并比较所述能力Service的版本标识以及最高版本的能力Service的版本标识;如果二者相同,则确定所述API具体实现不需要升级;如果最高版本的能力Service的版本标识大于所述能力Service的版本标识,则确定所述API具体实现需要升级。
9.如权利要求8所述的终端设备,其特征在于,
所述能力组件管理模块,具体用于利用所述API具体实现的第三方应用的标识Action生成所述能力Service唯一对应的启动标识Action,并利用所述启动标识Action启动对应的能力Service,由所述能力Service调用所述最高版本的API具体实现,并将所述API具体实现返回给所述第三方应用。
10.如权利要求6-9任一项所述的终端设备,其特征在于,所述终端设备具体包括使用Android操作系统的移动终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499609.3A CN104572054B (zh) | 2013-10-22 | 2013-10-22 | 一种能力调用方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499609.3A CN104572054B (zh) | 2013-10-22 | 2013-10-22 | 一种能力调用方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572054A true CN104572054A (zh) | 2015-04-29 |
CN104572054B CN104572054B (zh) | 2018-08-17 |
Family
ID=53088229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310499609.3A Active CN104572054B (zh) | 2013-10-22 | 2013-10-22 | 一种能力调用方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572054B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636122A (zh) * | 2013-11-06 | 2015-05-20 | 中国移动通信集团公司 | 一种能力组件的共享方法和设备 |
CN105867963A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 应用程序更新方法及装置 |
CN105867964A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 安卓平台开放服务接入系统及其生成系统和生成方法以及接入方法 |
CN107678805A (zh) * | 2017-09-08 | 2018-02-09 | 阿里巴巴集团控股有限公司 | 一种应用程序接口的调用方法和装置 |
CN107832069A (zh) * | 2017-10-30 | 2018-03-23 | 江西博瑞彤芸科技有限公司 | 应用程序的更新方法 |
CN111580892A (zh) * | 2019-02-19 | 2020-08-25 | 杭州海康威视系统技术有限公司 | 一种业务组件调用的方法、装置、终端和存储介质 |
CN111711606A (zh) * | 2020-05-20 | 2020-09-25 | 烽火通信科技股份有限公司 | 一种设备能力的调用方法与装置 |
CN112965733A (zh) * | 2021-03-22 | 2021-06-15 | 云账户技术(天津)有限公司 | 组件库更新方法、装置、电子设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557383A (zh) * | 2008-04-11 | 2009-10-14 | 中国移动通信集团公司 | 业务能力资源管理系统及业务能力资源使用管理方法 |
US20110202557A1 (en) * | 2010-02-18 | 2011-08-18 | Alon Atsmon | System and method for crowdsourced template based search |
CN102546532A (zh) * | 2010-12-07 | 2012-07-04 | 中国移动通信集团公司 | 能力调用方法、请求装置、平台及系统 |
CN102572762A (zh) * | 2010-12-29 | 2012-07-11 | 中国移动通信集团公司 | 一种应用调用业务能力的方法、计费方法以及装置 |
CN102915247A (zh) * | 2012-08-31 | 2013-02-06 | 杭州斯凯网络科技有限公司 | Apk插件化管理方法 |
-
2013
- 2013-10-22 CN CN201310499609.3A patent/CN104572054B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557383A (zh) * | 2008-04-11 | 2009-10-14 | 中国移动通信集团公司 | 业务能力资源管理系统及业务能力资源使用管理方法 |
US20110202557A1 (en) * | 2010-02-18 | 2011-08-18 | Alon Atsmon | System and method for crowdsourced template based search |
CN102546532A (zh) * | 2010-12-07 | 2012-07-04 | 中国移动通信集团公司 | 能力调用方法、请求装置、平台及系统 |
CN102572762A (zh) * | 2010-12-29 | 2012-07-11 | 中国移动通信集团公司 | 一种应用调用业务能力的方法、计费方法以及装置 |
CN102915247A (zh) * | 2012-08-31 | 2013-02-06 | 杭州斯凯网络科技有限公司 | Apk插件化管理方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636122A (zh) * | 2013-11-06 | 2015-05-20 | 中国移动通信集团公司 | 一种能力组件的共享方法和设备 |
CN104636122B (zh) * | 2013-11-06 | 2018-05-18 | 中国移动通信集团公司 | 一种能力组件的共享方法和设备 |
CN105867963A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 应用程序更新方法及装置 |
CN105867964A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 安卓平台开放服务接入系统及其生成系统和生成方法以及接入方法 |
CN107678805A (zh) * | 2017-09-08 | 2018-02-09 | 阿里巴巴集团控股有限公司 | 一种应用程序接口的调用方法和装置 |
CN107832069A (zh) * | 2017-10-30 | 2018-03-23 | 江西博瑞彤芸科技有限公司 | 应用程序的更新方法 |
CN111580892A (zh) * | 2019-02-19 | 2020-08-25 | 杭州海康威视系统技术有限公司 | 一种业务组件调用的方法、装置、终端和存储介质 |
CN111580892B (zh) * | 2019-02-19 | 2023-09-19 | 杭州海康威视系统技术有限公司 | 一种业务组件调用的方法、装置、终端和存储介质 |
CN111711606A (zh) * | 2020-05-20 | 2020-09-25 | 烽火通信科技股份有限公司 | 一种设备能力的调用方法与装置 |
CN112965733A (zh) * | 2021-03-22 | 2021-06-15 | 云账户技术(天津)有限公司 | 组件库更新方法、装置、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104572054B (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572054A (zh) | 一种能力调用方法和设备 | |
US20210294634A1 (en) | Service Creation and Management | |
CN106537338B (zh) | 自扩展云 | |
US9800673B2 (en) | Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system | |
US11455184B2 (en) | End-to-end validation of virtual machines | |
CN102427481B (zh) | 用于对云计算服务进行管理的系统及云计算管理方法 | |
CN109474522B (zh) | 业务路由的方法、装置及存储介质 | |
US8526929B1 (en) | Mobile communication device provisioning and management | |
EP3125468B1 (en) | Cloud application processing method and application deployment method and relevant apparatus and system | |
CN110308999B (zh) | 一种应用间动态共享依赖包的方法、存储介质及移动终端 | |
US11409583B2 (en) | Discovery and chaining of virtual functions | |
US11726808B2 (en) | Cloud-based managed networking service that enables users to consume managed virtualized network functions at edge locations | |
CN108255708B (zh) | 测试环境中访问生产文件的方法、装置、存储介质及设备 | |
CN106230977B (zh) | 一种客户端功能加载方法、系统、客户端和服务端 | |
CN111209060A (zh) | 能力开发平台处理方法及装置 | |
CN104636122A (zh) | 一种能力组件的共享方法和设备 | |
CN112214250B (zh) | 一种应用程序组件的加载方法和装置 | |
CN113010238A (zh) | 一种微应用调用接口的权限确定方法、装置和系统 | |
RU2764288C1 (ru) | Способ для развертывания ресурса, требуемого для сетевой функции, носитель данных и электронное устройство | |
US20210256600A1 (en) | Connector leasing for long-running software operations | |
CN106815006B (zh) | 页面调用方法、装置及页面管理服务器 | |
CN111857736B (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
CN104166554A (zh) | 一种支持多操作系统的软件开发方法及安装方法 | |
CN103796186A (zh) | 基于应用的通信流量统计方法与移动终端桌面系统 | |
Jin et al. | Mobile Mashup architecture solution, direction and proposal |
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 |