服务定位方法和服务定位器的制造方法

文档序号:7771367阅读:346来源:国知局
服务定位方法和服务定位器的制造方法
【专利摘要】本发明公开了一种服务定位方法和服务定位器,属于移动终端【技术领域】。所述方法包括:搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中;遍历服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者;若第一服务提供者存在,则选中第一服务提供者来提供所述目标服务;若第一服务提供者不存在,且第二服务提供者存在,则选中第二服务提供者来提供所述目标服务;否则,选中第三服务提供者来提供所述目标服务。根据本发明,能够将目标服务锁定在同一个App之上,从而减少用户设备的内存消耗和资源浪费。
【专利说明】服务定位方法和服务定位器
【技术领域】
[0001]本发明涉及移动终端领域,具体涉及一种服务定位方法和服务定位器。
【背景技术】
[0002]Android (安卓)是基于Linux的自由及开发源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑等。在Android系统中,为了安全的需要,App(应用)是被限制并运行在沙箱中的。为了实现App之间的通讯和互动,Android提供了若干种方法,其中之一是利用Servcie (服务)来实现。
[0003]任何App可实现特定的服务,通过类似RPC(Remote Procedute Call,远程过程调用)这样的接口实现App之间的通讯。Android系统在Linux系统的用户体系基础上,通过Android定制的binder (绑定)驱动程序,可以提供权限机制,可有效鉴别请求者的身份。另外,Android还在操作系统层面提供比较全面的支持,可以在App之间实现比较灵活、更加高层的业务模型,用来实现复杂的业务。
[0004]对Android的服务而言,当作为App的服务运行时,会启动一个新的进程或者利用App现有的进程,并创建一个服务对象。当其他App调用到此服务时,由此服务对象的代码完成具体的业务逻辑。
[0005]对用户而言,安装或卸载App是一件比较容易的事情。为了实现某个通用的功能,通常将业务封装成一个服务,同时植入到不同的App中(比如公司A开发的不同的App都植入了同一个服务)。在这种情况下,如果用户安装了公司A的多个产品,或者其他公司开发的App也内置了该通用功能的服务,这将使得用户的手机上存在多个类似的服务。这样,就有可能出现多个App选用所述多个类似的服务中不同的服务的情况,使得系统中有多个服务同时开启,造成用户设备的内存消耗和资源浪费。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的服务定位方法和服务定位器。
[0007]依据本发明的一个方面,提供了一种服务定位方法,包括:
[0008]服务请求者搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中;
[0009]遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者;
[0010]若所述第一服务提供者存在,则选中所述第一服务提供者来提供所述目标服务;若所述第一服务提供者不存在,且第二服务提供者存在,则选中所述第二服务提供者来提供所述目标服务;若所述第一服务提供者和第二服务提供者均不存在,且第三服务提供者存在,则选中所述第三服务提供者来提供所述目标服务。[0011]可选地,在将搜索结果添加到服务提供者集合中之前,该方法还包括:从所述搜索结果中排除禁用所述目标服务的服务提供者。
[0012]可选地,在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,该方法还包括:对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。
[0013]可选地,所述对搜索到的服务提供者进行版本匹配,包括:当服务提供者的SDK版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
[0014]可选地,所述方法还包括:服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选中为服务提供者后,利用保存的数据文件提供服务。
[0015]根据本发明的另一方面,提供了一种服务定位器,包括:
[0016]服务搜索单元,适于搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中;
[0017]遍历获取单元,适于遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者;
[0018]服务定位单元,适于若所述第一服务提供者存在,则选中所述第一服务提供者来提供所述目标服务;若所述第一服务提供者不存在,且第二服务提供者存在,则选中所述第二服务提供者来提供所述目标服务;若所述第一服务提供者和第二服务提供者均不存在,且第三服务提供者存在,则选中所述第三服务提供者来提供所述目标服务。
[0019]可选地,所述服务搜索单元中包括排除单元,适于在将搜索结果添加到服务提供者集合中之前,从所述搜索结果中排除禁用所述目标服务的服务提供者。
[0020]可选地,所述服务搜索单元中还包括:版本匹配单元,适于在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。
[0021]可选地,所述版本匹配单元进一步适于:当服务提供者的SDK版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
[0022]可选地,所述服务定位器还包括:数据保存单元,适于当服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选中为服务提供者后,利用保存的数据文件提供服务。
[0023]根据本发明的上述技术方案,服务请求者通过遍历能够提供目标服务的服务提供者(APP)集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者,根据获取结果按照预定页序选中一个服务提供者来提供所述目标服务,从而能够将目标服务锁定在同一个App之上,确保所有App都只启动同一个App的服务,进而能够减少用户设备的内存消耗和资源浪费。
[0024]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0025]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0026]图1示出了根据本发明一个实施例的服务定位方法流程图;
[0027]图2示出了根据本发明一个实施例的服务定位方法中版本匹配流程图;
[0028]图3示出了根据本发明一个实施例的服务定位方法的详细流程图;
[0029]图4示出了根据本发明一个实施例的服务定位器的结构图。
【具体实施方式】
[0030]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0031]针对现有技术中多个App选用多个类似的服务中的不同服务,使得系统中有多个服务同时开启,造成用户设备的内存消耗和资源浪费的问题,本发明实施例提供一种服务定位方法和服务定位器。
[0032]图1示出了根据本发明一个实施例的服务定位方法流程图,参照图1,所述方法可以包括:
[0033]步骤102,服务请求者搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中;
[0034]服务请求者与服务提供者均指的是运行于移动设备操作系统之上的应用(APP),能够提供目标服务的服务提供者有多个,服务请求者需要从多个服务提供者中选择一个来提供所述目标服务。所述操作系统可以是Android系统或者其他类型的操作系统,所述移动终端可以是智能手机、移动电话或个人数字助理(PDA)等。
[0035]如下步骤的执行主体均为服务请求者。
[0036]步骤104,遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者;
[0037]目标服务植入到APP后,在被植入的APP中,所述目标服务通常会具有如下三个属性中的一个或多个:首次使用时间、APK(AndriodPackage, Android安装包)首次安装时间和APK修改时间。
[0038]对于遍历到的每个服务提供者,首先查看其包含的目标服务是否具有首次使用时间属性,如果该目标服务具有首次使用时间属性,则将其与记录的最早首次使用时间进行比较,判断其是否早于记录的最早首次使用时间,若是,将记录的最早首次使用时间更新为该目标服务的首次使用时间,同时还记录下与该目标服务对应的服务提供者;若否,不对记录的最早首次使用时间进行更新。当然,初始时,尚没有记录的最早首次使用时间,对于遍历到的首个具有首次使用时间属性的服务提供者,直接将其包含的目标服务的首次使用时间记录为最早首次使用时间,并记录下与该目标服务对应的服务提供者。
[0039]如果该目标服务不具有首次使用时间属性,则进一步查看其包含的目标服务是否具有APK首次安装时间属性,如果该目标服务具有APK首次安装时间属性,则将其与记录的最早APK首次安装时间进行比较,判断其是否早于记录的最早APK首次安装时间,若是,将记录的最早APK首次安装时间更新为该目标服务的APK首次安装时间,同时还记录下与该目标服务对应的服务提供者;若否,不对记录的最早APK首次安装时间进行更新。当然,初始时,尚没有记录的最早APK首次安装时间,对于遍历到的首个具有APK首次安装时间的服务提供者,直接将其包含的目标服务的APK首次安装时间记录为最早APK首次安装时间,并记录下与该目标服务对应的服务提供者。
[0040]如果该目标服务不具有APK首次安装时间属性,则进一步查看其包含的目标服务是否具有APK修改时间属性,如果该目标服务具有APK修改时间属性,则将其与记录的最早APK修改时间进行比较,判断其是否早于记录的最早APK修改时间,若是,将记录的最早APK修改时间更新为该目标服务的APK修改时间,同时还记录下与该目标服务对应的服务提供者;若否,不对记录的最早APK修改时间进行更新。当然,初始时,尚没有记录的最早APK修改时间,对于遍历到的首个具有APK修改时间的服务提供者,直接将其包含的目标服务的APK修改时间记录为最早APK修改时间,并记录下与该目标服务对应的服务提供者。
[0041]对服务提供者集合中的所有服务提供者遍历完成后,并获取到了首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者或者APK修改时间最早的目标服务所在的第三服务提供者。
[0042]步骤106,判断所述第一服务提供者是否存在,若是,进入步骤108,否则,进入步骤 110 ;
[0043]步骤108,选中所述第一服务提供者来提供所述目标服务,并结束本流程;
[0044]步骤110,判断所述第二服务提供者是否存在,若是,进入步骤112,否则,进入步骤 114 ;
[0045]步骤112,选中所述第二服务提供者来提供所述目标服务,并结束本流程;
[0046]步骤114,判断所述第三服务提供者是否存在,若是,进入步骤116,否则,结束本流程;
[0047]步骤116,选中所述第三服务提供者来提供所述目标服务。
[0048]由上述可知,依据本发明一个实施例的技术方案,服务请求者通过遍历能够提供目标服务的服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者,根据获取结果按照预定顺序选中一个服务提供者来提供所述目标服务,从而能够将目标服务锁定在同一个App之上,确保所有App都只启动同一个App的服务,进而能够减少用户设备的内存消耗和资源浪费。
[0049]可选地,在步骤102中,在将搜索结果添加到服务提供者集合中之前,还从所述搜索结果中排除禁用所述目标服务的服务提供者,也就是说,所述服务提供者集合中的每个服务提供者,其包含的目标服务均处于启用状态。通过服务启用/禁用机制,可以实现对服务的有效管理。[0050]在具体实现时,服务提供者包含的服务可以支持启用/禁用标志,任何一个植入服务的服务提供者(以下称之为服务者App),都可禁止服务启用。例如,可以按照如下方法来禁止和启用服务:
[0051]在服务者App的只读数据目录下,禁用服务通过写入标志文件disabled, ini文件,任何其他需要使用服务者App的服务的应用(以下称之为使用者App)在发现这个文件后,忽略该服务的存在。在Android系统中,可以将该文件放置在如下路径(该文件为服务App自己可读写,对于使用者App只读):
[0052]/ data / data / {pacakgeName} / files / disabled, ini
[0053]之后,当服务者App需要启用该服务时,直接删除disabled, ini文件即可。也就是说,使用者App可以根据disabled, ini文件的有无来判断服务着App是否启用或禁用服务。
[0054]进一步,为了确保数据的一致性,删除的可靠性,不管是启用服务,或者禁用服务,都可以触发删除服务的数据文件。
[0055]可选地,在步骤102中,在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,且在将搜索结果添加到服务提供者集合中之前,还对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。其中,所述对搜索到的服务提供者进行版本匹配可以包括:当服务提供者的SDK (Software Development Kit,软件开发工具包)版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
[0056]在本发明实施例中,每一个服务都可以声明(declare)自己的SDK版本号和服务需要的使用者APP的最低版本号。在具体实现时,可以在服务者App的AndroidManifest.xml文件(Andriod项目的清单文件)中用如下形式声明Service (服务)组件:
[0057]
<meta-data

android: name=" com.q I hoo360.accounts, service.VERSION"
aiK.1midA.akiWl-r
可以按照如下方式读取版本号:
Strin0.V = null;
V senice.serviceInfo,metaData.getStrmg("com.qihoo360.accounts, service.VERSION"):
[0058]其中,减号前的数字为本服务的版本号,减号后的数字为需要的使用者App的最低版本号。在上面的例子中,根据value=" 1-1"可以确定,本服务的版本号为“ 1”,需要的使用者App的最低版本号也为“I”。
[0059]通过上述方法,服务可以告诉其它App,自己当前的服务版SDK的版本号,以及需要使用者的最低版本号。当服务者APP的中服务的SDK升级之后,可以灵活的决定较低版本的使用者是否可以使用本服务。
[0060]对于服务的使用者,也有一个自己的SDK版本号,以及需要服务的最低版本号。搜索出设备中存在的App服务时,检查服务的SDK版本号,如果该服务版本低于使用者需要的服务的最低版本号,则忽略该服务;如果本使用者的SDK版本号低于该服务要求的请求者的最低版本号,则忽略该服务;直到找到一个匹配的服务。
[0061]图2示出了根据本发明一个实施例的服务定位方法中的版本匹配流程图。参照图2,版本匹配过程可以包括:
[0062]步骤202,使用者App找到一个服务;
[0063]步骤204,判断服务SDK版本是否大于等于使用者App所需的最低版本号,若是,进入步骤206,若否,匹配失败;
[0064]步骤206,判断使用者App的SDK版本是否大于等于服务者App要求的最低版本,若是,匹配成功,若否,匹配失败。
[0065]上述方法实现了比较灵活的App服务的版本匹配机制,使使用者App和服务者App准确对接,优先保证功能匹配性和兼容性方面的需求。
[0066]可选地,所述服务定位方法还包括:服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选中为服务提供者后,利用保存的数据文件提供服务。
[0067]当前正在服务的服务者App被卸载之后,使用者App需要寻找下一个可服务的服务者App来继续提供服务。通常来说,服务者App中存在的数据,也会随着卸载过程被删除。因此,为了一定程度的保证数据的可靠性,在本发明实施例中,请求者App在使用目标服务时,还可以对目标服务的数据文件进行保存,这样,在原服务者App被卸载之后,如果该请求者App被选中为接替的服务者App,则接替的服务者App可以利用之前保存的数据继续进行服务。也就是说,当App服务被卸载之后,通过接续机制,可以确保下一个App提供有限的持续服务。为提高数据的安全性,请求者App在使用目标服务时,对目标服务的数据文件还可以以加密的方式进行保存。
[0068]图3示出了根据本发明一个实施例的服务定位方法的详细流程图。根据该服务定位方法,当用户设备中存在多个服务者App时,不同的使用者App都会定位到同一个服务者App的服务上。在搜索服务时,首先会排出掉那些禁用服务,以及那些版本不匹配的服务。如前所述,服务者App中的服务通常具有几个关键的属性:首次使用时间、APK首次安装时间和APK修改时间。以下对这几个属性进行补充说明。
[0069]首次使用时间:即启动时间,服务者App第一次提供服务时,会创建一个文件,该文件一般存储在如下位置,并且权限设计为服务者App自身可读写,其他App只读:
[0070]/ data / data / {packageName} / files / started, ini
[0071]APK首次安装时间:该属性是服务者App第一次在用户设备上的安装时间,当该服务者App更新安装之后,该属性值不会改变(在某些设备上可能不存在该属性)。
[0072]APK修改时间:服务者App的更新时间,该值通常是服务者App的文件修改时间,总是可以能够获取到的。
[0073]参照图3,所述服务定位方法可以包括:
[0074]步骤302,请求者App开始进行服务搜索;
[0075]步骤304,判断是否搜索到了服务者App,若是,进入步骤306,若否,进入步骤314 ;[0076]步骤306,判断搜索到的服务者App中的服务是否启用,若是,进入步骤308,若否,进入步骤312 ;
[0077]步骤308,判断搜索到的服务的版本是否匹配,若是,进入步骤310,若否,进入步骤 312 ;
[0078]步骤310,将该服务存到缓存队列;
[0079]步骤312,搜索下一个提供服务的服务者App,返回步骤304 ;
[0080]步骤314,判断缓存队列中是否有服务,若是,进入步骤316,若否,搜索服务失败,结束;
[0081]步骤316,从缓存队列中取出一个服务;
[0082]步骤318,判断是否成功取出服务(如果缓存队列为空,则取出失败),若是,进入步骤332,若否,进入步骤320 ;
[0083]步骤320,判断是否存在首次使用时间,若是,进入步骤322,若否,进入步骤324 ;
[0084]步骤322,记录(更新)首次使用时间最早的服务后,返回步骤316 ;
[0085]步骤324,判断是否存在APK首次安装时间,若是,进入步骤326,若否,进入步骤328 ;
[0086]步骤326,记录(更新)APK首次安装时间最早的服务后,返回步骤316 ;
[0087]步骤328,获取服务的APK修改时间;
[0088]步骤330,记录(更新)APK修改时间最早的服务后,返回步骤316 ;
[0089]步骤332?334,判断首次使用时间最早的服务是否存在,若是,锁定到该服务,若否,进入步骤336 ;
[0090]步骤336?338,判断APK首次安装时间最早的服务是否存在,若是,锁定到该服务,若否,进入步骤340;
[0091]步骤340,锁定到APK修改时间最早的服务,搜索结束。
[0092]与本发明实施例的上述服务定位方法相对应,本发明实施例还提供一种实现上述方法的服务定位器。在本发明实施例中,用户设备上的每个App中都可以包含一个服务定位器。
[0093]图4示出了根据本发明一个实施例的服务定位器的结构图。参照图4,所述服务定位器可以包括服务搜索单元402、遍历获取单元404和服务定位单元406,其中:
[0094]服务搜索单元402适于搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中;
[0095]遍历获取单元404适于遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者;
[0096]服务定位单元406适于若所述第一服务提供者存在,则选中所述第一服务提供者来提供所述目标服务;若所述第一服务提供者不存在,且第二服务提供者存在,则选中所述第二服务提供者来提供所述目标服务;若所述第一服务提供者和第二服务提供者均不存在,且第三服务提供者存在,则选中所述第三服务提供者来提供所述目标服务。
[0097]可选地,所述服务搜索单元中还包括排除单元(图未示),适于在将搜索结果添加到服务提供者集合中之前,从所述搜索结果中排除禁用所述目标服务的服务提供者。[0098]可选地,所述服务搜索单元中还包括版本匹配单元(图未示),适于在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。其中,所述版本匹配单元进一步适于:当服务提供者的SDK版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
[0099]可选地,所述服务定位器还包括数据保存单元(图未示),适于当服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选中为服务提供者后,利用保存的数据文件提供服务。
[0100]综上所述,根据本发明实施例的服务定位方法和服务定位器,当服务者App提供服务之后,或者服务者App更新之后,或者服务者App卸载之后,总是能够最大可能性的保证,所有使用者App找到的是同一个服务App,即唯一性。
[0101]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0102]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0103]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0104]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0105]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0106]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务定位器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0107]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【权利要求】
1.一种服务定位方法,包括: 服务请求者搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中; 遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者; 若所述第一服务提供者存在,则选中所述第一服务提供者来提供所述目标服务;若所述第一服务提供者不存在,且第二服务提供者存在,则选中所述第二服务提供者来提供所述目标服务;若所述第一服务提供者和第二服务提供者均不存在,且第三服务提供者存在,则选中所述第三服务提供者来提供所述目标服务。
2.如权利要求1所述的服务定位方法,其中,在将搜索结果添加到服务提供者集合中之前,该方法还包括:从所述搜索结果中排除禁用所述目标服务的服务提供者。
3.如权利要求2所述的服务定位方法,其中,在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,该方法还包括:对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。
4.如权利要求3所述的服务定位方法,其中,所述对搜索到的服务提供者进行版本匹配,包括: 当服务提供者的SDK版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
5.如权利要求1所述的服务定位方法,其中,还包括: 服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选中为服务提供者后,利用保存的数据文件提供服务。
6.一种服务定位器,包括: 服务搜索单元,适于搜索植入有目标服务的服务提供者,将搜索结果添加到服务提供者集合中; 遍历获取单元,适于遍历所述服务提供者集合,获取首次使用时间最早的目标服务所在的第一服务提供者、APK首次安装时间最早的目标服务所在的第二服务提供者和APK修改时间最早的目标服务所在的第三服务提供者; 服务定位单元,适于若所述第一服务提供者存在,则选中所述第一服务提供者来提供所述目标服务;若所述第一服务提供者不存在,且第二服务提供者存在,则选中所述第二服务提供者来提供所述目标服务;若所述第一服务提供者和第二服务提供者均不存在,且第三服务提供者存在,则选中所述第三服务提供者来提供所述目标服务。
7.如权利要求6所述的服务定位器,其中,所述服务搜索单元中包括排除单元,适于在将搜索结果添加到服务提供者集合中之前,从所述搜索结果中排除禁用所述目标服务的服务提供者。
8.如权利要求7所述的服务定位器,其中,所述服务搜索单元中还包括: 版本匹配单元,适于在从所述搜索结果中排除禁用所述目标服务的服务提供者之后,对搜索到的服务提供者进行版本匹配,并从所述搜索结果中排除版本匹配失败的服务提供者。
9.如权利要求8所述的服务定位器,其中,所述版本匹配单元进一步适于: 当服务提供者的SDK版本号大于或者等于服务请求者所需的最低版本号,且服务请求者的SDK版本号大于或者等于服务提供者要求的最低版本号时,确定匹配成功,否则确定匹配失败。
10.如权利要求6所述的服务定位器,其中,还包括: 数据保存单元,适于当服务请求者在使用目标服务时,对目标服务的数据文件进行保存,以使该服务请求者被选 中为服务提供者后,利用保存的数据文件提供服务。
【文档编号】H04M1/725GK103516905SQ201310438533
【公开日】2014年1月15日 申请日期:2013年9月24日 优先权日:2013年9月24日
【发明者】宋照春 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1