1.一种兼容性问题检测方法,其特征在于,包括:
检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
2.根据权利要求1所述的方法,其特征在于,所述检测设备包括检测管理模块和代码扫描模块,所述检测管理模块用于:接收所述兼容性检测指令;
所述代码扫描模块用于:对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息;
所述检测管理模块还用于将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台根据兼容性问题库获取所述兼容性缺陷信息对应的兼容性问题。
3.根据权利要求2所述的方法,其特征在于,所述检测管理模块为接入所述应用程序的插件。
4.根据权利要求2所述的方法,其特征在于,所述代码扫描模块以依赖包的方式集成在所述应用程序中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述检测设备对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树之前,还包括:所述检测设备获取用户指定的工程构建信息,所述工程构建信息至少包括:构建类型和渠道;
相应地,所述检测设备对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树,包括:根据所述工程构建信息对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树。
6.根据权利要求1所述的方法,其特征在于,所述检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,包括:所述检测设备根据所述兼容性问题的规则信息,确定所述兼容性问题对应的特征API和待扫描的节点类型;
所述检测设备对所述抽象语法树中的所述待扫描的节点类型对应的节点对象进行扫描,记录所述特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述检测设备确定所述规则信息与所述特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息,所述兼容性缺陷信息至少包括所述兼容性问题的标识和所述特征API的特征数据。
7.根据权利要求6所述的方法,其特征在于,所述特征API至少包括:调用API特征字符串、布局文件特征字符串和清单文件特征字符串;
所述待扫描的节点类型至少包括:方法调用节点、表达式节点和资源文件引用节点。
8.一种兼容性问题检测方法,其特征在于,包括:
分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
9.根据权利要求8所述的方法,其特征在于,所述兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息;
所述关联对象至少包括与所述兼容性问题相关联的ROM、API级别、API类型和机型。
10.根据权利要求8所述的方法,其特征在于,所述兼容性缺陷信息还包括兼容性问题的特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
相应地,所述分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息,包括:所述分析平台根据所述兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定所述兼容性问题的问题代码位置;
所述分析平台显示所述兼容性问题的描述信息和问题代码位置。
11.一种兼容性问题检测装置,其特征在于,包括:
检测管理模块,用于检测设备在接收到对应用程序的兼容性检测指令时,对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树;
代码扫描模块,用于检测设备获取兼容性问题的规则信息,根据所述规则信息对所述抽象语法树中的节点对象进行扫描,得到所述应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
所述检测管理模块,还用于检测设备将所述应用程序潜在的兼容性缺陷信息发送到分析平台,以使所述分析平台确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
12.根据权利要求11所述的装置,其特征在于,所述检测管理模块为接入所述应用程序的插件。
13.根据权利要求11所述的装置,其特征在于,所述代码扫描模块以依赖包的方式集成在所述应用程序中。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述检测管理模块还用于:所述检测设备获取用户指定的工程构建信息,所述工程构建信息至少包括:构建类型和渠道;
相应地,所述代码扫描模块还用于:
根据所述工程构建信息对所述应用程序进行静态代码扫描,得到所述应用程序的抽象语法树。
15.根据权利要求11所述的装置,其特征在于,所述代码扫描模块还用于:所述检测设备根据所述兼容性问题的规则信息,确定所述兼容性问题对应的特征API和待扫描的节点类型;
所述检测设备对所述抽象语法树中的所述待扫描的节点类型对应的节点对象进行扫描,记录所述特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述检测设备确定所述规则信息与所述特征API的特征数据匹配的兼容性问题对应的兼容性缺陷信息,所述兼容性缺陷信息至少包括所述兼容性问题的标识和所述特征API的特征数据。
16.一种兼容性问题检测装置,其特征在于,包括:
问题库建立模块,用于分析平台建立兼容性问题库,所述兼容性问题库包括多个兼容性问题的描述信息;
接收模块,用于分析平台接收检测设备发送的应用程序潜在的兼容性缺陷信息,所述兼容性缺陷信息至少包括兼容性问题标识;
处理模块,用于分析平台根据所述兼容性问题标识,确定所述兼容性问题库中与所述兼容性缺陷信息对应的兼容性问题,并展示所述与所述兼容性缺陷信息对应的兼容性问题的描述信息。
17.根据权利要求16所述的装置,其特征在于,所述兼容性问题的描述信息至少包括:兼容性问题标识、规则信息、关联对象的信息和修复建议信息;
所述关联对象至少包括与所述兼容性问题相关联的ROM、API级别、API类型和机型。
18.根据权利要求16所述的装置,其特征在于,所述兼容性缺陷信息还包括兼容性问题的特征API的特征数据,所述特征数据至少包括:代码位置、API被调用类、API所属类、API所属方法、API参数类型和API参数值;
所述处理模块还用于:
所述分析平台根据所述兼容性缺陷信息中的兼容性问题的特征API的特征数据,确定所述兼容性问题的问题代码位置;
所述分析平台显示所述兼容性问题的描述信息和问题代码位置。
19.一种兼容性问题检测设备,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
20.一种分析平台,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时实现如权利要求8-10中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8-10中任一项所述的方法。