预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115964046A(43)申请公布日2023.04.14(21)申请号202211532265.7(22)申请日2022.12.01(71)申请人海尔优家智能科技(北京)有限公司地址100029北京市西城区北三环中路甲29号院3号楼五层501号内502室申请人青岛海尔科技有限公司海尔智家股份有限公司(72)发明人郭发玉(74)专利代理机构北京瀚仁知识产权代理事务所(普通合伙)11482专利代理师陈敏(51)Int.Cl.G06F8/41(2018.01)G06F8/70(2018.01)权利要求书2页说明书8页附图3页(54)发明名称生成代码类图关系的方法、存储介质及电子装置(57)摘要本申请公开了一种生成代码类图关系的方法、存储介质及电子装置,涉及软件开发/智能家居/智慧家庭技术领域,旨在解决人工绘制三方dart开源库的类图关系费时费力的问题。本方法应用于dart编译系统,包括获取当前编译阶段每个被编译文件的编译单元,获取每个编译单元的类信息数据,基于类信息数据生成结构化的数据,基于结构化的数据生成代码类图关系。这样的方法能够自动获取类成员数据,生成dart开源库各种类之间代码类关系图,节约了时间,有效提升了工作效率。CN115964046ACN115964046A权利要求书1/2页1.一种生成代码类图关系的方法,其特征在于,所述方法包括:获取当前编译阶段每个被编译文件的编译单元;获取每个所述编译单元的类信息数据;基于所述类信息数据生成结构化的数据;基于所述结构化的数据生成代码类图关系。2.根据权利要求1所述的生成代码类图关系的方法,其特征在于,所述获取当前编译阶段每个被编译文件的编译单元包括:获取当前编译阶段每个被编译文件的编译信息,所述编译信息至少包括元素库和分析会话;基于所述分析会话解析所述元素库得到所述编译单元。3.根据权利要求1所述的生成代码类图关系的方法,其特征在于,所述获取每个所述编译单元的类信息数据包括:解析所述编译单元的类声明节点,获取类成员信息、继承链上所有父类成员信息和混入链上所有混入类成员信息;所述类成员信息、所述继承链上所有父类成员信息和所述混入链上所有混入类成员信息均至少包括静态属性信息、静态方法信息、实例属性信息和实例方法信息。4.根据权利要求3所述的生成代码类图关系的方法,其特征在于,所述解析所述编译单元的类声明节点,获取类成员信息、继承链上所有父类成员信息和混入链上所有混入类成员信息包括:解析类声明节点,获取所述类成员信息;解析类声明节点,获取父类声明节点,通过递归所述父类声明节点获取所述继承链上所有父类成员信息;解析类声明节点,获取当前混入类成员信息,通过递归所述当前混入类成员信息获取所述混入链上所有混入类成员信息。5.根据权利要求1所述的生成代码类图关系的方法,其特征在于,所述基于所述结构化的数据生成代码类图关系包括:解析所述结构化的数据,生成文档对象模型节点;基于所述文档对象模型节点做UI渲染得到代码类图关系。6.根据权利要求2所述的生成代码类图关系的方法,其特征在于,所述获取当前编译阶段每个被编译文件的编译信息包括:使用自定义的工厂函数生成构建实例;基于所述构建实例的构建方法获取所述编译文件的编译信息。7.根据权利要求1所述的生成代码类图关系的方法,其特征在于,所述在编译过程中获取当前编译阶段每个被编译文件的编译单元之前,还包括:响应于预设命令,触发dart编译系统开始工作。8.一种生成代码类图关系的装置,其特征在于,所述装置包括:第一获取模块,其被配置成获取当前编译阶段每个被编译文件的编译单元;第二获取模块,其被配置成获取每个所述编译单元的类信息数据;第一生成模块,其被配置成基于所述类信息数据生成结构化的数据;2CN115964046A权利要求书2/2页第二生成模块,其被配置成基于所述结构化的数据生成代码类图关系。9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的生成代码类图关系的方法。10.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至7中任一项所述的生成代码类图关系的方法。3CN115964046A说明书1/8页生成代码类图关系的方法、存储介质及电子装置技术领域[0001]本申请涉及软件开发/智能家居/智慧家庭技术领域,具体而言,涉及一种生成代码类图关系的方法、存储介质及电子装置。背景技术[0002]随着谷歌的移动UI框架Flutter的兴起,dart开源库也是百花齐放,层出不穷。在Flutter软件研发的过程中,需要使用一些三方dart开源库,不可