[发明专利]应用程序模块的分析方法、装置以及分析工具在审
申请号: | 202010177068.2 | 申请日: | 2020-03-13 |
公开(公告)号: | CN113391812A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 叶俊星;李猛超;贾杰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 北京思格颂知识产权代理有限公司 11635 | 代理人: | 潘珺 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 模块 分析 方法 装置 以及 工具 | ||
1.一种应用程序模块的分析方法,包括:
对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果;
根据所述模块包含的文件,确定模块所包含的文件的分析结果;并对所述应用程序的模块,在模块级别上进行模块依赖分析,得到所述模块的正向依赖分析结果;
根据所述模块的正向依赖分析结果和模块所包含的文件的分析结果,得到所述模块的分析结果;
汇总所述应用程序中模块的分析结果,进行跨模块分析,得到在模块级别和文件级别上模块之间的逆向依赖分析结果。
2.如权利要求1所述的方法,对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果,具体包括:
从应用程序的至少一个入口文件开始,依次对所述入口文件的源码进行文件依赖分析,得到文件依赖分析结果,以递归的方式的对入口文件依赖文件继续进行文件依赖分析,直到遍历完所述应用程序包含的文件,得到应用程序所有文件的分析结果。
3.如权利要求2所述的方法,还包括:
创建栈数据结构,在所述栈数据结构中记录应用程序所包含的文件递归的路径;
根据所述文件递归的路径,判断当前所需分析的文件的源码是否已被遍历;
当判断为否时,执行对所述文件的源码进行分析的步骤;
当判断为是时,跳转至下一个所依赖的文件的源码进行分析。
4.如权利要求1-3任一项所述的方法,对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果,包括:
分别收集文件的属性数据;
对所述文件的源码进行语法分析,构建对应的语法树;
基于所述文件的语法树,分别对所述文件的源码进行切面API分析和文件依赖分析,分别得到所述文件的切面API分析结果和文件正向依赖分析结果;所述切面API分析为应用层文件的API和容器层API之间依赖关系的分析;
根据所述文件的正向依赖分析结果,确定文件级别上的文件逆向依赖分析结果和无用资源分析结果;所述无用资源分析结果包含未被其他任何文件所依赖的文件;
汇总所述文件的属性数据、切片API分析结果、文件正向依赖分析结果、文件逆向依赖分析结果和无用资源分析结果,得到所述文件的分析结果。
5.如权利要求4所述的方法,对文件的源码进行文件依赖分析,得到文件正向依赖分析结果,包括:
根据所述文件的语法树,在应用层内,对所述文件所包含的各API进行API依赖分析,得到所述文件所包含的API的正向依赖分析结果;
根据所述语法树,对所述文件进行文件路径依赖分析,得到所述文件所依赖的文件的相对路径;并根据文件地图和所述文件的相对路径进行依赖寻路,确定所依赖的文件的绝对路径;所述文件地图记录有文件和文件绝对路径的映射关系;
汇总文件所包含的API的正向依赖分析结果和所述文件所依赖的文件绝对路径,得到文件正向依赖分析结果。
6.如权利要求4的方法,汇总所述应用程序中模块的分析结果,进行跨模块分析,得到在模块级别和文件级别上模块之间的逆向依赖分析结果,包括:
根据所述模块的分析结果中模块的正向依赖分析结果,以及所述模块所包含的文件分析结果中的文件逆向依赖分析结果,推导出模块级别和文件级别上所述模块的逆向分析结果。
7.如权利要求1-3任一项所述的方法,在模块级别上进行模块依赖分析,得到模块正向依赖分析结果,包括:
根据所述模块依赖声明文件,对模块进行依赖分析,所述依赖分析包括模块间依赖关系分析和依赖合法性分析,得到模块正向依赖分析结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010177068.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:显示设备
- 下一篇:一种高精度地图数据的生成方法、装置及服务器