CN107341106B - 应用程序兼容性检测方法、开发终端及存储介质 - Google Patents

应用程序兼容性检测方法、开发终端及存储介质 Download PDF

Info

Publication number
CN107341106B
CN107341106B CN201710483186.4A CN201710483186A CN107341106B CN 107341106 B CN107341106 B CN 107341106B CN 201710483186 A CN201710483186 A CN 201710483186A CN 107341106 B CN107341106 B CN 107341106B
Authority
CN
China
Prior art keywords
application programming
programming interface
platform
application
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710483186.4A
Other languages
English (en)
Other versions
CN107341106A (zh
Inventor
张帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201710483186.4A priority Critical patent/CN107341106B/zh
Publication of CN107341106A publication Critical patent/CN107341106A/zh
Application granted granted Critical
Publication of CN107341106B publication Critical patent/CN107341106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Abstract

本发明公开了一种应用程序兼容性检测方法,包括:获取待检测应用程序的接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。本发明还公开了一种开发终端及计算机可读储存介质。本发明能够确定应用程序是否使用了平台厂商的特殊应用程序编程接口,获得应用程序的兼容性情况。

Description

应用程序兼容性检测方法、开发终端及存储介质
技术领域
本发明涉及智能终端技术领域,具体涉及一种应用程序兼容性检测方法、开发终端及计算机可读存储介质。
背景技术
随着智能终端技术的发展,新技术不断涌现,以手机为例,安卓系统的手机厂商在开发手机时,可直接在芯片平台厂商(如高通、联发科等)的基础上进行开发,其中随机预置的应用程序将充分利用手机的硬件性能、特性。换言之,这些应用程序使用了平台厂商唯一提供的特殊应用程序编程接口。从软件开发的角度而言,应用程序使用了一平台厂商唯一提供的特殊应用程序编程接口之后,由于其他平台厂商并不能够提供该特殊应用程序编程接口,导致该应用程序的兼容性较差,不能在其他平台厂商的手机上运行。
发明内容
本发明提供一种应用程序兼容性检测方法、开发终端及计算机可读存储介质,旨在确定应用程序是否使用了平台厂商的特殊应用程序编程接口,获得应用程序的兼容性情况。
为实现上述发明目的,本发明提供一种应用程序兼容性检测方法,该应用程序兼容性检测方法包括:
获取待检测应用程序的接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
可选地,所述获取待检测应用程序的接口使用信息的步骤之前,还包括:
获取各平台厂商的特殊应用程序编程接口信息;
储存获取到的各平台厂商的特殊应用程序编程接口信息。
可选地,所述获取各平台厂商的特殊应用程序编程接口信息的步骤包括:
确定原生安卓开发平台提供的全部应用程序编程接口;
选中一平台厂商,并确定选中平台厂商的开发平台所提供的全部应用程序编程接口;
将二者应用程序编程接口进行差分比较,将比较的结果作为选中的平台厂商的特殊应用程序编程接口信息;
继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
可选地,在选中的平台厂商包括多个开发平台时,所述确定选中平台厂商的开发平台所提供的全部应用程序编程接口的步骤包括:
确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口;
将各开发平台所述提供的全部应用程序编程接口进行合并,并去除重复的应用程序编程接口。
可选地,所述储存获取到的各平台厂商的特殊应用程序编程接口信息的步骤之前,还包括:
在获取到各平台厂商的特殊应用程序编程接口信息时,将各平台厂商的特殊应用程序编程接口信息的文件格式转换为预设文件格式。
可选地,所述预设文件格式包括XML格式、JSON格式以及Excel格式中的至少一种。
可选地,所述获取待检测应用程序的接口使用信息的步骤包括:
对所述待检测应用程序进行二进制扫描,确定所述待检测应用程序使用的全部应用程序编程接口,得到所述接口使用信息。
可选地,所述对所述接口使用信息进行扫描,基于各所述特殊应用程序编程接口信息确定所述待检测应用程序是否使用平台厂商的唯一应用程序编程接口的步骤之后,还包括:
输出包括所述待检测应用程序使用的特殊应用程序编程接口的兼容性报告。
进一步地,本发明还提供一种开发终端,该开发终端包括:
存储有应用程序兼容性检测程序的存储器;
处理器器,配置为执行所述应用程序兼容性检测程序以实现如下步骤:
获取待检测应用程序的接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
进一步地,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有应用程序兼容性检测程序,所述应用程序兼容性检测程序被处理器执行时实现如下步骤:
获取待检测应用程序的接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
本发明在对待检测应用程序进行兼容性检测时,首先获取到包括待检测应用程序所使用的全部应用程序编程接口的接口使用信息,以及获取到包括各平台厂商唯一提供的特殊应用程序编程接口的特殊应用程序编程接口信息,然后对前述接口使用信息中是否包括各特殊应用程序编程接口信息中的特殊应用程序编程接口进行扫描,确定待检测应用程序是否使用平台厂商唯一提供的特殊应用程序编程接口,从而获得待检测应用程序的兼容性情况。
附图说明
图1为实现本发明各个实施例一可选的一个开发终端的硬件结构示意图;
图2为本发明应用程序兼容性检测方法第一实施例的流程示意图;
图3为本发明应用程序兼容性检测方法第二实施例中对原生安卓开发平台以及平台厂商的开发平台所分别提供的全部应用程序编程接口进行差分比较的示意图;
图4为本发明应用程序兼容性检测方法第三实施例中确定选中的平台厂商的,多个开发平台总共提供的全部应用程序编程接口的流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例的主要解决方案是:在对待检测应用程序进行兼容性检测时,首先获取到包括待检测应用程序所使用的全部应用程序编程接口的接口使用信息,以及获取到包括各平台厂商唯一提供的特殊应用程序编程接口的特殊应用程序编程接口信息,然后对前述接口使用信息中是否包括各特殊应用程序编程接口信息中的特殊应用程序编程接口进行扫描,确定待检测应用程序是否使用平台厂商唯一提供的特殊应用程序编程接口,从而获得待检测应用程序的兼容性情况。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的开发终端的结构示意图。
如图1所示,该开发终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口等。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的开发终端结构并不构成对开发终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,在本发明开发终端的一实施例中,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用程序编程接口程序。
在图1所示的开发终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的应用程序兼容性检测程序,并执行以下操作:
获取待检测应用程序的接口使用信息,该接口使用信息包括待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,该特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
基于各平台厂商的特殊应用程序编程接口信息,对待检测应用程序的接口使用信息进行扫描,确定待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
进一步地,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
获取各平台厂商的特殊应用程序编程接口信息;
储存获取到的各平台厂商的特殊应用程序编程接口信息。
进一步地,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
确定原生安卓开发平台提供的全部应用程序编程接口;
选中一平台厂商,并确定选中平台厂商的开发平台所提供的全部应用程序编程接口;
将二者应用程序编程接口进行差分比较,将比较的结果作为选中的平台厂商的特殊应用程序编程接口信息;
继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
进一步地,在选中的平台厂商包括多个开发平台时,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口;
将各开发平台所述提供的全部应用程序编程接口进行合并,并去除重复的应用程序编程接口。
进一步地,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
在获取到各平台厂商的特殊应用程序编程接口信息时,将各平台厂商的特殊应用程序编程接口信息的文件格式转换为预设文件格式。
进一步地,预设文件格式包括XML格式、JSON格式以及Excel格式中的至少一种。
进一步地,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
对待检测应用程序进行二进制扫描,确定待检测应用程序使用的全部应用程序编程接口,得到前述接口使用信息。
进一步地,处理器1001执行存储器1005中存储的应用程序兼容性检测程序时,还执行以下操作:
输出包括待检测应用程序使用的特殊应用程序编程接口的兼容性报告。
进一步的,本发明还提供一种应用程序兼容性检测方法,应用于开发终端,参照图2,在本发明应用程序兼容性检测方法的第一实施例中,该应用程序兼容性检测方法包括:
步骤S10,获取待检测应用程序的接口使用信息,该接口使用信息包括待检测应用程序使用的全部应用程序编程接口;
步骤S20,获取储存的各平台厂商的特殊应用程序编程接口信息,该特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
步骤S30,基于各平台厂商的特殊应用程序编程接口信息,对待检测应用程序的接口使用信息进行扫描,确定待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
为便于软件厂商开发应用程序,Google在其原生安卓开发平台中提供了可供开发人员直接调用的应用程序编程接口,其中,应用程序编程接口可以理解为是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节,能够有效的缩短应用程序的开发周期。
然而,如高通、联发科等芯片平台厂商为了使得应用程序能够充分利用基于其芯片平台开发的移动终端(如手机)的硬件性能以及特性等,对原生安卓开发平台进行了二次开发,并向软件厂商提供二次开发后的开发平台,例如,针对原生安卓开发平台提供某应用程序编程接口,高通根据其某型号处理器硬件特性,对该应用程序编程接口进行修改,得到新的应用程序编程接口,由于该新的应用程序编程接口是与高通的特定型号处理器所适配的,若软件厂商在开发应用程序时使用了该新的应用程序编程接口,那么该软件厂商开发的应用程序在该特定型号处理器的手机上能够正常运行,并充分利用该特定型号处理器的硬件特性,但是将该应用程序安装至联发科平台的手机时,该应用程序将无法正常运行。为了避免这种应用程序不兼容情况的发生,本发明方案应运而生。
在本发明实施例中,开发终端预先获取并存储有各平台厂商的特殊应用程序编程接口信息,在具体实施时,开发终端可以将获取到的各平台厂商的特殊应用程序编程接口信息存储至存储器1005中。其中,特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口,换言之,特殊应用程序编程接口即为一平台厂商所提供的,且其他平台厂商无法提供的应用程序编程接口,具备唯一性。例如,高通在其开发平台提供有适配于骁龙820处理器的A应用程序编程接口,联发科在其开发平台提供有适配于MTK6753处理器的B应用程序编程接口,显然的,联发科无法在其开发平台提供A应用程序编程接口,高通也无法在其开发平台提供B应用程序编程接口,则A应用程序编程接口即高通唯一提供的一个特殊应用程序编程接口,B应用程序编程接口为联发科唯一提供的一个特殊应用程序编程接口。
在需要确定应用程序使用了那些平台厂商的特殊应用程序编程接口,以获得应用程序的兼容性时,可采用本发明所提供的应用程序兼容性检测方法,对待检测应用程序的兼容性进行检测。
在对待检测应用程序的兼容性进行检测时,开发终端首先获取到包括待检测应用程序使用的全部应用程序编程接口的接口使用信息。具体的,步骤S10包括:
对待检测应用程序进行二进制扫描,确定待检测应用程序使用的全部应用程序编程接口,得到接口使用信息。
在具体实施时,开发终端调用Google提供的安卓兼容性测试工具集中的dexdeps工具包,通过该dexdeps工具包对待检测应用程序的应用包进行二进制扫描,获得其应用包中的dex文件中的调用清单,通常的,获得的调用清单为txt文件,其中包括了该待检测应用程序使用的全部应用程序编程接口的接口使用信息。
在获取到待检测应用程序的接口使用信息之后,开发终端进一步获取存储的各平台厂商的特殊应用程序编程接口信息,其中,特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口。例如,我国的手机厂商通常基于高通芯片平台或者联发科芯片平台进行手机的开发,则在获取平台厂商的特殊应用程序编程接口信息时,可获取存储的高通的特殊应用程序编程接口信息,以及获取存储的联发科的特殊应用程序编程接口信息。需要说明的是,在其他实施例中,步骤S10可以在步骤S20之后执行,也即是在获取到各平台厂商的特殊应用程序编程接口信息之后,再获取待检测应用程序的接口使用信息,换言之,步骤S10与步骤S20的执行并无先后顺序。
在获取到待检测应用的接口使用信息,以及获取到各平台厂商的特殊应用程序编程接口信息之后,开发终端基于各平台厂商的特殊应用程序编程接口信息,对待检测应用程序的接口使用信息进行扫描,确定待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
在具体实施时,申请人开发了api-coverage工具,在对待检测应用程序的接口使用信息进行扫描时,开发终端可以调用api-coverage工具,对待检测应用程序的接口使用信息进行扫描。
例如,在获取平台厂商的特殊应用程序编程接口信息时,开发终端获取到高通的特殊应用程序编程接口信息,其中包括高通唯一提供的x个特殊应用程序编程接口,获取到联发科的特殊应用程序编程接口信息,其中包括联发科唯一提供的y个特殊应用程序编程接口,在对待检测应用程序的接口使用信息进行扫描时,即扫描待检测应用程序的接口使用信息中是否包括高通唯一提供的x个特殊应用程序编程接口中的任意一个或多个特殊应用程序编程接口,扫描待检测应用程序的接口使用信息中是否包括联发科唯一的y个特殊应用程序编程接口中的任意一个或多个特殊应用程序编程接口。
在完成对待检测应用程序的接口使用信息的扫描之后,若确定待检测应用程序使用了任一平台厂商的任一特殊应用程序编程接口,则说明待检测应用程序的兼容性较差,无法在非该平台厂商的手机上运行,例如,扫描到待检测应用程序使用了高通唯一提供的A应用程序编程接口,则待检测应用程序显然是无法在联发科平台的手机上运行,兼容性较差。
可选地,为便于开发人员了解待检测应用程序的兼容性,在本实施例中,步骤S30之后,还包括:
输出包括待检测应用程序使用的特殊应用程序编程接口的兼容性报告。
在具体实施时,开发终端在完成对待检测应用程序的接口使用信息的扫描之后,若确定待检测应用程序使用了任一平台厂商的特殊应用程序编程接口,则可输出包括待检测应用程序使用的特殊应用程序编程接口的兼容性报告,该兼容性报告可以XML格式进行输出,或者其他文件格式,本发明不做具体限制。
本发明提供的应用程序兼容性检测方法,在对待检测应用程序进行兼容性检测时,首先获取到包括待检测应用程序所使用的全部应用程序编程接口的接口使用信息,以及获取到包括各平台厂商唯一提供的特殊应用程序编程接口的特殊应用程序编程接口信息,然后对前述接口使用信息中是否包括各特殊应用程序编程接口信息中的特殊应用程序编程接口进行扫描,确定待检测应用程序是否使用平台厂商唯一提供的特殊应用程序编程接口,从而获得待检测应用程序的兼容性情况。
进一步地,基于第一实施例,提出了本发明应用程序兼容性检测方法的第二实施例,在本实施例中,步骤S10之前,还包括:
获取各平台厂商的特殊应用程序编程接口信息;
储存获取到的各平台厂商的特殊应用程序编程接口信息。
需要说明的是,本实施例在前述第一实施例的基础上,增加了获取并储存各平台厂商的特殊应用程序编程接口信息的描述,其他可参照前述第一实施例的相关描述,此处不再赘述。
在本发明实施例中,开发终端首先获取各平台厂商的特殊应用程序编程接口信息。具体的,获取各平台厂商的特殊应用程序编程接口信息的步骤包括:
确定原生安卓开发平台提供的全部应用程序编程接口;
选中一平台厂商,并确定选中平台厂商的开发平台所提供的全部应用程序编程接口;
将二者应用程序编程接口进行差分比较,将比较的结果作为选中的平台厂商的特殊应用程序编程接口信息;
继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
请参照图3,图3为对原生安卓开发平台以及平台厂商的开发平台所分别提供的全部应用程序编程接口进行差分比较的示意图。如图3所示,为进行差分比较,首先就需要获取到原生安卓开发平台提供的全部应用程序编程接口,以及获取到各平台厂商的开发平台所提供的全部应用程序编程接口。
在具体实施时,由于原生安卓开发平台的本身就包含对Javadoc的支持,发明人在现有代码的基础上进行了改造,使得编译“update-api”目标生成时还包含了属性为“hide”的隐藏应用程序编程接口,从而获得原生安卓开发平台提供的全部应用程序编程接口。或者,本领域技术人员可以采用其他技术手段来确定原生安卓开发平台提供的部应用程序编程接口,如使用源码编译时生成的全编译的jar包classes.jar,由于这个jar文件中的应用程序编程接口还没有重新打包,里面被@hide掉的应用程序编程接口并没有被去掉,能够获得所原生安卓开发平台提供的全部应用程序编程接口。
需要说明的是,Google之所以要将一些应用程序编程接口隐藏(指加上@hide标记的public类、方法或常量),其中很大的原因就是安卓系统本身还在不断的进化发展中,而这些隐藏的应用程序编程接口本身可能是不稳定的,使用隐藏应用程序编程接口,意味着应用程序更差的兼容性。
在确定原生安卓开发平台提供的全部应用程序编程接口之后,开发终端选中一平台厂商,由于平台厂商的开发平台是在原生安卓开发平台的基础上二次开发的,开发终端使用确定原生安卓开发平台提供的全部应用程序编程接口相同的方法,即可确定选中的平台厂商的开发平台所提供的全部应用程序编程接口。然后将二者应用程序编程接口进行差分比较,显然的,若平台厂商的开发平台中提供的某应用程序编程接口在原生安卓开发平台提供的全部应用程序编程接口中并不存在,则说明该应用程序编程接口为平台厂商唯一提供的特殊应用程序编程接口,从而可根据差分比较结果得到选中的平台厂商的特殊应用程序编程接口信息。
在确定选中的平台厂商的特殊应用程序编程接口信息之后,继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
进一步地,为便于完成对待检测应用程序的接口使用信息的扫描,在获取到各平台厂商的特殊应用程序编程接口信息时,将各平台厂商的特殊应用程序编程接口信息的文件格式转换为预设文件格式,其中,预设文件格式为扫描工具支持的文件格式,包括但不限于XML格式、JSON格式以及Excel格式。在完成格式转换之后,再将完成格式转换的各平台厂商的特殊应用程序编程接口信息进行存储。
例如,若需要使用前述“api-coverage”工具对待检测应用程序的接口使用信息进行扫描,则需要将获取到的各平台厂商的特殊应用程序编程接口信息转换为XML格式之后进行存储。
可选地,在其他实施例中,获取各平台厂商的特殊应用程序编程接口信息的步骤还包括:
发送特殊应用程序编程获取请求至各平台厂商的预设服务器;
接收各平台厂商的预设服务器返回的各平台厂商的特殊应用程序编程接口信息。
也即是说,各平台厂商的特殊应用程序编程接口信息可由各平台厂商直接提供,并存放在各自的预设服务器中,由开发终端在需要时获取。
进一步地,基于前述第二实施例,提出本发明应用程序兼容性检测方法的第三实施例,在本实施例中,选中的平台厂商包括多个开发平台,前述确定选中平台厂商的开发平台所提供的全部应用程序编程接口的步骤包括:
确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口;
将各开发平台所述提供的全部应用程序编程接口进行合并,并去除重复的应用程序编程接口。
需要说明的是,对于各平台厂商而言,其通常会同时向市面推出多款性能不同的处理器,如高通推出的骁龙660、骁龙630,骁龙820等,而这对于这些不同性能的处理器,高通也会针对性的推出与各处理器适配的开发平台,而这些开发平台所提供的应用程序编程接口也不尽相同。针对于这种情况,本实施例在前述第二实施例的基础上提出了平台厂商包括多个开发平台时的处理方案,以下仅对此进行描述,其他可参照前述实施例,此处不再赘述。
请参照图4,在本发明实施例中,采用确定原生安卓开发平台提供的全部应用程序编程接口相同的方法,确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口,然后将各开发平台所提供的全部应用程序编程接口进行合并,并去除合并后的应用程序编程接口中的重复应用程序编程接口,即可得到该选中的平台厂商的多个开发平台总共提供的全部应用程序编程接口,用于进行差分比较。
此外,本发明还提出一种计算机可读存储介质,该计算机可读存储介质上存储有应用程序兼容性检测程序,该应用程序兼容性检测程序被处理器1001执行时实现如下操作:
获取待检测应用程序的接口使用信息,该接口使用信息包括待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,该特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;
基于各平台厂商的特殊应用程序编程接口信息,对待检测应用程序的接口使用信息进行扫描,确定待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
获取各平台厂商的特殊应用程序编程接口信息;
储存获取到的各平台厂商的特殊应用程序编程接口信息。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
确定原生安卓开发平台提供的全部应用程序编程接口;
选中一平台厂商,并确定选中平台厂商的开发平台所提供的全部应用程序编程接口;
将二者应用程序编程接口进行差分比较,将比较的结果作为选中的平台厂商的特殊应用程序编程接口信息;
继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口;
将各开发平台所述提供的全部应用程序编程接口进行合并,并去除重复的应用程序编程接口。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
在获取到各平台厂商的特殊应用程序编程接口信息时,将各平台厂商的特殊应用程序编程接口信息的文件格式转换为预设文件格式。
进一步地,预设文件格式包括XML格式、JSON格式以及Excel格式中的至少一种。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
对待检测应用程序进行二进制扫描,确定待检测应用程序使用的全部应用程序编程接口,得到前述接口使用信息。
进一步地,前述应用程序兼容性检测程序被处理器1001执行时还实现如下操作:
输出包括待检测应用程序使用的特殊应用程序编程接口的兼容性报告。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (9)

1.一种应用程序兼容性检测方法,其特征在于,所述应用程序兼容性检测方法包括:
获取待检测应用程序的接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;其中,所述特殊应用程序编程接口是各平台厂商对原生安卓开发平台提供的应用程序编程接口进行修改得到;其中,通过编译更新应用程序编程接口函数获取属性为隐藏和公开的应用程序编程接口,以获取到所述原生安卓开发平台提供的全部应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口;
其中,所述获取待检测应用程序的接口使用信息的步骤包括:
通过应用程序编程接口查询工具对所述待检测应用程序进行二进制扫描,确定所述待检测应用程序使用的全部应用程序编程接口,得到所述接口使用信息。
2.根据权利要求1所述的应用程序兼容性检测方法,其特征在于,所述获取待检测应用程序的接口使用信息的步骤之前,还包括:
获取各平台厂商的特殊应用程序编程接口信息;
储存获取到的各平台厂商的特殊应用程序编程接口信息。
3.根据权利要求2所述的应用程序兼容性检测方法,其特征在于,所述获取各平台厂商的特殊应用程序编程接口信息的步骤包括:
确定原生安卓开发平台提供的全部应用程序编程接口;
选中一平台厂商,并确定选中平台厂商的开发平台所提供的全部应用程序编程接口;
将二者应用程序编程接口进行差分比较,将比较的结果作为选中的平台厂商的特殊应用程序编程接口信息;
继续选中其它平台厂商,直至各平台厂商均被选中,获取到各平台厂商的特殊应用程序编程接口信息。
4.根据权利要求3所述的应用程序兼容性检测方法,其特征在于,在选中的平台厂商包括多个开发平台时,所述确定选中平台厂商的开发平台所提供的全部应用程序编程接口的步骤包括:
确定选中的平台厂商的各开发平台所提供的全部应用程序编程接口;
将各开发平台所述提供的全部应用程序编程接口进行合并,并去除重复的应用程序编程接口。
5.根据权利要求2所述的应用程序兼容性检测方法,其特征在于,所述储存获取到的各平台厂商的特殊应用程序编程接口信息的步骤之前,还包括:
在获取到各平台厂商的特殊应用程序编程接口信息时,将各平台厂商的特殊应用程序编程接口信息的文件格式转换为预设文件格式。
6.根据权利要求5所述的应用程序兼容性检测方法,其特征在于,所述预设文件格式包括XML格式、JSON格式以及Excel格式中的至少一种。
7.根据权利要求1-6任一项所述的应用程序兼容性检测方法,其特征在于,所述对所述接口使用信息进行扫描,基于各所述特殊应用程序编程接口信息确定所述待检测应用程序是否使用平台厂商的唯一应用程序编程接口的步骤之后,还包括:
输出包括所述待检测应用程序使用的特殊应用程序编程接口的兼容性报告。
8.一种开发终端,其特征在于,所述开发终端包括:
存储有应用程序兼容性检测程序的存储器;
处理器,配置为执行所述应用程序兼容性检测程序以实现如下步骤:
通过应用程序编程接口查询工具对待检测应用程序进行二进制扫描,确定所述待检测应用程序使用的全部应用程序编程接口,得到所述接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;其中,所述特殊应用程序编程接口是各平台厂商对原生安卓开发平台提供的应用程序编程接口进行修改得到;其中,通过编译更新应用程序编程接口函数获取属性为隐藏和公开的应用程序编程接口,以获取到所述原生安卓开发平台提供的全部应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序兼容性检测程序,所述应用程序兼容性检测程序被处理器执行时实现如下步骤:
通过应用程序编程接口查询工具对待检测应用程序进行二进制扫描,确定所述待检测应用程序使用的全部应用程序编程接口,得到所述接口使用信息,所述接口使用信息包括所述待检测应用程序使用的全部应用程序编程接口;
获取储存的各平台厂商的特殊应用程序编程接口信息,所述特殊应用程序编程接口信息包括平台厂商唯一提供的特殊应用程序编程接口;其中,所述特殊应用程序编程接口是各平台厂商对原生安卓开发平台提供的应用程序编程接口进行修改得到;其中,通过编译更新应用程序编程接口函数获取属性为隐藏和公开的应用程序编程接口,以获取到所述原生安卓开发平台提供的全部应用程序编程接口;
基于各所述特殊应用程序编程接口信息,对所述接口使用信息进行扫描,确定所述待检测应用程序是否使用平台厂商的特殊应用程序编程接口。
CN201710483186.4A 2017-06-21 2017-06-21 应用程序兼容性检测方法、开发终端及存储介质 Active CN107341106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710483186.4A CN107341106B (zh) 2017-06-21 2017-06-21 应用程序兼容性检测方法、开发终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710483186.4A CN107341106B (zh) 2017-06-21 2017-06-21 应用程序兼容性检测方法、开发终端及存储介质

Publications (2)

Publication Number Publication Date
CN107341106A CN107341106A (zh) 2017-11-10
CN107341106B true CN107341106B (zh) 2021-06-15

Family

ID=60221590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710483186.4A Active CN107341106B (zh) 2017-06-21 2017-06-21 应用程序兼容性检测方法、开发终端及存储介质

Country Status (1)

Country Link
CN (1) CN107341106B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134498A (zh) * 2018-02-09 2019-08-16 中移(苏州)软件技术有限公司 一种应用兼容性评估方法及装置
CN109298952A (zh) * 2018-08-27 2019-02-01 优视科技新加坡有限公司 应用程序编程接口的调用方法及其装置
CN110996141B (zh) * 2019-11-05 2022-03-25 北京字节跳动网络技术有限公司 一种直播间中信息的发送方法、装置及电子设备
CN112100058A (zh) * 2020-08-19 2020-12-18 展讯半导体(南京)有限公司 一种接口规范检测方法及其装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819715A (zh) * 2012-08-15 2012-12-12 腾讯科技(深圳)有限公司 Api监控方法和装置
CN104008060A (zh) * 2014-06-18 2014-08-27 腾讯科技(深圳)有限公司 插件与宿主兼容性的检测方法及检测服务器
CN104142881A (zh) * 2013-05-07 2014-11-12 腾讯科技(深圳)有限公司 应用程序编程接口的适配缺陷检测方法及检测装置
CN104932973A (zh) * 2014-03-21 2015-09-23 腾讯科技(深圳)有限公司 一种版本兼容测试方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819715A (zh) * 2012-08-15 2012-12-12 腾讯科技(深圳)有限公司 Api监控方法和装置
CN104142881A (zh) * 2013-05-07 2014-11-12 腾讯科技(深圳)有限公司 应用程序编程接口的适配缺陷检测方法及检测装置
CN104932973A (zh) * 2014-03-21 2015-09-23 腾讯科技(深圳)有限公司 一种版本兼容测试方法和装置
CN104008060A (zh) * 2014-06-18 2014-08-27 腾讯科技(深圳)有限公司 插件与宿主兼容性的检测方法及检测服务器

Also Published As

Publication number Publication date
CN107341106A (zh) 2017-11-10

Similar Documents

Publication Publication Date Title
CN107341106B (zh) 应用程序兼容性检测方法、开发终端及存储介质
CN111625839A (zh) 第三方组件漏洞检测方法、装置、设备及计算机存储介质
CN109558320B (zh) 系统测试方法、装置、系统、设备及计算机可读存储介质
CN111045944A (zh) 回归测试方法、装置、系统及计算机可读存储介质
CN112052169A (zh) 测试管理方法、系统、设备以及计算机可读存储介质
CN108197024B (zh) 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN111026670A (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN111782516A (zh) 一种代码测试方法及装置、存储介质
CN110716874A (zh) 一种国产操作系统硬件兼容性测试方法
CN112579146A (zh) 接口变化的检测方法及装置
CN110543429A (zh) 测试用例调试方法、装置及存储介质
CN108563578B (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN111061637A (zh) 接口测试方法、接口测试装置及存储介质
CN106951236B (zh) 插件的开发方法及装置
CN111124545A (zh) 应用程序启动方法、装置、电子设备及存储介质
CN105162799A (zh) 检验客户端是否为合法移动终端的方法以及服务器
CN111078571B (zh) 模拟响应的测试方法、终端设备及计算机可读存储介质
CN114756183A (zh) 数据打印方法、装置、设备及存储介质
CN111680475B (zh) 一种数据转换方法、装置、电子设备及存储介质
CN113326208A (zh) 接口测试方法及设备
CN112486497A (zh) 编译配置文件的生成方法、装置、电子设备及存储介质
CN109284097B (zh) 实现复杂数据分析的方法、设备、系统及存储介质
CN112541182B (zh) 内核vfs层系统修复方法、装置、设备及存储介质
CN111045724A (zh) 调用链信息的查询方法、装置和可读存储介质
CN112631894A (zh) 代码检测方法、装置、存储介质及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant