[发明专利]在插件中使用服务的方法及装置有效
申请号: | 201610976361.9 | 申请日: | 2016-11-07 |
公开(公告)号: | CN106598642B | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 张炅轩;宋照春 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;盛惠华 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 插件 使用 服务 方法 装置 | ||
本发明提供了一种在插件中使用服务的方法及装置。该方法包括:定义用于插件服务的使用方对插件服务进行操作的客户端类,以及定义对插件服务进行管理的管理器对应的服务端类;当使用方需要使用目标插件服务时,调用所述客户端类中的第一指定类成员,由所述第一指定类成员获取所述目标插件服务的管理器的接口;利用所述目标插件服务的管理器的接口实现所述服务端类,进而由所述服务端类向使用方提供所述目标插件服务。本发明实施例提供的技术方案,既可以不升级宿主程序,又无需在宿主的配置文件中增加服务的坑位,即可有效地实现插件服务的管理。
技术领域
本发明涉及插件技术领域,特别是一种在插件中使用服务的方法及装置。
背景技术
在软件开发中,为了方便对软件进行功能扩展,可以采用插件方式进行开发,将软件所要实现的一个一个功能封装在插件中,最后将各个插件集成在软件主程序包中一同发布。在实际开发中,经常会遇到使用插件服务的情况,例如,在手机卫士上需要使用Backup插件的BackupService服务。
现有技术一中,是通过在主程序(宿主)中编写一个“Service中介”来实现。这个Service中介可以直接通过反射调用插件来做。具体做法为:首先在宿主的AndroidManifest.xml中预埋此Service(如编写service android:name=“BackupService”),其次在宿主中编写BackupService,但所有的方法,如onCreate、onStartCommand等都通过Java反射来调用插件内部的实现(如在Backup插件中有个BackupServiceImpl类,也有onCreate方法,这时会在BackupService.onCreate中反射调用BackupServiceImpl.onCreate)。然而,现有技术一虽然实现起来很快,但最大的缺点就是,要增加Service就必须先升级宿主才可以。例如,若将来要添加BackupService2,则同样的,需要在宿主的AndroidManifest.xml中写上BackupService2,且只能在升级宿主后才能使用,显然这种做法非常不完美。
现有技术二中,是通过在宿主中预埋一些Service坑位来实现。现有技术二有效解决了现有技术一的问题,使其可以在不升级宿主的情况下,任意删改插件服务。但现有技术二也有一个比较明显的缺陷,就是坑位有限。Activity的生命周期远短于Service,换言之,即便只给每个不同的模式的Activity留3个坑位,只要页面安排得当,也是完全可以使用的。但Service是要常驻于后台的,生命周期会非常长,若只留少量的坑位,则很快坑位就会满,但坑位过多(如预留20个)又会导致启动速度受到影响,且第三方或自己通过Binder获取宿主应用的信息时,有可能因信息过多而出现TransactionTooLarge的异常,因此,该方案也不够完美。
综上所述,发明人发现亟待提供一种有效地在插件中使用服务的方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的在插件中使用服务的方法及相应的装置。
依据本发明的一方面,提供了一种在插件中使用服务的方法,包括:
定义用于插件服务的使用方对插件服务进行操作的客户端类,以及定义对插件服务进行管理的管理器对应的服务端类;
当使用方需要使用目标插件服务时,调用所述客户端类中的第一指定类成员,由所述第一指定类成员获取所述目标插件服务的管理器的接口;
利用所述目标插件服务的管理器的接口实现所述服务端类,进而由所述服务端类向使用方提供所述目标插件服务。
可选地,对插件服务进行的操作包括下列至少之一:
启动插件服务、停止插件服务、绑定插件服务、解除绑定插件服务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610976361.9/2.html,转载请声明来源钻瓜专利网。