【技术实现步骤摘要】
动态加载方法、装置及存储介质
本公开涉及终端
,特别涉及一种动态加载方法、装置及存储介质。
技术介绍
对于一些程序代码来说,常常需要通过动态加载其它程序代码的方式来使用其功能。其中,前者可称之为宿主程序,后者可称之为依赖库(也称宿主依赖)。针对这种情形,宿主和依赖库之间通常是彼此独立的,且二者的更新周期一般不一致。基于此,在动态加载过程中常常存在兼容性问题,比如,在依赖库的版本不一致时,宿主程序在动态加载时可能会出现版本不兼容问题。基于此,如何实现一种新的动态加载方式,以解决前述问题,成为了本领域技术人员关注的一个焦点。
技术实现思路
本公开提供一种动态加载方法、装置及存储介质,能够解决动态加载时的兼容性问题。根据本公开实施例的第一方面,提供一种动态加载方法,所述方法包括:在依赖库中添加入口接口,并设置所述入口接口的实现类,所述入口接口的实现类名称固定且用于实现所述入口接口;将所述依赖库对外提供的服务抽象处理为至少一个服务接口,每一个所述服务接口的方法不支持修改;将所述至少一个服务接口与所述入口接口进行关联,所述依赖库用于向宿主程序提供所述入口接口,以及通过所述 ...
【技术保护点】
1.一种动态加载方法,其特征在于,所述方法包括:在依赖库中添加入口接口,并设置所述入口接口的实现类,所述入口接口的实现类名称固定且用于实现所述入口接口;将所述依赖库对外提供的服务抽象处理为至少一个服务接口,每一个所述服务接口的方法不支持修改;将所述至少一个服务接口与所述入口接口进行关联,所述依赖库用于向宿主程序提供所述入口接口,以及通过所述入口接口向所述宿主程序提供所述至少一个服务接口。
【技术特征摘要】
1.一种动态加载方法,其特征在于,所述方法包括:在依赖库中添加入口接口,并设置所述入口接口的实现类,所述入口接口的实现类名称固定且用于实现所述入口接口;将所述依赖库对外提供的服务抽象处理为至少一个服务接口,每一个所述服务接口的方法不支持修改;将所述至少一个服务接口与所述入口接口进行关联,所述依赖库用于向宿主程序提供所述入口接口,以及通过所述入口接口向所述宿主程序提供所述至少一个服务接口。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述宿主程序中添加所述入口代理类,所述宿主程序通过所述入口代理类反射所述入口接口的实现类,获取所述入口接口。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述依赖库向所述入口代理类提供所述入口接口的实现类的名称;所述宿主程序基于所述入口接口的实现类的名称通过调用所述入口代理类,反射所述入口接口的实现类,获取所述入口接口。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述依赖库中设置所述至少一个服务接口的实现类,所述至少一个服务接口的实现类用于实现所述至少一个服务接口。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述宿主程序设置有调用类,在所述宿主程序的运行过程中,所述调用类通过调用所述入口代理类反射所述入口接口的实现类,获取所述入口接口。6.根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述方法还包括:在所述依赖库版本更新时,在所述至少一个服务接口中添加方法。7.一种动态加载装置,其特征在于,所述装置包括:添加模块,被配置为在依赖库中添加入口接口,并设置所述入口接口的实现类,所述入口接口的实现类名称固定且用于实现所述入口接口;第一处理模块,被配置为将所述依赖库对外提供的服务抽象处理为至少一个服务接口,每一个所述服务接口的方法不支持修改;第二处理模块,被配置为将所述至少一个服务接口与所述入口接口进行关联...
【专利技术属性】
技术研发人员:闫涛,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。