应用差异检测方法技术

技术编号:39735922 阅读:10 留言:0更新日期:2023-12-17 23:38
本公开提供了一种应用差异检测方法

【技术实现步骤摘要】
应用差异检测方法、装置、设备及存储介质


[0001]本公开涉及计算机
,具体涉及应用程序开发

数据处理等
,可应用于应用差异检测

功能改动结果确定等场景下,尤其涉及一种应用差异检测方法

装置

设备及存储介质


技术介绍

[0002]应用开发者在发布应用程序的新版本之前,一般会检测应用程序的新旧版本之间实现相同功能的执行流程差异

[0003]目前,需要人为地分析旧版本应用在开发时人工记录的执行流程日志

以及新版本应用在开发时人工记录的执行流程日志,从而对新旧版本应用的执行流程进行比对,得到新旧版本应用之间的执行流程差异

[0004]但是,目前这种检测应用程序新旧版本间的执行流程差异的方法,检测效率低下


技术实现思路

[0005]本公开提供了一种应用差异检测方法

装置

设备及存储介质,能够提高执行流程差异检测的效率和准确性

[0006]根据本公开的第一方面,提供了一种应用差异检测方法,包括:
[0007]为第一应用和第二应用嵌入
hook
代码,第一应用与第二应用为同一个应用的不同版本,第一应用与第二应用均包括目标功能,
hook
代码用于获取应用运行时所执行的函数;分别运行第一应用和第二应用,以使第一应用和第二应用分别执行目标功能;通
hook
代码获取第一应用执行目标功能时所执行的第一函数的执行信息,以及获取第二应用执行目标功能时所执行的第二函数的执行信息,执行信息包括函数名称;根据第一函数的执行信息和第二函数的执行信息,得到差异检测结果

[0008]根据本公开的第二方面,提供了一种应用差异检测装置,该装置包括:嵌入模块

执行模块和处理模块

[0009]嵌入模块,用于为第一应用和第二应用嵌入
hook
代码,第一应用与第二应用为同一个应用的不同版本,第一应用与第二应用均包括目标功能,
hook
代码用于获取应用运行时所执行的函数

[0010]执行模块,用于分别运行第一应用和第二应用,以使第一应用和第二应用分别执行目标功能;通过
hook
代码获取第一应用执行目标功能时所执行的第一函数的执行信息,以及获取第二应用执行目标功能时所执行的第二函数的执行信息,执行信息包括函数名称

[0011]处理模块,用于根据第一函数的执行信息和第二函数的执行信息,得到差异检测结果

[0012]根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指
令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面的方法

[0013]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行根据第一方面的方法

[0014]根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据第一方面的方法

[0015]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围

本公开的其它特征将通过以下的说明书而变得容易理解

附图说明
[0016]附图用于更好地理解本方案,不构成对本公开的限定

其中:
[0017]图1为本公开实施例提供的应用差异检测方法的流程示意图;
[0018]图2为本公开实施例提供的应用差异检测方法的另一种流程示意图;
[0019]图3为本公开实施例提供的应用差异检测方法的又一种流程示意图;
[0020]图4为本公开实施例提供的应用差异检测方法的又一种流程示意图;
[0021]图5为本公开实施例提供的应用差异检测装置的组成示意图;
[0022]图6为本公开实施例提供的电子设备的组成示意图

具体实施方式
[0023]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的

因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神

同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述

[0024]应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系

术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量

[0025]应用开发者在发布应用程序的新版本之前,一般会检测应用程序的新旧版本之间实现相同功能的执行流程差异

在检测到差异之后,应用开发者会根据差异判断新版本应用相对于旧版本应用的改动是否符合预期,从而决定对新版本应用进行再次开发或者发布

[0026]例如,检测新版本应用和旧版本应用在实现发红包的功能时的执行流程有无差异,发现差异后,应用开发者会根据差异判断新版本应用是否符合自身预期,从而确定是否需要继续进行应用的开发

[0027]目前,需要人为地分析旧版本应用在开发时人工记录的执行流程日志

以及新版本应用在开发时人工记录的执行流程日志,从而对新旧版本应用的执行流程进行比对,得到新旧版本应用之间的执行流程差异

[0028]示例性地,在
ios
操作系统的应用开发时,开发者会自行记录应用实现某一功能的执行流程,例如在执行流程日志中记录“发红包功能

执行函数
A
,函数
A
执行后函数
B”,表示应用程序在实现发红包功能时的执行流程为先执行函数
A
,等待函数
A
执行完毕后,再执行函数
B。
[0029]但是,目前这种检测应用程序新旧版本间的执行流程差异的方法,验证效率低

[0030]需要人为地对不同版本的应用的同一功能对应的执行流程日志进行逐字对比,查看不同版本间的差异,效率低下

并且,由于执行流程日志为人为记录的,也可能出现记录遗漏

错误等情况,导致检测出的差异不准确

[0031]在此
技术介绍
下,本公开提供了一种应用差异检测方法,可以提高执行流程差异检测的效率和准确性

[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种应用差异检测方法,所述方法包括:为第一应用和第二应用嵌入
hook
代码,所述第一应用与所述第二应用为同一个应用的不同版本,所述第一应用与所述第二应用均包括目标功能,所述
hook
代码用于获取应用运行时所执行的函数;分别运行所述第一应用和所述第二应用,以使所述第一应用和所述第二应用分别执行所述目标功能;通过所述
hook
代码获取所述第一应用执行所述目标功能时所执行的第一函数的执行信息,以及获取所述第二应用执行目标功能时所执行的第二函数的执行信息,所述执行信息包括函数名称;根据所述第一函数的执行信息和所述第二函数的执行信息,得到差异检测结果
。2.
根据权利要求1所述的方法,所述
hook
代码封装于软件开发套件
SDK
中,所述为所述第一应用和所述第二应用嵌入
hook
代码,包括:分别解析所述第一应用和所述第二应用的可执行文件,分别得到所述第一应用运行时加载的第一个执行文件的位置和所述第二应用运行时加载的第一个执行文件的位置;将所述软件开发套件
SDK
分别插入到所述第一应用运行时加载的第一个执行文件的位置

所述第二应用运行时加载的第一个执行文件的位置
。3.
根据权利要求1或2所述的方法,在所述根据所述第一函数的执行信息和所述第二函数的执行信息,得到差异检测结果之前,所述方法还包括:将所述第一函数的执行信息存储于所述第一应用对应的沙盒中;将所述第二函数的执行信息存储于所述第二应用对应的沙盒中
。4.
根据权利要求1‑3任一项所述的方法,所述执行信息还包括线程运行信息,所述线程运行信息用于指示函数是否在主线程中运行
。5.
根据权利要求1‑4任一项所述的方法,所述执行信息还包括执行耗时信息,所述执行耗时信息用于指示函数执行的时长
。6.
根据权利要求1‑5任一项所述的方法,所述根据所述第一函数的执行信息和所述第二函数的执行信息,得到差异检测结果,包括:向服务器发送所述第一函数的执行信息和所述第二函数的执行信息;接收来自所述服务器的差异检测结果
。7.
根据权利要求1‑6任一项所述的方法,在所述根据所述第一函数的执行信息和所述第二函数的执行信息,得到差异检测结果之前,所述方法还包括:确定所述第一应用和所述第二应用对所述目标功能执行完毕
。8.
一种应用差异检测装置,所述装置包括:嵌入模块,用于为第一应用和第二应用嵌入
hook
代码,所述第一应用与所述第二应用为同一个应用的不同版本,所述第一应用与所述第二应用均包括目标功能,所述
hook
代码用于获取应用运...

【专利技术属性】
技术研发人员:贾锟龚佳亮郭彪
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1