一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用程序可交互时间的确定方法、装置、设备及存储介质与流程

2022-02-22 03:22:46 来源:中国专利 TAG:


1.本公开涉及测试技术领域,尤其涉及一种应用程序可交互时间的确定方法、装置、电子设备及存储介质。


背景技术:

2.可交互时间(time to interactive,tti)属于ios和android性能监控领域,是一个比较重要的性能指标,具体是从界面上出现闪屏页之后的首帧画面开始计时,到用户可以流畅操作所需要的时间。对于视频类的应用程序来说,可交互时间可以是从启动后的首帧到用户进入到上下滑的精选页,可以流畅操作而不会发生卡顿的时长。
3.相关技术中,在确定可交互时间时,是从首帧开始(tti的开始点),取连续5s的帧率,如果5s内帧率都大于50,平均值大于55,那么第一秒结束的时间点就是可交互时间的结束时间点,这样得到可交互时间。还可以使用perfdog性能监控工具来进行辅助测试,通过perfdog性能监控工具可以直接查看从打开应用程序到fps(frames per second,每秒传输帧数)稳定为一条直线,那么这条直线的第一个点就是可交互时间的结束时间点。perfdog的优点就是简单易上手,手机只要usb连上电脑,即可监控性能数据。
4.fps都是以秒来计算的,因此天生带有秒级的误差,在性能优化领域以100毫秒为常见优化收益来衡量的话,误差达到了1000毫秒左右。其次用perfdog来辅助测试的话,也发现这个工具有延迟、灵敏度不高、不精确等问题。


技术实现要素:

5.本公开提供一种应用程序可交互时间的确定方法、装置、电子设备及存储介质,以至少解决相关技术中tti误差高、延迟、灵敏度不高、不精确的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种应用程序可交互时间的确定方法,包括:
7.在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时;
8.确定所述连续设定帧数应用程序画面的所有帧耗时的离散程度度量值;
9.若所述每一帧耗时和所述离散程度度量值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
10.若所述每一帧耗时和所述离散程度度量值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,直至所述每一帧耗时和所述离散程度度量值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
11.根据所述开始时间点和所述结束时间点,确定所述可交互时间。
12.可选的,还包括:
13.确定所述连续设定帧数应用程序画面的所有帧耗时的平均值;
14.若所述每一帧耗时和所述离散程度度量值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点,包括:
15.若所述每一帧耗时、所述离散程度度量值和所述平均值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
16.若所述每一帧耗时和所述离散程度度量值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,直至所述每一帧耗时和所述离散程度度量值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点,包括:
17.若所述每一帧耗时、离散程度度量值和平均值不满足预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值和平均值,直至所述每一帧耗时、所述离散程度度量值和平均值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点。
18.可选的,所述预设条件为所述每一帧耗时均小于或等于耗时阈值,所述离散程度度量值小于或等于度量值阈值,且所述平均值小于或等于平均值阈值。
19.可选的,所述预设帧为所述连续设定帧数应用程序画面中帧耗时大于所述耗时阈值的最后一帧的下一帧。
20.可选的,在所述从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时之后,还包括:
21.通过帧耗时浮窗展示所述连续设定帧数应用程序画面的每一帧耗时。
22.可选的,在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时之前,还包括:
23.将确定所述可交互时间的功能代码封装为动态库,将所述动态库注入所述待测试应用程序中,并对所述动态库和待测试应用程序进行重签名。
24.可选的,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时,包括:
25.从可交互时间的开始时间点开始监听所述待测试应用程序调用刷新函数的时间点;
26.根据相邻两次调用刷新函数的时间点,确定对应帧应用程序画面的帧耗时;
27.按照上述帧耗时的确定方式,确定连续设定帧数应用程序画面的每一帧耗时。
28.根据本公开实施例的第二方面,提供一种应用程序可交互时间的确定装置,包括:
29.帧耗时获取模块,被配置为执行在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时;
30.度量值确定模块,被配置为执行确定所述连续设定帧数应用程序画面的所有帧耗时的离散程度度量值;
31.结束点确定模块,被配置为执行若所述每一帧耗时和所述离散程度度量值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;若所述每一帧耗时和所述离散程度度量值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,直至所述每一帧耗时和所述离散程度度量值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
32.可交互时间确定模块,被配置为执行根据所述开始时间点和所述结束时间点,确定所述可交互时间。
33.可选的,所述装置还包括:
34.平均值确定模块,被配置为执行确定所述连续设定帧数应用程序画面的所有帧耗时的平均值;
35.所述结束点确定模块被配置为执行:
36.若所述每一帧耗时、所述离散程度度量值和所述平均值满足所述预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
37.若所述每一帧耗时、离散程度度量值和平均值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值和平均值,直至所述每一帧耗时、所述离散程度度量值和平均值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点。
38.可选的,所述预设条件为所述每一帧耗时均小于或等于耗时阈值,所述离散程度度量值小于或等于度量值阈值,且所述平均值小于或等于平均值阈值。
39.可选的,所述预设帧为所述连续设定帧数应用程序画面中帧耗时大于所述耗时阈值的最后一帧的下一帧。
40.可选的,所述装置还包括:
41.帧耗时展示模块,被配置为执行通过帧耗时浮窗展示所述连续设定帧数应用程序画面的每一帧耗时。
42.可选的,所述装置还包括:
43.动态库注入模块,被配置为执行将确定所述可交互时间的功能代码封装为动态库,将所述动态库注入所述待测试应用程序中,并对所述动态库和待测试应用程序进行重签名。
44.可选的,所述帧耗时获取模块包括:
45.刷新函数调用监听单元,被配置为执行从可交互时间的开始时间点开始监听所述待测试应用程序调用刷新函数的时间点;
46.单帧耗时确定单元,被配置为执行根据相邻两次调用刷新函数的时间点,确定对应帧应用程序画面的帧耗时;
47.连续帧耗时确定单元,被配置为执行按照上述单帧耗时的确定方式,确定连续设定帧数应用程序画面的每一帧耗时。
48.根据本公开实施例的第三方面,提供一种电子设备,包括:
49.处理器;
50.用于存储所述处理器可执行指令的存储器;
51.其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的应用程序可交互时间的确定方法。
52.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的应用程序可交互时间的确定方法。
53.根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现第一方面所述的应用程序可交互时间的确定方法。
54.本公开的实施例提供的技术方案至少带来以下有益效果:
55.本公开实施例通过在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时,确定连续设定帧数应用程序画面的所有帧耗时的离散程度度量值,并在每一帧耗时和离散程度度量值满足预设条件时,将连续设定帧数应用程序画面的第一帧应用程序画面所对应的时间点确定为可交互时间的结束时间点,从而根据开始时间点和结束时间点确定可交互时间,由于通过在每一帧耗时和离散程度度量值不满足预设条件时,从连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数的每一帧耗时,从而误差为预设帧应用程序画面所需的耗时,要远小于1秒的时间,所以减小了可交互时间的误差,而且减少了延迟,解决了灵敏度不高、不精确的问题。
56.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
58.图1是根据一示例性实施例示出的一种应用程序可交互时间的确定方法的流程图;
59.图2是本公开实施例中的帧耗时浮窗的示例图;
60.图3a-图3d是本公开实施例中通过帧耗时浮窗展示可交互时间的计算过程的示例图;
61.图4是使用相关技术中perfdog对iphone6手机中的待测试应用程序测试的数据示例图;
62.图5是使用相关技术中perfdog对iphonexs手机中的待测试应用程序测试的数据示例图;
63.图6是根据一示例性实施例示出的一种应用程序可交互时间的确定装置的框图;
64.图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
65.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
66.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
67.图1是根据一示例性实施例示出的一种应用程序可交互时间的确定方法的流程图,如图1所示,该应用程序可交互时间的确定方法可以用于手机、平板电脑等电子设备中,包括以下步骤。
68.在步骤s11中,在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时。
69.其中,所述开始时间点可以是需要进行测试的某一个时间点,例如对于短视频类的应用程序可以是应用程序启动后所播放视频的首帧所对应的时间点,当然也可以是其他预先设置的时间点。连续设定帧数可以是5秒左右的时间可以刷新的帧数,例如可以是300、400、500等。
70.在待测试应用程序运行过程中,在到达可交互时间的开始时间点时,开始获取连续设定帧数应用程序画面中每一帧应用程序画面的帧耗时,得到连续设定帧数的每一帧耗时。
71.在一个示例性实施例中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时,包括:从可交互时间的开始时间点开始监听所述待测试应用程序调用刷新函数的时间点;根据相邻两次调用刷新函数的时间点,确定对应帧应用程序画面的帧耗时;按照上述帧耗时的确定方式,确定连续设定帧数应用程序画面的每一帧耗时。
72.在获取帧耗时时,可以监听待测试应用程序调用刷新函数的时间点,将相邻两次调用刷新函数的时间点相减,得到相邻两次调用刷新函数时的前一次调用刷新函数的对应帧应用程序画面的帧耗时,使用这样确定帧耗时的方式确定连续设定帧数应用程序画面的每一帧耗时,当然获取到连续设定帧数应用程序画面的每一帧耗时时,有可能每一帧耗时和离散程度度量值不能满足预设条件,所以可以一直获取帧耗时,直至确定每一帧耗时和离散程度度量值满足预设条件时,停止对待测试应用程序调用刷新函数的监听。
73.通过对待测试应用程序调用刷新函数进行监听,可以获取到待测试应用程序每次调用刷新函数的时间点,进而可以得到较为准确的帧耗时。
74.在步骤s12中,确定所述连续设定帧数应用程序画面的所有帧耗时的离散程度度量值。
75.其中,所述离散程度度量值可以是方差,也可以是标准差。
76.对连续设定帧数应用程序画面的所有帧耗时进行统计,确定连续设定帧数应用程序画面的所有帧耗时的平均值,并基于连续设定帧数的每一帧耗时和平均值,确定连续设定帧数应用程序画面的所有帧耗时的方差或标准差,得到连续设定帧数应用程序画面的所
有帧耗时的离散程度度量值。
77.在步骤s13中,判断所述每一帧耗时和所述离散程度度量值是否满足预设条件,若否,则执行步骤s14,若是,则执行步骤s15。
78.其中,所述预设条件可以是每一帧耗时均小于或等于耗时阈值且所述离散程度度量值小于或等于度量值阈值。所述耗时阈值可以根据电影帧单帧耗时确定。电影帧率是18-24,一般是24帧,那么电影帧单帧耗时为:1000ms/24≈41.67ms,电影帧率是一个临界点,低于电影帧率,人眼基本能感觉画面的不连续性,也就是感觉到了卡顿,gpu一般是3重缓冲器(buffer),当前帧已占用一个缓冲器,即剩余2个缓冲器,人眼一般可容忍2帧延迟,两帧电影帧耗时也就是41.67ms*2≈83.33ms,因此,所述耗时阈值可以为84ms。
79.在步骤s14中,从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,之后循环执行步骤s13和步骤s14。
80.在每一帧耗时和离散程度度量值不满足预设条件时,从上次获取到的连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定本次获取的连续设定帧数应用程序画面的所有帧耗时的离散程度度量值,之后循环执行步骤s13和步骤s14,直至每一帧耗时和离散程度度量值满足预设条件。其中,所述预设帧可以是连续设定帧数应用程序画面中的预设的一帧,或者也可以是计算得到的一帧,例如所述预设帧可以为所述连续设定帧数应用程序画面中帧耗时大于所述耗时阈值的最后一帧的下一帧。可交互时间的误差仅为一帧应用程序画面的帧耗时,在待测试应用程序稳定运行可及时响应用户操作时,帧耗时大概为16.67ms,所以误差仅为16.67ms。
81.在步骤s15中,将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点。
82.在每一帧耗时和离散程度度量值满足预设条件时,说明在连续设定帧数应用程序画面对应的一段时间内,每帧的帧耗时都小于或等于耗时阈值,并且每帧的帧耗时也相对波动不大,这时可以将连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为可交互时间的结束时间点。其中,第一帧应用程序画面对应的时间点可以是第一帧应用程序画面对应的起始时间点或者结束时间点。
83.在步骤s16中,根据所述开始时间点和所述结束时间点,确定所述可交互时间。
84.将所述结束时间点减去所述开始时间点,得到所述可交互时间。可交互时间是性能测试的一个重要性能指标,基于可交互时间可以了解到待测试应用程序的性能。
85.本示例性实施例提供的应用程序可交互时间的确定方法,通过在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时,确定连续设定帧数应用程序画面的所有帧耗时的离散程度度量值,并在每一帧耗时和离散程度度量值满足预设条件时,将连续设定帧数应用程序画面的第一帧应用程序画面所对应的时间点确定为可交互时间的结束时间点,从而根据开始时间点和结束时间点确定可交互时间,由于通过在每一帧耗时和离散程度度量值不满足预设条件时,从连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数的每一帧耗时,从而误差为预设帧应用程序画面所需的耗时,要远小于1秒的时间,所以减小了可交互时间的误差,而且减少了延迟,解决了灵敏度不高、不精确的问题。
86.在上述技术方案的基础上,所述方法还包括:确定所述连续设定帧数应用程序画面的所有帧耗时的平均值;
87.若所述每一帧耗时和所述离散程度度量值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点,包括:
88.若所述每一帧耗时、所述离散程度度量值和所述平均值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
89.若所述每一帧耗时和所述离散程度度量值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,直至所述每一帧耗时和所述离散程度度量值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点,包括:若所述每一帧耗时、离散程度度量值和平均值不满足预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值和平均值,直至所述每一帧耗时、所述离散程度度量值和平均值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点。
90.其中,所述预设条件为所述每一帧耗时均小于或等于耗时阈值,所述离散程度度量值小于或等于度量值阈值,且所述平均值小于或等于平均值阈值。所述耗时阈值是根据2帧电影帧单帧耗时确定的,所述平均值阈值是根据所述电影帧单帧耗时确定的,所述耗时阈值例如可以为84ms,所述平均值阈值可以为42ms,所述离散程度度量值可以是方差,度量值阈值可以是10,各个阈值均可以根据需求动态调节。所述预设帧为所述连续设定帧数应用程序画面中帧耗时大于所述耗时阈值的最后一帧的下一帧。
91.在确定可交互时间的结束时间点时,还可以同时计算连续设定帧数应用程序画面的所有帧耗时的平均值,并同时判断每一帧耗时、离散程度度量值和平均值是否满足预设条件,在每一帧耗时、离散程度度量值和平均值同时满足预设条件时,将连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为可交互时间的结束时间点。若连续设定帧数应用程序画面的每一帧耗时、离散程度度量值和平均值不能同时满足预设条件,则可以从连续设定帧数应用程序画面的预设帧开始再次获取连续设定帧数应用程序画面,由于预设帧为连续设定帧数应用程序画面中帧耗时大于耗时阈值的最后一帧的下一帧,则从下一帧开始再次获取连续设定帧数应用程序画面,可以较为快速准确的判断出可交互时间的结束时间点。通过在每一帧耗时和离散程度度量值的基础上同时判断平均值,可以进一步提高确定的可交互时间的准确性。
92.在上述技术方案的基础上,在所述从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时之后,还包括:通过帧耗时浮窗展示所述连续设定帧数应用程序画面的每一帧耗时。
93.其中,所述帧耗时浮窗是悬浮在应用程序画面上的窗口,用于可视化展示每一帧耗时,例如可以是悬浮在应用程序画面的顶层窗口。
94.在获取到每一帧应用程序画面的帧耗时后,及时将该帧耗时展示在帧耗时浮窗
中,帧耗时浮窗的窗口展示区域可以展示所述连续设定帧数的每一帧耗时,在所述帧耗时浮窗中还可以展示帧耗时对应的耗时阈值。
95.图2是本公开实施例中的帧耗时浮窗的示例图,如图2所示,在帧耗时浮窗中可以展示连续设定帧数应用程序画面的每一帧耗时、耗时阈值对应的阈值线、从开始(即所述开始时间点)到当前的总毫秒数、从开始(即所述开始时间点)到当前的总帧数、当前最大帧耗时,当前帧耗时,图2中耗时阈值以84ms为例,连续设定帧数以连续300帧为例,帧耗时浮窗的宽度为300帧,整个浮窗内如果没有高于阈值线的帧耗时,那么第一帧就是可交互时间的结束时间点。
96.图3a-图3d是本公开实施例中通过帧耗时浮窗展示可交互时间的计算过程的示例图。如图3a所示,在tti耗时为5151ms时,浮窗中依然有耗时大于84ms的帧,并且之后可能还会出现更多,此时还无法确定tti的结束时间点。如图3b所示,在tti耗时7961ms时,浮窗中依然有耗时大于84ms的帧,并且之后可能还会出现更多,此时还无法确定tti的结束时间点。如图3c所示,在tti耗时12484ms时,浮窗中最后一次出现耗时大于84ms的帧(该帧称为最后帧),之后再也没有耗时大于84ms的帧了,所以连续300帧能满足条件一定是从这个最后帧的后一帧(可以称为头帧)开始计算,包括头帧在内的300帧都能满足条件,那么头帧就是tti的结束帧,而tti耗时就是当前的这个12484ms左右,不过最终tti耗时会小于12484ms,因为图中可以看到,截图的时间点最后帧之后已经出来了两帧以上。如图3d所示,在最后帧之后再也没有高于阈值线的单帧了,最终计算的结果是12417ms,和上面的分析结果非常接近。其中,最后帧是指最后一次大于耗时阈值的单帧,在它之后就没有大于耗时阈值的单帧了,也有可能没有最后帧,若待测试应用程序从一开始就非常流畅,连续300帧(大概5s左右)都没有大于耗时阈值的单帧,这个时候就不存在最后帧。
97.与图3a-图3d对应的使用相关技术中的测试工具perfdog对相同时段的待测试应用程序进行测试,测试手机为iphone6,perfdog也记录了整个tti阶段的一些数据,但是从曲线上无法分辨哪里是tti的开始时间点,哪里是tti的结束时间点,因此需要人为制造一个开始点,这里采用的方案是首帧渲染结束之后,挂起进程3s,然后恢复,因此在cpu的曲线上可以明显的看到有一个3s左右的地平线,如图4所示,那么从地平线(框1所示)结束这个点开始就是tti的起始时间点,但tti结束时间点在图上没有办法判定,可以先粗略的计算20s,图中框2所示的范围,在这个范围内,perfdog的帧耗时(frame time)和fps都没有明显的波动,换句话说,perfdog认为这20s内画面没有明显的卡顿,但这和在测试过程中录屏的结论不一致,从录屏中明显可以感受到卡顿。可见,perfdog存在灵敏度不高、不精确的问题。同样的,使用手机iphonexs同样进行了相应的测试,如图5所示,数据表明,cpu的地平线不足3s,表明perfdog获取数据有延迟,而且不精准。
98.通过帧耗时浮窗展示连续设定帧数应用程序画面的每一帧耗时,实现了在确定可交互时间的过程中对帧耗时的动态展示。
99.在上述技术方案的基础上,在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时之前,还包括:将确定所述可交互时间的功能代码封装为动态库,将所述动态库注入所述待测试应用程序中,并对所述动态库和待测试应用程序进行重签名。
100.可以将确定可交互时间的功能代码封装为动态库,并使用特定的动态库注入命令
将动态库注入到待测试应用程序的包中,得到一个新包,这时由于更改了包的内容,所以签名也需要更新,根据新包的内容重新生成一个签名标识符,并使用新生成的签名标识符替换待测试应用程序的原有的签名标识符,实现对动态库和待测试应用程序的重签名,重签名之后可以运行在任意手机等终端上。
101.通过将确定可交互时间的功能代码封装为动态库,并使用动态库注入的方式将动态库注入到待测试应用程序中,进行重签名,这样可以对任意待测试应用程序进行测试,而且不用修改待测试应用程序的源代码,也可以保证测试公平公正。
102.图6是根据一示例性实施例示出的一种应用程序可交互时间的确定装置的框图。参照图6,该装置包括帧耗时获取模块61、度量值确定模块62、结束点确定模块63和可交互时间确定模块64。
103.该帧耗时获取模块61被配置为执行在待测试应用程序运行过程中,从可交互时间的开始时间点开始获取连续设定帧数应用程序画面的每一帧耗时;
104.该度量值确定模块62被配置为执行确定所述连续设定帧数应用程序画面的所有帧耗时的离散程度度量值;
105.该结束点确定模块63被配置为执行若所述每一帧耗时和所述离散程度度量值满足预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;若所述每一帧耗时和所述离散程度度量值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值,直至所述每一帧耗时和所述离散程度度量值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
106.该可交互时间确定模块64被配置为执行根据所述开始时间点和所述结束时间点,确定所述可交互时间。
107.可选的,所述装置还包括:
108.平均值确定模块,被配置为执行确定所述连续设定帧数应用程序画面的所有帧耗时的平均值;
109.所述结束点确定模块被配置为执行:
110.若所述每一帧耗时、所述离散程度度量值和所述平均值满足所述预设条件,则将所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点;
111.若所述每一帧耗时、离散程度度量值和平均值不满足所述预设条件,则从所述连续设定帧数的预设帧应用程序画面开始再次获取连续设定帧数应用程序画面的每一帧耗时,并确定离散程度度量值和平均值,直至所述每一帧耗时、所述离散程度度量值和平均值满足所述预设条件,将再次获取的所述连续设定帧数应用程序画面的第一帧应用程序画面对应的时间点确定为所述可交互时间的结束时间点。
112.可选的,所述预设条件为所述每一帧耗时均小于或等于耗时阈值,所述离散程度度量值小于或等于度量值阈值,且所述平均值小于或等于平均值阈值。
113.可选的,所述预设帧为所述连续设定帧数应用程序画面中帧耗时大于所述耗时阈值的最后一帧的下一帧。
114.可选的,所述装置还包括:
115.单帧耗时展示模块,被配置为执行通过帧耗时浮窗展示所述连续设定帧数应用程序画面的每一帧耗时。
116.可选的,所述装置还包括:
117.动态库注入模块,被配置为执行将确定所述可交互时间的功能代码封装为动态库,将所述动态库注入所述待测试应用程序中,并对所述动态库和待测试应用程序进行重签名。
118.可选的,所述帧耗时获取模块包括:
119.刷新函数调用监听单元,被配置为执行从可交互时间的开始时间点开始监听所述待测试应用程序调用刷新函数的时间点;
120.单帧耗时确定单元,被配置为执行根据相邻两次调用刷新函数的时间点,确定对应帧应用程序画面的帧耗时;
121.连续帧耗时确定单元,被配置为执行按照上述帧耗时的确定方式,确定连续设定帧数应用程序画面的每一帧耗时。
122.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
123.图7是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
124.参照图7,电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(i/o)的接口712,传感器组件714,以及通信组件716。
125.处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
126.存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
127.电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
128.多媒体组件708包括在所述电子设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动
动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
129.音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
130.i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
131.传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
132.通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
133.在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述应用程序可交互时间的确定方法。
134.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述应用程序可交互时间的确定方法。可选地,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
135.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现上述的应用程序可交互时间的确定方法。
136.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识
或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
137.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献