CN109460364B - 应用程序检测方法、装置、存储介质及移动终端 - Google Patents
应用程序检测方法、装置、存储介质及移动终端 Download PDFInfo
- Publication number
- CN109460364B CN109460364B CN201811352238.5A CN201811352238A CN109460364B CN 109460364 B CN109460364 B CN 109460364B CN 201811352238 A CN201811352238 A CN 201811352238A CN 109460364 B CN109460364 B CN 109460364B
- Authority
- CN
- China
- Prior art keywords
- preset
- image
- frame length
- image frame
- application program
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例公开了应用程序检测方法、装置、存储介质及移动终端。该方法包括:在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;根据图像帧长数据确定目标图像帧长;实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距,若当前差距超出预设范围,则确定预设应用程序处于卡顿状态。本申请实施例通过采用上述技术方案,可以根据应用程序在一定时间段内的图像帧长数据来确定帧长标准,并根据该标准实时判定当前图像的绘制时长是否出现异常,进而及时准确地检测出应用程序是否处于卡顿状态,方便找出应用程序优化的准确时机。
Description
技术领域
本申请实施例涉及移动终端技术领域,尤其涉及应用程序检测方法、装置、存储介质及移动终端。
背景技术
目前,移动终端已成为多数用户日常生活中必备的电子设备。随着移动终端技术的快速发展,移动终端中的功能也越来越完善,能够安装各种各样的应用程序,可满足用户多样的使用需求。
在移动终端的使用过程中,应用程序的流畅性是用户关注的重点性能之一,尤其是对于一些图像刷新频率比较高的应用程序来说,流畅性更为重要。然而,目前针对应用程序的流畅性的检测方案仍不够完善,需要改进。
发明内容
本申请实施例提供一种应用程序检测方法、装置、存储介质及移动终端,可以优化移动终端中针对应用程序的卡顿检测方案。
第一方面,本申请实施例提供了一种应用程序检测方法,包括:
在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;
根据所述图像帧长数据确定目标图像帧长;
实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
第二方面,本申请实施例提供了一种应用程序检测装置,包括:
帧长数据获取模块,用于在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;
目标帧长确定模块,用于根据所述图像帧长数据确定目标图像帧长;
卡顿检测模块,用于实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的应用程序检测方法。
第四方面,本申请实施例提供了一种移动终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的应用程序检测方法。
本申请实施例中提供的应用程序检测方案,在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据,根据图像帧长数据确定目标图像帧长,实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距,若当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。通过采用上述技术方案,可以根据应用程序在一定时间段内的图像帧长数据来确定帧长标准,并根据该标准实时判定当前图像的绘制时长是否出现异常,进而及时准确地检测出应用程序是否处于卡顿状态,方便找出应用程序优化的准确时机。
附图说明
图1为本申请实施例提供的一种应用程序检测方法的流程示意图;
图2为本申请实施例提供的另一种应用程序检测方法的流程示意图;
图3为本申请实施例提供的又一种应用程序检测方法的流程示意图;
图4为本申请实施例提供的一种应用程序检测装置的结构框图;
图5为本申请实施例提供的一种移动终端的结构示意图;
图6为本申请实施例提供的又一种移动终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本申请实施例提供的一种应用程序检测方法的流程示意图,该方法可以由应用程序检测装置执行,其中该装置可由软件和/或硬件实现,一般可集成在移动终端中。如图1所示,该方法包括:
步骤101、在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据。
示例性的,本申请实施例中的移动终端可包括手机、平板电脑以及笔记本电脑等移动设备。
移动终端中的显示画面通常以帧为单位进行显示,显示画面从生成到显示的大致过程如下,当应用程序绘制完图像后,由图层合成模块将应用程序所绘制的图像合成为待显示的显示画面,再将显示画面送至显示屏进行显示。应用程序在运行过程中,当需要显示的图像内容发生变化时,就需要重新绘制新的图像。
本申请实施例中,预设应用程序可以包括移动终端中安装的任意一个应用程序,也可以是预先设定的应用程序。示例性的,一般画面刷新频率较高的应用程序对流畅度要求较高,更需要进行卡顿检测,所以可以将这类应用程序设定为预设应用程序。例如,游戏应用程序或视频播放类应用程序等,画面刷新频率较高,所以预设应用程序可包括游戏应用程序或视频播放类应用程序。
示例性的,预设时段的时长可根据实际情况设置,本申请实施例不做限定,例如可以根据预设应用程序的画面刷新频率确定。若刷新频率较高,预设时段可以设置得短一些,如刷新频率为60Hz,预设时段可以设置为1秒钟;若刷新频率较低,预设时段可以设置得长一些,如刷新频率为20Hz,预设时段可以设置为2秒钟。另外,预设时段的起点也可以自由设置,例如可以是预设应用程序启动的时刻,或者启动后的任意时刻,预设时段可以以窗口的形式随着时间的推移而移动。
本申请实施例中,一帧图像的帧长可以理解为预设应用程序绘制该图像所花费的时间长度,预设时段内的图像帧长数据可包括预设应用程序在预设时段内所绘制的各帧图像的帧长值。
步骤102、根据所述图像帧长数据确定目标图像帧长。
本申请实施例中,对于根据图像帧长数据确定目标图像帧长的具体方式不做限定。例如,可以将图像帧长数据中包含的数值最大的图像帧长确定为目标图像帧长;也可以计算图像帧长数据中各图像帧长的平均值,将该平均值确定为目标图像帧长等等。
可选的,为了减少偶然因素或卡顿等对确定目标图像帧长的影响,可以先对图像帧长数据进行筛选,例如去掉若干个(如3个)数值较大的图像帧长,随后再根据经过筛选的图像帧长数据确定目标图像帧长。
步骤103、实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
示例性的,目标图像帧长可以理解为预设应用程序在历史时段内的帧长标准,用于衡量接下来的图像帧长是否过长。所述当前图像可以是预设时段之后的任意一个图像。在当前图像的绘制过程中,对绘制时长进行计时,并与目标图像帧长进行实时的比较。在当前图像的已绘制时长达到目标图像帧长后,可以开始计算已绘制时长与目标图像帧长的差值,将该差值与预设范围进行比较。预设范围可以是固定的数值范围(如小于3ms),也可以是根据目标图像帧长动态确定的数值范围(如小于20%*T,其中,T为目标图像帧长)。
当已绘制时长与目标帧长之间的当前差距超出预设范围时,可以认为当前图像的绘制时间相比于历史绘制情况来说过长,预设应用程序处于卡顿状态。
本申请实施例中提供的应用程序检测方法,在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据,根据图像帧长数据确定目标图像帧长,实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距,若当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。通过采用上述技术方案,可以根据应用程序在一定时间段内的图像帧长数据来确定帧长标准,并根据该标准实时判定当前图像的绘制时长是否出现异常,进而及时准确地检测出应用程序是否处于卡顿状态,方便找出应用程序优化的准确时机。
在一些实施例中,所获取预设时段内的图像帧长数据,包括:在预设时段内,检测到所述预设应用程序将所绘制的图像提交到预设图像队列时,记录对应的时间点;计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。这样设置的好处在于,可以从生产者的角度来看待预设应用程序卡顿的问题,将引起卡顿的各种复杂原因进行屏蔽,从而更加高效准确地进行卡顿检测。当预设应用程序完成图像绘制时,一般会将绘制的图像提交到一个图像队列中,所以提交的时刻可以表示应用侧生产帧的过程完成的时刻,后续图层合成模块会将图像队列中的图像进行合成。对于游戏应用程序等刷新频率较高的应用来说,一般绘制图像的过程是连续的,所以每两个相邻的提交时刻之间的时间间隔就可以表示一帧图像的绘制时长,因此,记录提交队列的时间点,并计算每两个相邻时间点的时间差,得到各帧图像的帧长数据。
在一些实施例中,所述检测到所述预设应用程序将所绘制的图像提交到预设图像队列,包括:通过设置于预设库函数的埋点,检测到所述预设应用程序调用所述预设库函数,其中,所述预设库函数用于将图像提交到预设图像队列。这样设置的好处在于,能够准确地记录提交队列的时间点。当预设应用程序想要将所绘制的图像提交到预设图像队列时,一般会调用对应的库函数,可以在该库函数被调用的的位置设置埋点,从而准确地检测该库函数是否被调用,进而记录准确的时间点。
在一些实施例中,所述根据所述图像帧长数据确定目标图像帧长,包括:计算所述图像帧长数据中包含的各图像帧长的第一平均值和标准差;计算所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值;当所述标准差小于预设标准差阈值,且所述第一平均值和所述第二平均值的差值处于预设区间时,将所述第一平均值确定为目标图像帧长。这样设置的好处在于,避免帧率模式切换等因素对确定目标图像帧长的干扰。对于一些应用程序来说,为了让用户根据自身需求拥有灵活的设置权限,可以允许用户进行帧率模式的切换。以游戏应用程序为例来说,若用户对画面要求不高,而追求省电等效果,可以设置低帧率模式,若用户的移动终端电力充足而用户对画面要求较高,那么可以设置高帧率模式。若在预设时段内,发生了帧率模式切换事件,那么图像帧长数据会出现较大的波动,进而会影响目标图像帧长的确定。本申请实施例中,可以计算图像帧长数据中包含的各图像帧长的第一平均值和标准差,并计算最近几个图像帧长(预设数量例如可以根据图像帧长数据中包含的图像帧的总数确定,如该总数为60,预设数量可以是3或5,预设数量也可以是该总数的预设比例值,预设比例如1/12)的第二平均值,若标准差较小,且第一平均值和第二平均值相差不多时,可认为未发生帧率切换事件,可将第一平均值确定为目标图像帧长。
可选的,当标准差大于或等于预设标准阈值,或第一平均值和第二平均值的差值未处于预设区间时,说明可能发生了帧率切换事件,那么可以将第二平均值确定为目标图像帧长。这样设置的好处在于,第二平均值更能够代表帧率模式切换后的图像帧长平均情况。
可选的,所述根据所述图像帧长数据确定目标图像帧长,包括:计算所述图像帧长数据中包含的各图像帧长的标准差,当所述标准差小于预设标准差阈值时,确定未发生帧率切换事件,根据图像帧长数据确定目标图像帧长。例如,计算所述图像帧长数据中包含的各图像帧长的第一平均值,将所述第一平均值确定为目标图像帧长。当标准差大于或等于预设标准差阈值时,确定发生帧率切换事件,根据所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长确定目标图像帧长。例如,计算所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值,将第二平均值确定为目标图像帧长。这样设置的好处在于,能够简化计算步骤,更加快速地确定目标图像帧长。
可选的,所述根据所述图像帧长数据确定目标图像帧长,包括:计算所述图像帧长数据中包含的各图像帧长的第一平均值,计算所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值,当所述第一平均值和所述第二平均值的差值处于预设区间时,将所述第一平均值确定为目标图像帧长,否则,将所述第二平均值确定为目标图像帧长。这样设置的好处在于,进一步简化计算步骤,更加快速地确定目标图像帧长。
所述当前图像为所述预设时段之后的第一帧图像。这样设置的好处在于,在对当前图像进行判定时,能够根据与其最接近的预设时段对应的目标图像帧长来判断绘制时长是否出现异常,使得判断结果更加准确。
在一些实施例中,在确定所述预设应用程序处于卡顿状态之后,还包括:确定所述当前差距对应的目标卡顿置信度;根据所述目标卡顿置信度确定对应的目标卡顿等级。这样设置的好处在于,可以根据当前差距确定当前图像绘制时长超时的严重程度,进而对应于不同的卡顿置信度(又称可信度),随着时间的推移,当前差距也越来越大,对应的卡顿置信度的等级越来越高,存在丢帧的可能性越高,卡顿程度也越严重,从而能够更有针对性的对预设应用程序的运行进行优化。
在一些实施例中,在根据所述目标卡顿置信度确定对应的卡顿等级之后,还包括:根据所述目标卡顿等级控制移动终端采取相应的卡顿处理策略。这样设置的好处在于,能够及时地根据不同的卡顿等级采取不同的卡顿处理措施,例如调整系统资源,减少卡顿所带来的影响。调整系统资源的具体方式不做限定,例如可以提升系统性能。
图2为本申请实施例提供的另一种应用程序检测方法的流程示意图,该方法以游戏应用程序为例,包括如下步骤:
步骤201、检测到预设游戏应用处于图像绘制过程中。
步骤202、在预设时段内,检测到预设游戏应用将所绘制的图像提交到预设图像队列时,记录对应的时间点。
本申请实施例中,对移动终端中安装的操作系统不做限定,为了便于说明,将以安卓(Android)操作系统为例进行说明。在安卓系统中,应用程序绘图渲染完成后都需要将绘图帧通过Binder提交到缓存队列(BufferQueue)中,这个过程通常叫做缓存入列(EnqueueBuffer),提交成功则表示应用侧生产帧的过程完成了,后续则是图层合成模块(SurfaceFlinger)去拿这个应用程序生产出来的帧进行合成,最后上屏显示。本申请通过检测并标记游戏应用Enqueue Buffer完成时的状态为一帧的结束时间点,与上一帧Enqueue Buffer完成的时间相减,即算得当前帧的帧长。
示例性的,检测到预设游戏应用将所绘制的图像提交到预设图像队列可包括:通过设置于预设库函数的埋点,检测到预设游戏应用调用所述预设库函数,其中,所述预设库函数用于将图像提交到预设图像队列。这里的预设库函数可以是Enqueue Buffer库函数,当预设游戏应用将绘制好的图像帧提交到BufferQueue时,会调用Enqueue Buffer库函数,因此,可以在Enqueue Buffer库函数位置设置埋点,进而准确地记录Enqueue Buffer的时间点。
一般的,安卓系统当前图形显示的刷新频率为60Hz,也即每秒中刷新60次,对于游戏应用来说,为了保证良好的游戏体验,一般支持刷新频率为60Hz。可以将待检测的图像帧与最近1秒对应的平均图像帧长进行比较。正常来说,1s内应该有60帧,但是为了减少偶然因素或者卡顿对平均帧长的影响,可以在计算时先去除一定数量的时间较长的帧,如去除最长的3个帧。另外,考虑到即使游戏应用刷新频率达到最高的60Hz,为了保证记录的数据时间上能涵盖最近1s,需要最少N+4帧的数据(其中,N为60),那么需要记录的时间点的个数为N+5。为了保证所记录的时间点至少为N+5,可以适当将预设时段设置的长一些,如1.2s,然后取距离当前时刻最近的N+5个点用于后续的计算。
步骤203、计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。
示例性的,在计算得到N+4帧的帧长后,去掉其中最长的3帧,得到图像帧长数据,即N+1个帧长。
步骤204、计算图像帧长数据中包含的各图像帧长的第一平均值和标准差。
示例性的,计算N+1个帧长的平均值,得到第一平均值(T)。
对于游戏应用来说,一般可以支持多种帧率模式,因此在1s内可能出现帧率模式切换的情况,如用户的人为切换或者游戏应用自动切换等,因此计算的平均帧长在切换的过程中无法及时表现真实情况,会造成较大误差,所以需要引入最近M帧(如M=3)的平均帧长(下文中的第二平均值T’)和标准差(V)。
步骤205、计算图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值。
步骤206、判断标准差是否小于预设标准差阈值,若是,则执行步骤207;否则,执行步骤209。
例如,判断标准差V是否小于k,k为预设标准差阈值,可根据实际情况进行设置。
步骤207、判断第一平均值和第二平均值的差值是否处于预设区间,若是,则执行步骤208;否则执行步骤209。
示例性的,计算(T-T’)/T’的数值,判断该数值是否小于q,q例如可以是30%。预设区间即为小于qT’。
步骤208、将第一平均值确定为目标图像帧长,执行步骤210。
步骤209、将第二平均值确定为目标图像帧长,执行步骤210。
步骤210、实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距。
示例性的,将上一次记录的时间点作为当前图像开始绘制的起点,并开始计时,实时地计算已绘制时长与目标图像帧长之间的差距。
步骤211、判断当前差距是否超出预设范围,若是,则执行步骤212;否则,返回执行步骤210。
示例性的,假设预设范围为小于a,a为目标图像帧长的10%。也就是说,若当前图像在超出目标图像帧长的10%的时间内仍未绘制完毕,可认为预设游戏应用处于卡顿状态。
若未超出可返回步骤210,计算新的当前差距。若检测到当前图像已绘制完毕,且最终的差距未超出预设范围,则说明当前图像的绘制时长符合要求,预设游戏应用暂时未出现卡顿,可以开始进行下一图像的检测。在进行下一图像的检测时,由于时间已向后推移,所以可以重新计算新的目标图像帧长,计算过程和原理与前述步骤类似,此处不再赘述。
步骤212、确定预设游戏应用处于卡顿状态。
本申请实施例提供的应用程序检测方法,在预设游戏应用的图像绘制过程中,根据预设游戏应用每两次提交绘制图像的时间点间隔来确定图像帧长,能够从生产者的角度出发高效准确地确定图像帧长,并计算预设时段内的平均帧长作为衡量下一帧图像的绘制是否出现异常的标准,及时准确发现预设游戏应用出现的卡顿情况,且自适应性强,能够独立检测帧率的动态变化,并进行参数修正,为游戏优化找到准确的时机。
图3为本申请实施例提供的又一种应用程序检测方法的流程示意图,该方法包括:
步骤301、检测到预设游戏应用处于图像绘制过程中。
步骤302、在预设时段内,检测到预设游戏应用将所绘制的图像提交到预设图像队列时,记录对应的时间点。
步骤303、计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。
步骤304、根据图像帧长数据确定目标图像帧长。
示例性的,确定目标图像帧长的具体细节可参考上文中的相关内容,此处不再赘述。
步骤305、实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距。
示例性的,将上一次记录的时间点作为当前图像开始绘制的起点,并开始计时,实时地计算已绘制时长与目标图像帧长之间的差距。
步骤306、判断当前差距是否超出预设范围,若是,则执行步骤307;否则,返回执行步骤305。
示例性的,假设预设范围为小于a,a为目标图像帧长的10%。也就是说,若当前图像在超出目标图像帧长的10%的时间内仍未绘制完毕,可认为预设游戏应用处于卡顿状态。
步骤307、确定预设游戏应用处于卡顿状态。
步骤308、确定当前差距对应的目标卡顿置信度,并根据目标卡顿置信度确定对应的目标卡顿等级。
示例性的,可以设置不同的卡顿置信度,以及不同的卡顿置信度分别对应的差距值和卡顿等级。例如,当前差距处于a和b之间时,对应的卡顿置信度为C1,对应的卡顿等级为一级;当前差距处于b和c之间时,对应的卡顿置信度为C2,对应的卡顿等级为二级;当前差距处于c和d之间时,对应的卡顿置信度为C3,对应的卡顿等级为三级;依次类推,可以设置更多级。其中,例如a为目标图像帧长的10%,b为目标图像帧长的20%,c为目标图像帧长的30%,d为目标图像帧长的40%等。
步骤309、根据目标卡顿等级控制移动终端采取相应的卡顿处理策略。
示例性的,可以根据不同游戏应用对卡顿的敏感程度,在对应的卡顿等级上设置相应的策略,以应用不同级别的卡顿措施。例如,可提高中央处理器(central processingunit,CPU)和/或图像处理器(Graphics Processing Unit,GPU)的频率等,不同的卡顿等级可以对应不同的频率提升幅度。
本申请实施例提供的应用程序检测方法,在预设游戏应用的图像绘制过程中,根据预设游戏应用每两次提交绘制图像的时间点间隔来确定图像帧长,能够从生产者的角度出发高效准确地确定图像帧长,并计算预设时段内的平均帧长作为衡量下一帧图像的绘制是否出现异常的标准,及时发现预设游戏应用出现的卡顿情况,并对卡顿程度进行评估,以采取相应的卡顿处理策略来对系统资源进行及时调整,减少卡顿所带来的影响。
图4为本申请实施例提供的一种应用程序检测装置的结构框图,该装置可由软件和/或硬件实现,一般集成在移动终端中,可通过执行应用程序检测方法来对应用程序的卡顿情况进行检测。如图4所示,该装置包括:
帧长数据获取模块401,用于在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;
目标帧长确定模块402,用于根据所述图像帧长数据确定目标图像帧长;
卡顿检测模块403,用于实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
本申请实施例中提供的应用程序检测装置,在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据,根据图像帧长数据确定目标图像帧长,实时确定当前图像对应的已绘制时长与目标图像帧长之间的当前差距,若当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。通过采用上述技术方案,可以根据应用程序在一定时间段内的图像帧长数据来确定帧长标准,并根据该标准实时判定当前图像的绘制时长是否出现异常,进而及时准确地检测出应用程序是否处于卡顿状态,方便找出应用程序优化的准确时机。
可选的,所获取预设时段内的图像帧长数据,包括:
在预设时段内,检测到所述预设应用程序将所绘制的图像提交到预设图像队列时,记录对应的时间点;
计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。
可选的,所述检测到所述预设应用程序将所绘制的图像提交到预设图像队列,包括:
通过设置于预设库函数的埋点,检测到所述预设应用程序调用所述预设库函数,其中,所述预设库函数用于将图像提交到预设图像队列。
可选的,所述目标帧长确定模块具体用于:
计算所述图像帧长数据中包含的各图像帧长的第一平均值和标准差;
计算所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值;
当所述标准差小于预设标准差阈值,且所述第一平均值和所述第二平均值的差值处于预设区间时,将所述第一平均值确定为目标图像帧长。
可选的,所述目标帧长确定模块还用于:
当所述标准差大于或等于所述预设标准差阈值,或所述第一平均值和所述第二平均值的差值未处于所述预设区间时,将所述第二平均值确定为目标图像帧长。
可选的,所述当前图像为所述预设时段之后的第一帧图像。
可选的,该装置还可包括:
卡顿置信度确定模块,用于在确定所述预设应用程序处于卡顿状态之后,确定所述当前差距对应的目标卡顿置信度;
卡顿等级确定模块,用于根据所述目标卡顿置信度确定对应的目标卡顿等级。
可选的,该装置还可包括:
卡顿处理模块,用于在根据所述目标卡顿置信度确定对应的卡顿等级之后,根据所述目标卡顿等级控制移动终端采取相应的卡顿处理策略。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行应用程序检测方法,该方法包括:
在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;
根据所述图像帧长数据确定目标图像帧长;
实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序检测操作,还可以执行本申请任意实施例所提供的应用程序检测方法中的相关操作。
本申请实施例提供了一种移动终端,该移动终端中可集成本申请实施例提供的应用程序检测装置。图5为本申请实施例提供的一种移动终端的结构示意图。移动终端500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器运行的计算机程序,所述处理器502执行所述计算机程序时实现如本申请实施例所述的应用程序检测方法。
本申请实施例提供的移动终端,可以根据应用程序在一定时间段内的图像帧长数据来确定帧长标准,并根据该标准实时判定当前图像的绘制时长是否出现异常,进而及时准确地检测出应用程序是否处于卡顿状态,方便找出应用程序优化的准确时机。
图6为本申请实施例提供的另一种移动终端的结构示意图,该移动终端可以包括:壳体(图中未示出)、存储器601、中央处理器602(又称处理器,以下简称CPU)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU602和所述存储器601设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器601,用于存储可执行程序代码;所述CPU602通过读取所述存储器601中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:
在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;
根据所述图像帧长数据确定目标图像帧长;
实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态。
所述移动终端还包括:外设接口603、RF(Radio Frequency,射频)电路605、音频电路606、扬声器611、电源管理芯片608、输入/输出(I/O)子系统609、其他输入/控制设备610、触摸屏612、其他输入/控制设备610以及外部端口604,这些部件通过一个或多个通信总线或信号线607来通信。
应该理解的是,图示移动终端600仅仅是移动终端的一个范例,并且移动终端600可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于应用程序检测的移动终端进行详细的描述,该移动终端以手机为例。
存储器601,所述存储器601可以被CPU602、外设接口603等访问,所述存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口603,所述外设接口603可以将设备的输入和输出外设连接到CPU602和存储器601。
I/O子系统609,所述I/O子系统609可以将设备上的输入输出外设,例如触摸屏612和其他输入/控制设备610,连接到外设接口603。I/O子系统609可以包括显示控制器6091和用于控制其他输入/控制设备610的一个或多个输入控制器6092。其中,一个或多个输入控制器6092从其他输入/控制设备610接收电信号或者向其他输入/控制设备610发送电信号,其他输入/控制设备610可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器6092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏612,所述触摸屏612是用户移动终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统609中的显示控制器6091从触摸屏612接收电信号或者向触摸屏612发送电信号。触摸屏612检测触摸屏上的接触,显示控制器6091将检测到的接触转换为与显示在触摸屏612上的用户界面对象的交互,即实现人机交互,显示在触摸屏612上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路605,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路605接收并发送RF信号,RF信号也称为电磁信号,RF电路605将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路605可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路606,主要用于从外设接口603接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器611。
扬声器611,用于将手机通过RF电路605从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片608,用于为CPU602、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
上述实施例中提供的应用程序检测装置、存储介质及移动终端可执行本申请任意实施例所提供的应用程序检测方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用程序检测方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (9)
1.一种应用程序检测方法,其特征在于,包括:
在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;所述预设时段内的图像帧长数据包括预设应用程序在预设时段内所绘制的各帧图像的帧长值;
根据所述图像帧长数据确定目标图像帧长;
实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态;
所述获取预设时段内的图像帧长数据,包括:
在预设时段内,检测到所述预设应用程序将所绘制的图像提交到预设图像队列时,记录对应的时间点;
计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。
2.根据权利要求1所述的方法,其特征在于,所述检测到所述预设应用程序将所绘制的图像提交到预设图像队列,包括:
通过设置于预设库函数的埋点,检测到所述预设应用程序调用所述预设库函数,其中,所述预设库函数用于将图像提交到预设图像队列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述图像帧长数据确定目标图像帧长,包括:
计算所述图像帧长数据中包含的各图像帧长的第一平均值和标准差;
计算所述图像帧长数据中距离当前时刻最接近的预设数量的图像帧长的第二平均值;
当所述标准差小于预设标准差阈值,且所述第一平均值和所述第二平均值的差值处于预设区间时,将所述第一平均值确定为目标图像帧长。
4.根据权利要求3所述的方法,其特征在于,还包括:
当所述标准差大于或等于所述预设标准差阈值,或所述第一平均值和所述第二平均值的差值未处于所述预设区间时,将所述第二平均值确定为目标图像帧长。
5.根据权利要求1-4任一所述的方法,其特征在于,在确定所述预设应用程序处于卡顿状态之后,还包括:
确定所述当前差距对应的目标卡顿置信度;
根据所述目标卡顿置信度确定对应的目标卡顿等级。
6.根据权利要求5所述的方法,其特征在于,在根据所述目标卡顿置信度确定对应的卡顿等级之后,还包括:
根据所述目标卡顿等级控制移动终端采取相应的卡顿处理策略。
7.一种应用程序检测装置,其特征在于,包括:
帧长数据获取模块,用于在预设应用程序进行图像绘制的过程中,获取预设时段内的图像帧长数据;所述预设时段内的图像帧长数据包括预设应用程序在预设时段内所绘制的各帧图像的帧长值;
目标帧长确定模块,用于根据所述图像帧长数据确定目标图像帧长;
卡顿检测模块,用于实时确定当前图像对应的已绘制时长与所述目标图像帧长之间的当前差距,若所述当前差距超出预设范围,则确定所述预设应用程序处于卡顿状态;
所述获取预设时段内的图像帧长数据,包括:
在预设时段内,检测到所述预设应用程序将所绘制的图像提交到预设图像队列时,记录对应的时间点;
计算所记录的每两个相邻时间点的时间差,得到图像帧长数据。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的应用程序检测方法。
9.一种移动终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6任一所述的应用程序检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811352238.5A CN109460364B (zh) | 2018-11-14 | 2018-11-14 | 应用程序检测方法、装置、存储介质及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811352238.5A CN109460364B (zh) | 2018-11-14 | 2018-11-14 | 应用程序检测方法、装置、存储介质及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109460364A CN109460364A (zh) | 2019-03-12 |
CN109460364B true CN109460364B (zh) | 2022-07-19 |
Family
ID=65610452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811352238.5A Active CN109460364B (zh) | 2018-11-14 | 2018-11-14 | 应用程序检测方法、装置、存储介质及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460364B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131903A (zh) * | 2019-12-24 | 2020-05-08 | 中国电信股份有限公司云南分公司 | Iptv高清视频业务用户卡顿监测及实时优化方法 |
CN113096054B (zh) * | 2020-01-09 | 2024-06-25 | 北京小米移动软件有限公司 | 图像帧合成方法、装置及存储介质 |
CN112650465A (zh) * | 2021-01-12 | 2021-04-13 | 北京字节跳动网络技术有限公司 | 终端的控制方法、装置、终端和存储介质 |
CN115129279B (zh) * | 2021-03-25 | 2024-03-15 | 广州视享科技有限公司 | 图像绘制方法、装置、电子设备及计算机存储介质 |
CN113835950B (zh) * | 2021-08-20 | 2024-07-05 | 杭州逗酷软件科技有限公司 | 界面显示卡顿的识别方法、装置、存储介质及电子设备 |
CN114116425A (zh) * | 2021-11-30 | 2022-03-01 | 北京博睿宏远数据科技股份有限公司 | 一种应用程序卡顿的检测方法、装置和存储介质 |
CN115639920B (zh) * | 2021-12-24 | 2023-12-22 | 荣耀终端有限公司 | 绘制方法、电子设备和可读存储介质 |
CN114723866A (zh) * | 2022-03-18 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 卡顿检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045500A1 (zh) * | 2014-09-23 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 一种目标库中目标对象选定方法、装置及系统 |
CN105761255A (zh) * | 2016-02-04 | 2016-07-13 | 网易(杭州)网络有限公司 | 游戏画面卡顿测试方法及装置 |
CN106775403A (zh) * | 2016-12-14 | 2017-05-31 | 北京小米移动软件有限公司 | 获取卡顿信息的方法及装置 |
-
2018
- 2018-11-14 CN CN201811352238.5A patent/CN109460364B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045500A1 (zh) * | 2014-09-23 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 一种目标库中目标对象选定方法、装置及系统 |
CN105761255A (zh) * | 2016-02-04 | 2016-07-13 | 网易(杭州)网络有限公司 | 游戏画面卡顿测试方法及装置 |
CN106775403A (zh) * | 2016-12-14 | 2017-05-31 | 北京小米移动软件有限公司 | 获取卡顿信息的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109460364A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460364B (zh) | 应用程序检测方法、装置、存储介质及移动终端 | |
CN109157839B (zh) | 帧率调控方法、装置、存储介质及终端 | |
US10475413B2 (en) | Method and apparatus for adjusting backlight brightness of screen, and mobile terminal | |
WO2019120027A1 (zh) | 屏幕亮度的调节方法、装置、存储介质及移动终端 | |
CN109218535B (zh) | 智能调节音量的方法、装置、存储介质及终端 | |
CN107450801B (zh) | 一种屏幕显示的控制方法、装置、存储介质及移动终端 | |
US20190370657A1 (en) | Method and apparatus for updating application prediction model, storage medium, and terminal | |
US20200008142A1 (en) | Method for Controlling Terminal, and Terminal | |
CN108648259B (zh) | 图像绘制方法、装置、存储介质及智能终端 | |
CN107402712B (zh) | 一种触摸操作的响应方法、装置、存储介质及终端 | |
EP3584710B1 (en) | Method and apparatus for controlling display of mobile terminal, and storage medium | |
CN107422916B (zh) | 一种触摸操作的响应方法、装置、存储介质及终端 | |
CN107422915A (zh) | 触摸屏的响应控制方法、装置、存储介质及终端 | |
CN108510963A (zh) | 屏幕亮度的调整方法、装置、存储介质及智能终端 | |
CN106817753B (zh) | 一种切换背景灰阶进行省电的方法、装置及移动终端 | |
CN107484231A (zh) | 屏幕参数调整方法、装置、终端及计算机可读存储介质 | |
EP3444717B1 (en) | Volume adjustment method, mobile terminal and storage medium | |
CN107483735A (zh) | 移动终端的音量控制方法、装置及存储介质和移动终端 | |
CN108829320A (zh) | 交互方法、装置、存储介质、移动终端及交互系统 | |
CN106713653B (zh) | 一种音视频的播放控制方法、装置及终端 | |
CN108920070B (zh) | 基于异形显示屏的分屏方法、装置、存储介质及移动终端 | |
CN108076223B (zh) | 任务切换方法、装置、终端设备及存储介质 | |
CN107291302B (zh) | 一种触摸屏的控制方法、装置、存储介质及终端 | |
US11126399B2 (en) | Method and device for displaying sound volume, terminal equipment and storage medium | |
CN108693948B (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 |