【技术实现步骤摘要】
一种环形依赖关系的检测方法、装置、设备和存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种环形依赖关系的检测方法、装置、设备和存储介质。
技术介绍
为了提高应用软件的开发效率,通常是以功能模块化的方式进行软件开发,即将应用软件中的各个功能划分为相应的功能模块进行软件开发。例如,将负责用户登录的功能模块作为登录模块;对弹幕消息进行接收、解析及发送等处理的功能模块作为弹幕模块等。目前,基于Android系统开发的应用软件中的各个功能模块在使用前需要逐个进行初始化。然而,专利技术人发现在进行初始化过程中,多个功能模块之间可能会存在环形依赖关系,比如初始化功能模块A时需要依赖功能模块B,而功能模块B又需要依赖功能模块A才可完成初始化,从而形成了环形依赖关系,导致整个初始化逻辑无法正常顺利地完成。
技术实现思路
本专利技术实施例提供了一种环形依赖关系的检测方法、装置、设备和存储介质,以实时检测出初始化时存在环形依赖关系的功能模块,以便保证功能模块初始化的正常运行。第一方面,本专利技术实施例提供了 ...
【技术保护点】
1.一种环形依赖关系的检测方法,其特征在于,包括:/n获取至少两个功能模块和每个所述功能模块中的检测协议对象,其中,所述检测协议对象的对象类型为预设检测接口协议类型;/n调用每个所述检测协议对象中的依赖检测函数,确定每个所述功能模块初始化时所依赖的其他功能模块组成的功能模块依赖集合;/n根据每个所述功能模块对应的所述功能模块依赖集合,确定存在环形依赖关系的各个目标功能模块。/n
【技术特征摘要】
1.一种环形依赖关系的检测方法,其特征在于,包括:
获取至少两个功能模块和每个所述功能模块中的检测协议对象,其中,所述检测协议对象的对象类型为预设检测接口协议类型;
调用每个所述检测协议对象中的依赖检测函数,确定每个所述功能模块初始化时所依赖的其他功能模块组成的功能模块依赖集合;
根据每个所述功能模块对应的所述功能模块依赖集合,确定存在环形依赖关系的各个目标功能模块。
2.根据权利要求1所述的方法,其特征在于,所述依赖检测函数通过如下步骤实现确定每个所述功能模块初始化时所依赖的其他功能模块组成的功能模块依赖集合的功能:
对当前功能模块初始化时所需要加载的各个类文件的信息进行扫描,获得每个类文件所涉及的各个包名,并生成包名集合,其中每个所述包名对应一个所述功能模块;
从每个所述包名集合中去除所述当前功能模块对应的当前包名;
对去除所述当前包名后的各个包名集合进行包名去重处理,并根据去重处理后获得的各个包名生成所述当前功能模块对应的功能模块依赖集合。
3.根据权利要求2所述的方法,其特征在于,根据去重处理后获得的各个包名生成所述当前功能模块对应的功能模块依赖集合,包括:
调用预设存储对象中的标识查询函数,确定去重处理后获得的每个包名对应的目标预设功能模块标识,其中,所述预设存储对象预先存储包名与预设功能模块标识之间的对应关系;
将各个所述目标预设功能模块标识组合为所述当前功能模块对应的功能模块依赖集合。
4.根据权利要求1所述的方法,其特征在于,根据每个所述功能模块对应的所述功能模块依赖集合,确定存在环形依赖关系的各个目标功能模块,包括:
将每个所述功能模块逐一作为当前功能模块,并将当前功能模块对应的第一功能模块依赖集合中的第一个功能模块作为当前第一功能模块;
若检测到当前第一功能模块对应的第二功能模块依赖集合为非空集合,则检测所述第二功能模块依赖集合中是否存在当前功能模块;
若是,则确定当前功能模块和当前第一功能模块为存在环形依赖关系的目标功能模块;
若否,则将所述第一功能模块依赖集合中的下一个功能模块作为当前第一功能模块,并返回执行若检测到当前第一功能模块对应的第二功能模块依赖集合为非空集合,则检测所述第二功能模块依赖集合中存在当前功能模块的操作。
5.根据权利要求4所述的方法,其特征在于,在将所述第一功能模块依赖集合中的下一个功能模块作为当前依赖功能模块之前,包括:
...
【专利技术属性】
技术研发人员:张磊,
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。