一种能力调用方法和设备的制造方法_2

文档序号:8257934阅读:来源:国知局
能力组件管理框架在步骤302中收到的最高版本的API具体实现为终端设备上安装的所有第三方应用中最高版本的API具体实现。通过比较二者的版本信息,如果前者的版本与后者的版本相同,则API具体实现不需要升级,执行步骤304。如果前者的版本高于后者的版本,则API具体实现需要升级,执行步骤305。
[0032]步骤304,能力组件管理框架将API具体实现不需要升级的信息通知给能力组件,能力组件在API具体实现不需要升级时,调用最高版本的API具体实现(即步骤301中获得的最高版本的API具体实现),并将该API具体实现返回给第三方应用,以由第三方应用利用API具体实现执行相应能力。
[0033]步骤305,能力组件管理框架获得最高版本的能力组件升级数据,由终端设备利用能力组件升级数据对能力组件进行升级,升级后的能力组件调用最高版本的API具体实现(网络中所有第三方应用的最高版本的API具体实现,对能力组件升级后可获得该API具体实现),将最高版本的API具体实现返回给第三方应用,由第三方应用利用最高版本的API具体实现执行相应能力。
[0034]为了实现上述过程,需要在不同第三方应用之间实现共享最高版本的API具体实现的能力,对于使用Android操作系统的移动终端来说,支持跨进程调用的对象有Service、Content Provider、Preference等。考虑到能力最终以API形式提供给应用开发者,并且能力是多种多样的(既可能包括网络能力,也可能包括本地能力),而ContentProvider和Preference只能进行存储,不适合提供网络能力接口,因此本发明实施例中选择Service来进行能力共享的改进。
[0035]基于此,需要确定能力Service的标识Act1n。对于能力Service,其启动方式分为显示启动和隐式启动,显示启动需要指定能力Service所在的类名,隐式启动需要指定能力Service的唯一的标识Act1n。因此对于跨进程调用,以隐式启动的能力Service为例,此时需要为每个能力Service设定唯一的标识Act1n。例如,“com.purchaseservice.BIND”。为了使得网络侧升级服务器时能够准确分辨能力Service,也将这个标识Act1n作为网络侧的标识。
[0036]进一步的,还需要为每个第三方应用中的能力Service设定版本标识。在第三方应用的AndroidManifest.xml文件中,在能力Service中新增自定义的版本标识,如下内容所示,android:pr1rity=〃3000〃中的内容即为能力Service的版本标识,且android:name=〃com.purchaseservice.BIND〃 即为标识 Act1n。
[0037]< !—标识组件版本一>
[0038]<intent-filter android:pr1rity="3000">
[0039]〈act1n android:name=//com.purchaseservice.BIND7>
[0040]〈category
[0041]android:name="android, intent, category.SAFIAP.COMPONENT"/〉
[0042]</intent-filter>
[0043]进一步的,还需要为每个第三方应用中的能力Service设定唯一的启动标识Act1n。其中,通过获取AndroidManifest.xml文件中当前第三方应用对应的package名称,并将该package名称与能力Service的标识Act1n拼接成该能力Service的唯一的启动标识Act1n。如下内容所不,对于其中的内容〈act1nandroid:name=〃com.example,com.purchaseservice.BIND"/〉,“com.example,,是当前第三方应用的 package 名称,“com.purchaseservce.BIND,,是标识 Act1n。
[0044]<!—标识启动组件Service的真实Act1n—>
[0045]<intent-filter>
[0046]〈act1n android:name=〃com.example, com.purchaseservice.BIND〃/>
[0047]〈category android:name=〃android, intent, category.DEFAULT^/)
[0048]</intent-filter>
[0049]进一步的,为了确保能力Service能够及时共享到最新版本的能力,能力Service还具备自动升级功能,本发明实施例中将实现自动升级功能的代码称为能力组件管理框架。在调用能力API之前,需要首先通过初始化方法检查能力管理子系统(即服务器)侧是否有新版本能力安装包,并记录在数据库。
[0050]基于上述分析过程,本发明实施例的上述能力调用方法进一步包括:
[0051]在第三方应用需要调用能力时,该第三方应用的能力组件获得终端设备上当前安装的所有第三方应用中的最高版本的API具体实现。之后,能力组件将最高版本的API具体实现的版本信息(如最高版本的API具体实现的版本为V3)发送给能力组件管理框架。之后,能力组件管理框架利用最高版本的API具体实现的版本信息判断API具体实现是否需要升级。在此过程中,能力组件管理框架利用版本信息判断API具体实现是否需要升级,具体包括:能力组件利用API具体实现的版本信息确定能力Service的版本标识,并获得对应API具体实现的第三方应用的标识Act1n,并将能力Service的版本标识以及标识Act1n发送给能力组件管理框架;能力组件管理框架获得标识Act1n所对应的最高版本的能力Service的版本标识,并比较能力Service的版本标识以及最高版本的能力Service的版本标识;如果二者相同,能力组件管理框架确定API具体实现不需要升级;如果最高版本的能力Service的版本标识大于能力Service的版本标识,能力组件管理框架确定API具体实现需要升级。
[0052]如果API具体实现不需要升级,则能力组件管理框架将API具体实现不需要升级的信息通知给能力组件,能力组件在API具体实现不需要升级时,调用最高版本的API具体实现,并将API具体实现返回给第三方应用,由第三方应用利用API具体实现执行相应能力。在此过程中,能力组件调用最高版本的API具体实现,并将API具体实现返回给第三方应用,包括:能力组件利用API具体实现的第三方应用的标识Act1n生成能力Service唯一对应的启动标识Act1n,并利用启动标识Act1n启动对应的能力Service,由能力Service调用最高版本的API具体实现,并将API具体实现返回给第三方应用。
[0053]如果API具体实现需要升级,则能力组件管理框架获得最高版本的能力组件升级数据,由终端设备利用能力组件升级数据对能力组件进行升级,升级后的能力组件调用最闻版本的API具体实现(网络中所有第二方应用的最闻版本的API具体实现,对能力组件升级后可获得该API具体实现),将最高版本的API具体实现返回给第三方应用,由第三方应用利用最高版本的API具体实现执行相应能力。在此过程中,升级后的能力组件调用最高版本的API具体实现,将API具体实现返回给第三方应用包括:升级后的能力组件利用最高版本的API具体实现的第三方应用的标识Act1n生成能力Service唯一对应的启动标识Act1n,并利用启动标识Act1n启动对应的能力Service,能力Service调用最高版本的API具体实现,并将API具体实现返回给第三方应用。
[0054]综上所述,本发明实施例中,在第三方应用需要调用能力时,通过将终端设备上当前安装的所有第三方应用中的最高版本的API具体实现返回给该第三方应用,以由该第三方应用利用该最高版本的API具体实现执行相应能力,从而在多个第三方应用之间实现共享最高版本的API具体实现的能力,避免了能力调用过程中的运营问题和用户体验问题,节约了终端设备的存储资源,并提高了产品性能,减少了系统开销,并提高了用户体验。
[0055]以下结合具体的应用场景对本发明实施例进行进一步的说明。
[0056]实施例二
[0057]本发明实施例二提出一种能力调用方法,如图4所示,该方法包括:
[0058]步骤401,用户选择进入第三方应用,并使用能力。
[0059]步骤402,第三方
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1