[发明专利]一种应用程序的运行方法、装置、电子设备、及存储介质有效
申请号: | 201910508706.1 | 申请日: | 2019-06-12 |
公开(公告)号: | CN110221877B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 王琨 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 运行 方法 装置 电子设备 存储 介质 | ||
1.一种应用程序的运行方法,所述应用程序包括宿主程序和功能插件,其特征在于,所述方法包括:
宿主程序在运行过程中,若产生调用功能插件的触发条件,则调用并运行所述功能插件;
在所述功能插件的运行过程中,若产生调用至少一种依赖服务的需求,则将输入数据传输给被调用的依赖服务的依赖服务接口,调用所述被调用的依赖服务的服务程序;其中,所述依赖服务接口配置在所述宿主程序中;
在所述服务程序运行后,通过所述依赖服务接口所定义的反馈数据,将输出结果数据传输给所述功能插件,以完成对所述被调用的依赖服务的调用;
其中,在所述功能插件的运行过程中,若产生调用至少一种依赖服务的需求,则将输入数据传输给被调用的依赖服务的依赖服务接口,调用所述被调用的依赖服务的服务程序包括:
根据所述功能插件调用依赖服务的需求,在所述宿主程序的管理器服务池中查找所需的依赖服务接口,通过所述依赖服务接口加载所述宿主程序提供的至少一种依赖服务的服务程序,并根据所述依赖服务接口将输入数据传输给所述服务程序,所述依赖服务接口包括服务名称、调用所述依赖服务的输入参数、以及调用所述依赖服务的输出参数。
2.根据权利要求1所述的方法,其特征在于,所述应用程序运行于IOS操作系统,则所述方法还包括在所述功能插件安装到所述宿主程序时进行编译,且所述编译的过程包括:
根据所述功能插件中配置的服务提供者接口定义中的依赖服务标识,在所述宿主程序提供的服务提供者接口实现内的依赖服务标识中进行匹配;
根据匹配到的依赖服务标识,在所述宿主程序中配置的服务实现集合中确定对应的依赖服务接口,并对所述依赖服务接口进行编译,以供所述功能插件通过所述依赖服务接口对依赖服务的服务程序进行调用。
3.根据权利要求1所述的方法,其特征在于,在所述功能插件的启动过程中,还包括:
通过所述功能插件为所述至少一种依赖服务在内存中建立一个上下文对象,通过所述宿主程序向所述上下文对象加载所述至少一种依赖服务的依赖服务接口,以根据所述上下文对象确定被调用的依赖服务的依赖服务接口。
4.根据权利要求3所述的方法,其特征在于,通过所述功能插件为所述至少一种依赖服务在内存中建立一个上下文对象包括:通过所述功能插件建立一个字典,所述字典的健为服务名,值为所述服务名对应依赖服务的依赖服务接口;
通过所述宿主程序向所述上下文对象加载所述至少一种依赖服务的依赖服务接口包括:通过所述宿主程序在运行时向所述字典加载健对应的依赖服务的依赖服务接口;
根据所述上下文对象确定被调用的依赖服务的依赖服务接口包括:根据被调用的依赖服务的服务名从所述字典中获取对应的依赖服务接口并调用。
5.根据权利要求1所述的方法,其特征在于,所述应用程序运行于安卓操作系统,则所述方法还包括在所述功能插件安装到所述宿主程序时进行编译,且所述编译的过程包括:
在宿主程序中安装所述功能插件的过程中,根据所述功能插件的代码进行编译,以确定所需调用的依赖服务,并根据所述依赖服务遍历宿主程序在所述管理器服务池中提供的依赖服务接口;
如果确定有匹配的依赖服务接口,则进行编译处理。
6.根据权利要求1所述的方法,其特征在于,所述至少一种依赖服务的接口实现是对所述至少一种依赖服务的通用实现程序进行调用的代码指令。
7.根据权利要求1所述的方法,其特征在于,所述依赖服务包括下述至少一种:网络请求服务、图片加载服务、埋点服务、监控服务、日志服务、用户服务、以及分享服务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910508706.1/1.html,转载请声明来源钻瓜专利网。