接口检测工具生成、接口检测方法、装置、设备及介质制造方法及图纸

技术编号:25988687 阅读:13 留言:0更新日期:2020-10-20 18:56
本公开实施例公开了一种接口检测工具生成、接口检测方法、装置、设备及介质,接口检测工具生成方法包括:根据接口导出规则的规则内容生成规则解析器;根据所述规则解析器和第一预设插件生成本地接口检测插件;根据所述规则解析器和第二预设插件生成外部接口检测插件。本公开实施例的技术方案能够实现在不对Android工程模块进行重构的前提下,对模块的接口进行检测,从而控制不同模块的接口导出规则。

【技术实现步骤摘要】
接口检测工具生成、接口检测方法、装置、设备及介质
本公开实施例涉及安卓开发
,尤其涉及一种接口检测工具生成、接口检测方法、装置、设备及介质。
技术介绍
Android工程的构建工具为Gradle。Gradle以Module(模块)的概念来管理整个Android工程。一个Android工程中可以存在多个Module,其中包含一个主Module和多个子Module。主Module可以依赖多个子Module。将一个庞大的Android工程拆分为不同的Module,可以实现不同业务模块之间的解耦,完成工程的模块化重构,从而实现优化工程的目的。Gradle通过其自建的一套基于Groovy的DSL(特定领域语言,DomainSpecificLanguage)语言来实现工程中不同Module之间的依赖关系描述。图1a是现有技术中不同模块之间依赖关系的效果示意图,如图1a所示,ModuleA依赖于Modulelib1和Modulelib2。Gradle为开发者提供了Module粒度的代码复用和封装的基础设施,但Module的应用存在一个问题,即如何限制一个Module对外暴露的API(应用程序接口,ApplicationProgrammingInterface)。图1b是现有技术中不同模块之间依赖关系的效果示意图,如图1b所示,ModuleA依赖于ModuleB,ModuleB内部包括InnerUtil这个类,这个Class仅针对于ModuleB内部使用。开发者通过Groovy代码声明ModuleA与ModuleB的依赖关系时,无法限制开发者在ModuleA中继续使用InnerUtil。ModuleB对于依赖自身的其他模块暴露了不该被暴露的API,导致模块的边界和职责不再清晰。现有技术中,保持module清晰边界的方案通常有两种。第一种方案为基础方案,具体是将Module拆分为InterfaceModule和ImplementationModule。即接口与实现分离,模块之间依赖接口而不依赖实现。图1c是现有技术中不同模块之间通过接口进行依赖的效果示意图。如图1c所示,不需要对外界Module暴露的API可以下沉至Implementation模块中,外界只与接口“InterfaceModuleB”所暴露的API进行交互。第二种方案为演进方案,具体是通过创造“api”文件的方式来暴露一个Module边界。图1d是现有技术中通过创造api文件保留module边界的效果示意图。如图1d所示,在一个Module中,选取可以被外界Module使用的API、Class或者其他的资源,以“api”作为后缀,并且在工程文件中使用自定义的DSL来引入依赖。也即,通过复制所有的“*.api”文件至另一个“SDK”工程,来实现非“*.api”文件、资源的下沉处理。其他的模块只依赖“SDK”工程。专利技术人在实现本公开的过程中,发现现有技术存在如下缺陷:基础方案会增加Module数量,影响编译进度,且对已有模块进行重构迁移的成本较高。基础方案虽然能够实现接口与实现分离,但同时也会降低模块的收敛性。并且,现有的Module工程改造相当繁琐。演进方案则需要引入额外Gradle插件,导致gradle配置入侵较大,同时还需要引入“*.api”文件,影响语义化。演进方案的原理是通过自定义DSL函数来实现模块下沉的处理,对上只暴露包含“*.api”资源的Module,其本质上仍然属于自动化的基础方案。
技术实现思路
本公开实施例提供一种接口检测工具生成、接口检测方法、装置、设备及介质,实现在不对Android工程模块进行重构的前提下,对Android工程模块的接口进行检测,从而控制不同模块的接口导出规则。第一方面,本公开实施例提供了一种接口检测工具生成方法,包括:根据接口导出规则的规则内容生成规则解析器;根据所述规则解析器和第一预设插件生成本地接口检测插件;根据所述规则解析器和第二预设插件生成外部接口检测插件。第二方面,本公开实施例还提供了一种接口检测方法,包括:获取待检测对象;所述待检测对象针对各个模块的API配置有接口导出规则;通过本地接口检查插件对所述待检测对象的API进行本地检测,生成本地测试对象;通过外部接口检测插件对所述本地测试对象的API进行外部检测,生成目标检测结果。第三方面,本公开实施例还提供了一种接口检测工具生成装置,包括:规则解析器生成模块,用于根据接口导出规则的规则内容生成规则解析器;本地接口检测插件生成模块,用于根据所述规则解析器和第一预设插件生成本地接口检测插件;外部接口检测插件生成模块,用于根据所述规则解析器和第二预设插件生成外部接口检测插件。第四方面,本公开实施例还提供了一种接口检测装置,包括:待检测对象获取模块,用于获取待检测对象;所述待检测对象针对各个模块的API配置有接口导出规则;本地检测模块,用于通过本地接口检查插件对所述待检测对象的API进行本地检测,生成本地测试对象;外部检测模块,用于通过外部接口检测插件对所述本地测试对象的API进行外部检测,生成目标检测结果。第五方面,本公开实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的接口检测工具生成方法。第六方面,本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的接口检测工具生成方法。第七方面,本公开实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第二方面中任意所述的接口检测方法。第六方面,本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面中任意所述的接口检测方法。本公开实施例通过根据接口导出规则的规则内容生成规则解析器,并根据规则解析器和第一预设插件生成本地接口检测插件,根据规则解析器和第二预设插件生成外部接口检测插件,以通过本地接口检测插件对待检测对象的API进行本地检测,生成本地测试对象,并通过外部接口检测插件对本地测试对象的API进行外部检测,生成目标检测结果,解决现有对Android工程模块接口边界处理方法存在的影响编译进度、重构成本高、降低模块收敛性、配置入侵大及影响语义化等问题,实现在不对Android工程模块进行重构的前提下,对Android工程模块的接口进行检测,从而控制不同模块的接口导出规则。附图说明图1a是现有技术中不同模块之间依赖关系的效果示意图;图1b是现有技术中不同模块之间依赖关系的效果示意图;图1c是现有技术中不同模本文档来自技高网
...

【技术保护点】
1.一种接口检测工具生成方法,其特征在于,包括:/n根据接口导出规则的规则内容生成规则解析器;/n根据所述规则解析器和第一预设插件生成本地接口检测插件;/n根据所述规则解析器和第二预设插件生成外部接口检测插件。/n

【技术特征摘要】
1.一种接口检测工具生成方法,其特征在于,包括:
根据接口导出规则的规则内容生成规则解析器;
根据所述规则解析器和第一预设插件生成本地接口检测插件;
根据所述规则解析器和第二预设插件生成外部接口检测插件。


2.根据权利要求1所述的方法,其特征在于,所述规则解析器用于对获取的待检测对象的接口导出规则进行解析;
所述根据接口导出规则的规则内容生成规则解析器,包括:
根据所述接口导出规则定义规则结构体;所述规则结构体用于承载对所述待检测对象的接口导出规则进行解析得到规则结果集;
生成正则解析逻辑;所述正则解析逻辑用于对所述待检测对象的接口导出规则进行文本模式匹配,得到各个模块的规则结构体定义。


3.根据权利要求1所述的方法,其特征在于,所述本地接口检查插件用于对待检测对象的应用程序接口API进行本地检测,生成本地测试对象;
所述根据所述规则解析器和第一预设插件生成本地接口检测插件,包括:
确定所述本地接口检测插件的基本交互事件的基本交互形式及本地错误信息提示形式;
生成各所述基本交互形式匹配的监听方式;
根据所述规则解析器生成所述本地接口检测插件的第一核心检测逻辑;
生成各所述本地错误信息提示形式匹配的本地错误信息提示方式。


4.根据权利要求3所述的方法,其特征在于,所述根据所述规则解析器生成所述本地接口检测插件的第一核心检测逻辑,包括:
在确定基本交互事件被触发后,查找所述待检测对象的接口导出规则的配置文件;
根据所述规则解析器读取并解析查找到的所述接口导出规则的配置文件,生成本地规则结果集;
根据所述本地规则结果集,生成所述待检测对象中每个模块的本地黑名单列表;
根据所述本地黑名单列表扫描所述待检测对象,并将扫描到的错误调用API加入本地扫描接口集合中。


5.根据权利要求4所述的方法,其特征在于,在确定基本交互事件被触发之前,还包括:
根据所述基本交互事件匹配的监听方式,对所述待检测对象的各所述基本交互事件进行监听;
在将扫描到的错误调用API加入本地扫描接口集合中之后,还包括:
如果确定所述本地扫描接口集合不为空,则采用所述错误信息提示方式进行错误提示。


6.根据权利要求1所述的方法,其特征在于,所述外部接口检测插件用于对本地测试对象的API进行外部检测,生成目标检测结果;
所述根据所述规则解析器和第二预设插件生成外部接口检测插件,包括:
确定所述外部接口检测插件的交互形式;
复用所述规则解析器的规则解析逻辑;
生成文本检索引擎;
根据所述规则解析器生成所述外部接口检测插件的第二核心检测逻辑;
生成外部错误信息的输出方式。

<...

【专利技术属性】
技术研发人员:管伟张祖俭
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1