SDK兼容性检测方法、装置、设备及可读存储介质与流程

文档序号:15492261发布日期:2018-09-21 20:51阅读:160来源:国知局

本发明主要涉及sdk兼容性检测技术领域,具体地说,涉及一种sdk兼容性检测方法、装置、设备及可读存储介质。



背景技术:

目前手机、平板等移动终端中使用越来越多的sdk(softwaredevelopmentkit,软件开发工具包)来实现各种应用软件(application,app)的多种功能需求,而在实现功能需求时可能因app中所使用各sdk之间兼容性问题而出现app功能故障,如来自不同第三方sdk所存在的兼容性问题,导致不能实现app的某些功能。目前对于sdk之间的兼容性检测,需要逐个将sdk及相应的业务代码删除来进行检测,但删除时可能出现误删、且操作复杂繁琐。



技术实现要素:

本发明的主要目的是提供一种sdk兼容性检测方法、装置、设备及可读存储介质,旨在解决现有技术中通过删除sdk及相应业务代码进行sdk兼容性检测,可能误删且操作复杂繁琐的问题。

为实现上述目的,本发明提供一种sdk兼容性检测方法,所述sdk兼容性检测方法包括以下步骤:

当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定所述应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk;

读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk;

将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

优选地,所述根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性的步骤包括:

当所述检测结果为应用软件功能正常时,判定所述待检测sdk中的目标待检测sdk与其他待检测sdk不兼容,将所述待检测sdk中的目标待检测sdk所具有的特征值添加到提示信息中输出显示;

当所述检测结果为应用软件功能异常时,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤。

优选地,所述当所述检测结果为应用软件功能异常,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤包括:

当所述检测结果为应用软件功能异常时,根据所述功能异常所对应的结果日志文件判断所述功能异常的类型是否发生变化;

若所述功能异常的类型发生变化,则将所述待检测sdk中的目标待检测sdk设定为待确认sdk;

若所述功能异常的类型未发生变化,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤。

优选地,所述将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk的步骤包括:

将具有与特征元素一致特征值的sdk确定为所述应用软件的初始待检测sdk,并获取出现功能异常应用软件所生成的异常日志文件;

根据所述异常日志文件中的信息确定所述应用软件所出现异常功能的类型,并根据所述异常功能类型与sdk对应关系,从所述初始待检测sdk中确定待检测sdk。

优选地,所述根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性的步骤之后包括:

在所述检测结果为应用软件功能异常后,判断所述待检测sdk是否均进行兼容性检测,若所述待检测sdk均进行兼容性检测,则调用所述初始待检测sdk中除所述待检测sdk之外的其他待检测sdk进行兼容性检测。

优选地,所述调用所述初始待检测sdk中除所述待检测sdk之外的其他待检测sdk进行兼容性检测的步骤之后包括:

判断所述其他待检测sdk是否均进行兼容性检测,若所述其他待检测sdk均进行兼容性检测,则输出应用软件中sdk兼容性正常的信息。

优选地,所述读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk的步骤包括:

根据sdk与预设标识符对照表,确定与所述待检测sdk对应的目标预设标识符,并根据所述目标预设标识符判断是否存在与所述待检测sdk对应的伪sdk;

当存在与所述待检测sdk对应的伪sdk时,则调用所述对应的伪sdk;

当不存在与所述待检测sdk对应的为sdk时,则读取所述待检测sdk的头文件,并根据所述头文件中的信息以及所述目标预设标识符生成与所述待检测sdk对应的伪sdk。

此外,为实现上述目的,本发明还提出一种sdk兼容性检测装置,所述sdk兼容性检测装置包括:

确定模块,用于当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk;

读取模块,用于读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk;

检测模块,用于将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

此外,为实现上述目的,本发明还提出一种sdk兼容性检测设备,所述sdk兼容性检测设备包括:存储器、处理器、通信总线以及存储在所述存储器上的sdk兼容性检测程序;

所述通信总线用于实现处理器和存储器之间的连接通信;

所述处理器用于执行所述sdk兼容性检测程序,以实现以下步骤:

当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定所述应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk;

读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk;

将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:

当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定所述应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk;

读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk;

将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

本实施例的sdk兼容性检测方法,当应用软件出现功能异常时,读取应用软件的配置文件,根据配置文件中的信息确定应用软件的特征元素,将特征元素和各sdk的特征值对比,将具有与特征元素一致特征值的sdk确定为应用软件的待检测sdk;读取各待检测sdk的头文件,并根据各头文件中的信息生成与各待检测sdk对应的伪sdk;将各待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据检测结果各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。本方案通过生成与应用软件中待检测sdk对应的伪sdk,使用伪sdk替换原有应用软件中各待检测sdk的目标待检测sdk,并获取替换后对应用软件功能进行检测的检测结果;通过应用软件功能检测的检测结果来判定各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性,避免逐个删除sdk及相应的业务代码,操作简单方便。

附图说明

图1是本发明的sdk兼容性检测方法第一实施例的流程示意图;

图2是本发明的sdk兼容性检测方法第二实施例的流程示意图;

图3是本发明的sdk兼容性检测装置第一实施例的功能模块示意图;

图4是本发明实施例方法涉及的硬件运行环境的设备结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种sdk兼容性检测方法。

请参照图1,图1为本发明sdk兼容性检测方法第一实施例的流程示意图。在本实施例中,所述sdk兼容性检测方法包括:

步骤s10,当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为应用软件的待检测sdk;

本发明的sdk兼容性检测适用于对ios系统所安装的各类应用软件中涉及的多个sdk之间的兼容性检测,应用软件为手机、平板电脑等移动终端上安装的诸如微信、淘宝此类的各种app,其实质为第三方应用程序。sdk用于辅助开发应用软件的相关文档、范例和工具的集合。目前app中的很多功能都是通过接入各种sdk实现,sdk向外提供用于实现各功能的接口,当app需要实现某一功能时,则调用用于实现此功能sdk的接口。通过调用sdk来实现app各种功能的方式,可在很大程度上提高应用软件的开发效率。不同的sdk由不同的开发者开发,当应用软件接入多个来自不同开发者开发的sdk时,此来源不同的sdk可能互相不兼容,而导致应用软件的功能异常。当应用软件出现功能异常时,需要检测是否因所接入sdk之间不兼容而引起,具体地,读取应用软件的配置文件,其中配置文件中配置有应用软件所接入的各个sdk特征元素。而对于开发者开发的sdk,则具有表征此sdk特征的特征值,如对于a、b、c三个sdk,三者的特征值分别为a1、a2,b1、b2、b3和c1、c2、c3。在读取应用软件的配置文件后,根据配置文件中的信息即可确定应用软件所涉及的各个特征元素,将各个特征元素和各个sdk的特征值对比,当各个特征元素中存在与某个sdk特征值一致的特征元素,则说明应用软件中接入了此sdk。如根据配置文件中的信息所确定应用软件的特征元素为a1、a2、c1、c2、c3、d1和d2,因特征元素a1、a2与a所具有的特征值一致,特征元素c1、c2、c3与c所具有的特征值一致,从而可确定应用软件接入了a和c两个sdk。为了确定应用软件中各sdk的兼容性,对其所接入的sdk均需要进行兼容性检测,从而将此具有与特征元素一致特征值的sdk,即应用软件中所接入的sdk确定为应用软件的待检测sdk,以便对其进行检测。

步骤s20,读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk;

进一步地,sdk包括头文件和代码主体,头文件用于对代码主体中所使用的宏、结构体、函数进行定义和声明,说明sdk中所开放的接口;代码主体用于实现sdk功能。在确定应用软件的各待检测sdk之后,读取此各待检测sdk的头文件,并根据头文件中所包括的信息生成与各待检测sdk对应的伪sdk。此伪sdk仅具有待检测sdk的头文件内容,而不包括其代码主体部分,生成时通过预设的基础脚本程序进行。此预设的基础脚本程序为预先设置用于生成头文件的代码,其提供生成头文件的基础框架,此基础框架为各个sdk头文件所共同具有的内容,对于各个sdk的特征信息,以变量的形式嵌入在基础框架中。当读取到各待检测sdk头文件时,将头文件中表征待检测sdk特征的信息输入到基础框架中,替换其中相应的变量,所得到的基础框架为用于生成与待检测sdk相同头文件的代码。将此生成的具有与待检测sdk相同头文件,但不具有代码主体的sdk作为与待检测sdk对应的伪sdk。如某待检测sdk用于实现a接口功能,而实现a接口功能需要在此sdk的头文件中对函数a进行声明,以通过待检测sdk中的代码主体对函数a进行调用实现a接口功能。从而通过读取待检测sdk头文件中的函数a,使用预设的基础脚本程序即可生成包含函数a的头文件,但不包含对函数a进行调用的代码主体的伪sdk。因所生成的伪sdk包括待检测sdk中对接口进行声明的头文件,从应用程序调用的角度来说,此伪sdk和待检测sdk的功能一致;但因伪sdk中没有涉及到实现接口功能的代码主体,其不能真正实现待检测sdk所具有的功能功能。

步骤s30,将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

更进一步地,在生成与各待检测sdk所对应的伪sdk后,通过伪sdk对各待检测sdk进行检测,且对各待检测sdk采用逐一检测的机制。每次针对一个待检测sdk进行检测,将此待检测sdk作为各个待检测sdk中的目标待检测sdk,并用与此目标待检测sdk对应的伪sdk对其进行替换操作,且每替换一次进行一次应用软件功能是否正常的检测。即将各待检测sdk中的目标待检测sdk替换为其对应的伪sdk,并对将目标待检测sdk替换为对应伪sdk后应用软件的功能进行检测,以判断应用软件的功能是否恢复正常。获取此替换操作后对应用软件功能检测的检测结果,以根据检测结果确定经过替换后应用软件的功能是否恢复正常。根据此应用软件是否恢复正常的检测结果,可确定替换的目标待检测sdk与其他尚未替换的待检测sdk的兼容性。若恢复正常则说明应用软件的功能异常由替换的目标待检测sdk的兼容性引起,若未恢复正常则说明不是由替换的目标待检测sdk的兼容性引起。具体地,根据检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性的步骤包括:

步骤s31,当所述检测结果为应用软件功能正常时,则判定所述待检测sdk的目标待检测sdk与其他待检测sdk不兼容,将所述待检测sdk中的目标待检测sdk所具有的特征值添加到提示信息中输出显示;

当将目标待检测sdk替换为伪sdk后,应用软件的功能恢复正常,则说明应用软件的功能异常由替换的目标待检测sdk的兼容性引起,即替换的目标待检测sdk与其他尚未替换的待检测sdk之间存在不兼容,而导致应用软件的功能异常。将此当前替换的目标待检测sdk所具有的特征值添加到提示信息中,并将提示信息输出显示,以便检测人员根据提示信息中的特征值快速确定引起应用软件功能异常的待检测sdk。

步骤s32,当所述检测结果为应用软件功能异常时,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤。

而当将目标待检测sdk替换为伪sdk后,应用软件的功能仍然没有恢复,则说明应用软件的功能异常不是由当前替换的目标待检测sdk的兼容性引起,即当前替换的目标待检测sdk与其他尚未替换的待检测sdk之间兼容。需要检测其他待检测sdk的兼容性,获取下一项待检测sdk作为待检测sdk中新的目标待检测sdk,并将此新的目标待检测sdk替换为与其对应的伪sdk,以判断此新的目标待检测sdk与其他待检测sdk的兼容性,其中下一项待检测sdk可对各待检测sdk进行随机选取,也可在对各待检测sdk进行排序后,按照排序顺序进行选取。如应用软件包括p1、p2和p3三项待检测sdk,与p1、p2和p3所对应的伪sdk分别为q1、q2和q3,替换时先用q1替换p1,使应用软件的待检测sdk为q1、p2和p3,检测此时应用软件的功能是否恢复正常,若恢复正常则说明目标待检测sdkp1与p1、p2之间存在不兼容的问题;若未恢复正常则用q2替换p2,使应用软件的待检测sdk为p1、q2和p3,检测此时应用软件的功能是否恢复正常,若恢复正常则说明目标待检测sdkp2与p1、p3之间存在不兼容的问题;若未恢复正常则进一步用q3替换p3,使应用软件的待检测sdk为p1、p2和q3,检测此时应用软件的功能是否恢复正常,若恢复正常则说明目标待检测sdkp3与p1、p2之间存在不兼容的问题;若未恢复正常则说明目标待检测sdkp1、p2和p3之间不存在兼容性问题。通过逐一替换,确定各个待检测sdk之间的兼容性,使应用软件中sdk兼容性检测更为准确简便。

本实施例的sdk兼容性检测方法,当应用软件出现功能异常时,读取应用软件的配置文件,根据配置文件中的信息确定应用软件的特征元素,将特征元素和各sdk的特征值对比,将具有与特征元素一致特征值的sdk确定为应用软件的待检测sdk;读取各待检测sdk的头文件,并根据各头文件中的信息生成与各待检测sdk对应的伪sdk;将各待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据检测结果各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。本方案通过生成与应用软件中待检测sdk对应的伪sdk,使用伪sdk替换原有应用软件中各待检测sdk的目标待检测sdk,并获取替换后对应用软件功能进行检测的检测结果;通过应用软件功能检测的检测结果来判定各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性,避免逐个删除sdk及相应的业务代码,操作简单方便。

进一步地,在本发明sdk兼容性检测方法另一实施例中,所述当检测结果为应用软件功能异常,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤包括:

步骤s321,当所述检测结果为应用软件功能异常时,根据所述功能异常所对应的结果日志文件判断所述功能异常的类型是否发生变化;

可理解地,在将目标待检测sdk替换为伪sdk后,应用软件的功能没有恢复,应用软件仍然功能异常时,此功能异常可能与目标待检测sdk替换之前的功能异常不一样。如替换之前应用软件的功能m1异常,而替换之后应用软件的功能m2异常,虽然经替换操作,应用软件的功能异常没有恢复,但功能异常的类型发生变化。由此可说明,当前替换的目标待检测sdk对应用软件的功能异常产生影响。为了确定当前替换的目标待检测sdk是否对应用软件的功能异常产生影响,本实施在应用软件功能仍然异常时,根据功能异常所对应的结果日志文件判断功能异常的类型是否发生变化。日志文件为对应用软件在运行过程中所发生事件进行记录的文件,对于应用软件的功能异常相应的也会进行记录,记录的内容包括异常的时间,异常的进程,异常的参数等信息。本实施例中的结果日志文件为在对目标待检测sdk进行替换操作后,检测应用软件仍然异常而生成的日志文件,读取此结果日志文件,根据其中所体现的功能异常信息与进行目标待检测sdk替换操作之前的功能异常信息进行对比,判断两者是否一致来确定功能异常的类型是否发生变化,以确定目标待检测sdk是否对应用软件的功能异常产生影响。

步骤s322,若所述功能异常的类型发生变化,则将所述待检测sdk中的目标待检测sdk设定为待确认sdk;

如果经结果日志文件中的信息确定功能异常的类型发生变化,则说明目标待检测sdk对应用软件的功能异常产生影响。如在包括n1、n2、n3和n4四个待检测sdk功能的应用软件中,其中n1与n3不兼容,n2与n3、n4不兼容,由n1和n2所引起的不兼容共同导致应用软件功能异常,当将n1替换后,应用软件的功能仍然异常,但异常的类型发生变化,即说明当前替换的n1对应用软件的功能异常产生影响,将其设定为待确认sdk。在将当前替换的目标待检测sdk设定为待确认sdk后,还需要向检测人员输出提示信息,以便检测人员对此待确认sdk进一步检测,确认其是否为影响应用软件功能异常。

步骤s323,若所述功能异常的类型未发生变化,则获取下一项待检测sdk作为待检测sdk中的目标待检测sdk,执行将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk的步骤。

而当经结果日志文件中的信息确定功能异常的类型未发生变化,则说明目标待检测sdk不是引起应用软件功能异常的原因,获取下一项待检测sdk作为待检测sdk中新的目标待检测sdk,并将此新的目标待检测sdk替换为与其对应的伪sdk,以判断此新的目标待检测sdk与其他待检测sdk的兼容性。

进一步地,在本发明sdk兼容性检测方法第一实施例的基础上,提出本发明sdk兼容性检测方法第二实施例,在第二实施例中,所述将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk的步骤包括:

步骤s11,将具有与特征元素一致特征值的sdk确定为所述应用软件的初始待检测sdk,并获取出现功能异常应用软件所生成的异常日志文件;

可理解地,因应用软件的不同功能与多个不同的sdk相关,当应用软件出现某一功能异常时,引起异常的原因也应该与此功能相关的sdk有关,而与其他sdk的关联性较弱。从而在检测sdk兼容性导致的应用软件功能异常时,可针对应用功能异常的类型,将与此类型相关的待检测sdk进行首要检测,以提高检测的效率。将具有与特征元素一致特征值的sdk确定为应用软件的初始待检测sdk,即将应用软件所接入的所有sdk设为应用软件的初始待检测sdk,需要从此所有的初始待检测sdk中确定与应用软件功能异常相关性较强的待检测sdk。进一步地,获取出现功能异常应用软件所生成的异常日志文件,此异常日志文件中记录有待检测sdk替换之前,应用软件出现功能异常的事件信息,包括异常进程、异常线程、异常参数等,以便根据此异常日志文件中的各事件信息确定与功能异常相关的待检测sdk。

步骤s12,根据所述异常日志文件中的信息确定所述应用软件所出现异常功能的类型,并根据所述异常功能类型与sdk对应关系,从所述初始待检测sdk中确定待检测sdk。

进一步地,在获取出现功能异常应用软件所生成的日常日志文件后,根据此异常日志文件中所体现的功能异常信息确定应用软件所出现异常功能的类型,如应用软件某一功能z,而此功能与线程k相关,当应用软件出现功能异常,且异常日志文件的信息中包括的异常线程中涉及k时,则可确定此异常功能的类型为z。因应用软件中各种功能与多个sdk相关,从而在确定异常功能的类型后,根据异常功能类型与sdk对应关系,即与功能相关的多个sdk,从初步待检测sdk中确定待检测sdk。如初始待检测sdk包括f1、f2、f3、f4和f5,对于功能z,与其相关的sdk包括f2、f3和f4,当功能z出现异常时,根据异常功能z与f2、f3和f4的对应关系,从初始待检测sdkf1、f2、f3、f4和f5中确定待检测sdkf2、f3和f4,以对待检测sdkf2、f3和f4进行首要检测,提高检测效率。

进一步地,请参照图2,在本发明sdk兼容性检测方法第二实施例的基础上,提出本发明sdk兼容性检测方法第三实施例,在第三实施例中,所述根据检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性的步骤之后包括:

步骤s40,在所述检测结果为应用软件功能异常后,判断所述待检测sdk是否均进行兼容性检测,若所述待检测sdk均进行兼容性检测,则调用所述初始待检测sdk中除所述待检测sdk之外的其他待检测sdk进行兼容性检测。

可理解地,在对从初始待检测sdk中所确定的待检测sdk进行检测后,可能待检测sdk不存在不兼容的问题,即将各待检测sdk逐一替换为与待检测sdk对应的伪sdk后,应用软件功能仍然异常,此时则需要对初始待检测sdk中的其他待检测sdk进行检测。在对其他待检测sdk进行检测之前需要确保待检测sdk均检测完成,对于经过检测的待检测sdk分配检测完成标识符,在检测结果仍然为应用软件功能异常后,判断各个待检测sdk是否均携带有检测完成标识符,即判断所有待检测sdk均进行兼容性检测。当所有待检测sdk均携带有检测完成标识符,待检测sdk均进行兼容性检测,则调用初始待检测sdk中除待检测sdk之外的其他待检测sdk进行兼容性检测,以确定是否由其他待检测sdk的不兼容性而导致应用软件的功能异常。在对其他待检测sdk进行兼容性检测后,也可能存在其他待检测sdk也不存在不兼容的问题,即说明应用软件的功能异常不是由其对接的sdk之间的兼容性引起,需要输出兼容性正常的信息。具体地,在调用初始待检测sdk中除待检测sdk之外的其他待检测sdk进行兼容性检测的步骤之后包括:

步骤s50,判断所述其他待检测sdk是否均进行兼容性检测,若所述其他待检测sdk均进行兼容性检测,则输出应用软件中sdk兼容性正常的信息。

进一步地,在调用其他待检测sdk进行兼容性检测,将各其他待检测sdk逐一替换为与其他待检测sdk对应的伪sdk后,若应用软件的功能仍然不正常,则判断其他待检测sdk是否均进行兼容性检测,即此其他待检测sdk均携带有检测完成标识符。当均携带有检测完成标识符,其他待检测sdk均进行兼容性检测时,则说明应用软件的功能异常不是其对接的sdk之间的兼容性引起,输出应用软件中sdk兼容性正常的信息,表征应用软件中各sdk之间的兼容性良好。

进一步地,在本发明sdk兼容性检测方法第一、第二或第三实施例的基础上,提出本发明sdk兼容性检测方法第四实施例,在第四实施例中,所述读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与各所述待检测sdk对应的伪sdk的步骤包括:

步骤s21,根据sdk与预设标识符对照表,确定与所述待检测sdk对应的目标预设标识符,并根据所述目标预设标识符判断是否存在与所述待检测sdk对应的伪sdk;

可理解地,因移动终端中安装有多个应用软件,各个应用软件均可能出现功能异常,而不同应用软件之间可能使用同样的sdk。对于具有同样sdk的应用软件,在先出现功能异常的应用软件会针对此sdk生成包含头文件的伪sdk,在后出现功能异常的应用软件同样也会针对此sdk生成包含头文件的伪sdk,而出现两个具有同样头文件的伪sdk,生成伪sdk的工作重复,浪费系统资源且降低检测效率。为了避免重复生成伪sdk,设置有sdk与预设标识符对照表,用不同的预设标识符表征不同的sdk,对照表中预设标识符与sdk具有一一对应性。在确定应用软件中的待检测sdk后,根据此sdk与预设标识符对照表,确定与待检测sdk对应的目标预设标识符,并根据目标预设标识符中是否存在与待检测sdk对应的伪sdk。如对照表中sdks1与预设标识符e1对应,s2与预设标识符e2对应,当待检测sdk为s1时则其对应的目标预设标识符为e1。对于其他应用软件在先所出现的功能异常,均会生成伪sdk,此伪sdk携带有其对应待检测sdk所具有的预设标识符。从而对于当前的待检测sdk,根据其目标预设标识符判断是否已经存在与此当前待检测sdk对应的伪sdk,即判断在先出现功能异常的应用软件是否已经生成与当前待检测sdk对应的伪sdk。

步骤s22,当存在与所述待检测sdk对应的伪sdk时,则调用所述对应的伪sdk;

当根据目标预设标识符确定存在与待检测sdk对应的伪sdk时,则说明在先出现功能异常的应用软件也具有此待检测sdk,且针对此待检测sdk生成了包含头文件的伪sdk,从而调用此对应的伪文件,进行替换检测,避免再次针对待检测sdk生成伪文件。

步骤s23,当不存在与所述待检测sdk对应的为sdk时,则读取所述待检测sdk的头文件,并根据所述头文件中的信息以及所述目标预设标识符生成与所述待检测sdk对应的伪sdk。

当根据目标预设标识确定不存在与待检测sdk对应的伪sdk时,则说明在先出现功能异常的应用软件不具有此待检测sdk,没有针对此待检测sdk生成包含头文件的伪sdk,从而读取待检测sdk的头文件,根据头文件中的信息以及目标预设标识符生成与待检测sdk对应的伪sdk。通过目标预设标识符标识此伪sdk,便于判断后续出现的功能异常对应的待检测sdk是否存在伪sdk。

此外,请参照图3,本发明提供一种sdk兼容性检测装置,在本发明sdk兼容性检测装置第一实施例中,所述sdk兼容性检测装置包括:

确定模块10,用于当应用软件出现功能异常时,读取所述应用软件的配置文件,根据所述配置文件中的信息确定应用软件的特征元素,将所述特征元素和各sdk的特征值对比,并将具有与特征元素一致特征值的sdk确定为所述应用软件的待检测sdk;

读取模块20,用于读取各所述待检测sdk的头文件,并根据各所述头文件中的信息生成与所述各待检测sdk对应的伪sdk;

检测模块30,用于将各所述待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据所述检测结果确定各所述待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。

本实施例的sdk兼容性检测装置,当应用软件出现功能异常时,确定模块10读取应用软件的配置文件,根据配置文件中的信息确定应用软件的特征元素,将特征元素和各sdk的特征值对比,将具有与特征元素一致特征值的sdk确定为应用软件的待检测sdk;读取模块20读取各待检测sdk的头文件,并根据各头文件中的信息生成与各待检测sdk对应的伪sdk;检测模块30将各待检测sdk中的目标待检测sdk替换为对应的伪sdk,获取将所述目标待检测sdk替换为对应的伪sdk时应用软件功能检测的检测结果,并根据检测结果各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性。本方案通过生成与应用软件中待检测sdk对应的伪sdk,使用伪sdk替换原有应用软件中各待检测sdk的目标待检测sdk,并获取替换后对应用软件功能进行检测的检测结果;通过应用软件功能检测的检测结果来判定各待检测sdk中的目标待检测sdk与其他待检测sdk的兼容性,避免逐个删除sdk及相应的业务代码,操作简单方便。

其中,上述sdk兼容性检测装置的各虚拟功能模块存储于图4所示sdk兼容性检测设备的存储器1005中,处理器1001执行sdk兼容性检测程序时,实现图3所示实施例中各个模块的功能。

参照图4,图4是本发明实施例方法涉及的硬件运行环境的设备结构示意图。

本发明实施例sdk兼容性检测设备可以是pc(personalcomputer,个人计算机),也可以是智能手机、平板电脑、电子书阅读器、便携计算机等终端设备。

如图4所示,该sdk兼容性检测设备可以包括:处理器1001,例如cpu(centralprocessingunit,中央处理器),存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram(randomaccessmemory,随机存取存储器),也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,该sdk兼容性检测设备还可以包括用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi(wirelessfidelity,无线宽带)模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

本领域技术人员可以理解,图4中示出的sdk兼容性检测设备结构并不构成对sdk兼容性检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及sdk兼容性检测程序。操作系统是管理和控制sdk兼容性检测设备硬件和软件资源的程序,支持sdk兼容性检测程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与sdk兼容性检测设备中其它硬件和软件之间通信。

在图4所示的sdk兼容性检测设备中,处理器1001用于执行存储器1005中存储的sdk兼容性检测程序,实现上述sdk兼容性检测方法各实施例中的步骤。

本发明提供了一种可读存储介质,所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述sdk兼容性检测方法各实施例中的步骤。

还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1