一种应用运行状态的检测方法及设备与流程

文档序号:36238216发布日期:2023-12-01 21:25阅读:26来源:国知局
一种应用运行状态的检测方法及设备与流程

本技术涉及电子,尤其涉及一种应用运行状态的检测方法及设备。


背景技术:

1、部分较为大型的游戏应用的开发用到了游戏引擎(如unity3d,ue4等),在这部分游戏应用的运行过程中,会启动相对应的游戏引擎线程(如unitymain、mainthread-ue4)来进行界面绘制。这些线程与界面的绘制相关,当这些线程发生阻塞时,可能会导致画面卡死。

2、然而,相关技术中,终端的系统通常只对应用的主线程进行监控,并在检测到应用的主线程发生阻塞时生成提示信息,并且将这一阻塞导致的故障上报服务器。由于上述游戏引擎线程不属于应用主线程,因此,这些线程发生阻塞时,终端可能无法检测到发生故障问题,导致故障问题上报的遗漏。


技术实现思路

1、本技术实施例提供一种应用运行状态的检测方法及设备,用于解决应用线程的阻塞可能无法被检测到,导致故障问题上报遗漏的问题。

2、为达到上述目的,本技术的实施例采用如下技术方案:

3、第一方面,提供了一种应用运行状态的检测方法,该方法应用于电子设备,电子设备安装有目标应用;该方法包括:

4、目标应用启动。电子设备创建与目标应用对应的监测线程;然后,电子设备通过监测线程添加应用线程监视器实例。在监测线程的运行过程中,电子设备可以通过应用线程监视器实例监控目标应用的第一线程的运行状态。其中,第一线程包括目标应用中除监测线程以外的线程,这样,使电子设备在目标应用的运行过程中,可以通过监测线程对目标应用的线程的运行状态进行监控,包括非应用主线程。其中,上述运行状态包括正常和异常。并且,电子设备可以在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,执行线程异常处理操作。

5、在该方案中,电子设备可以通过监测线程实现监控非应用主线程的运行状态进行监控,从而可以更全面的检测出目标应用的运行状态发生异常的故障情况,从而减少线程异常的检测和上报的遗漏问题。

6、在一些可能的实施方式中,第一线程包括多个渲染线程。在该实施方式中,在监测线程的运行过程中,电子设备具体可以通过应用线程监视器实例分别监控各渲染线程的运行状态。进一步的,电子设备可以在基于应用线程监视器实例确定任意一个渲染线程的运行状态异常的情况下,执行线程异常处理操作。这样,可以更好的监控目标应用各线程的运行状态,减少线程异常遗漏。

7、在一些可能的实施方式中,第一线程包括多个渲染线程。在该实施方式中,在监测线程的运行过程中,电子设备可以分别统计各渲染线程调用绘制接口的次数,然后根据渲染线程调用绘制接口的次数,从渲染线程中确定调用绘制接口次数最多的主渲染线程。之后,电子设备可以通过获取该主渲染线程的运行状态来代表其他渲染线程的运行状态。在该实施方式中,电子设备具体可以在基于应用线程监视器实例确定主渲染线程的运行状态异常的情况下,执行线程异常处理操作。这样,可以减少监测线程的监控线程运行状态的工作量,提高监控线程的运行状态的效率。

8、在一些可能的实施方式中,上述通过应用线程监视器实例获取主渲染线程的运行状态,具体可以包括:通过应用线程监视器实例获取主渲染线程的线程状态参数;然后根据线程状态参数,确定主渲染线程的运行状态。其中,线程状态参数用于指示主渲染线程的线程状态,线程状态包括正在运行状态或者可运行状态、睡眠状态、磁盘休眠状态、停止状态、僵滞状态和消亡状态。在该实施方式中,可以直接通过获取主渲染线程的线程状态,来确定主渲染线程是否运行正常。这样,方便快捷的判断主渲染线程的运行状态,便于在主渲染线程运行异常时执行相应操作。

9、在一些可能的实施方式中,上述根据线程状态参数,确定主渲染线程的运行状态,具体可以包括:若线程状态参数指示主渲染线程的线程状态为磁盘休眠状态、僵滞状态或者消亡状态,则确定主渲染线程的运行状态异常。

10、在一些可能的实施方式中,上述通过应用线程监视器实例获取主渲染线程的运行状态,具体可以包括:通过应用线程监视器实例获取主渲染线程的第一运行时间。然后,电子设备将第一运行时间与上一次获取的主渲染线程的第二运行时间进行比较,确定主渲染线程的运行状态。在该实施方式中,可以通过分析主渲染线程的运行时间是否在持续增长来确定主渲染线程的运行状态,便于在主渲染线程运行异常时执行相应操作。

11、在一些可能的实施方式中,上述将第一运行时间与上一次获取的主渲染线程的第二运行时间进行比较,确定主渲染线程的运行状态,具体可以包括:若第一运行时间与第二运行时间相同,则确定主渲染线程的运行状态异常。

12、在一些可能的实施方式中,上述通过应用线程监视器实例获取主渲染线程的运行状态,具体可以包括:电子设备通过应用线程监视器实例获取主渲染线程调用绘制接口的第一次数。然后电子设备将第一次数与上一次获取的主渲染线程调用绘制接口的第二次数进行比较,确定主渲染线程的运行状态。在该方案中,可以通过分析部分目标应用中主渲染线程调用绘制接口的次数,来确定主渲染线程的运行状态,便于在主渲染线程运行异常时执行相应操作。

13、在一些可能的实施方式中,上述将第一次数与上一次获取的主渲染线程调用绘制接口的第二次数进行比较,确定主渲染线程的运行状态,具体可以包括:若第一次数与第二次数相同,则确定主渲染线程的运行状态异常。

14、在一些可能的实施方式中,上述在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,执行线程异常处理操作,具体可以包括:在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,生成提示信息;提示信息用于提示第一线程的运行状态异常。这样,可以快速的提醒用户执行相应操作。

15、在一些可能的实施方式中,上述在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,执行线程异常处理操作,具体可以包括:在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,触发第一线程的异常上报事件;异常上报事件用于向服务器上报第一线程的运行状态异常。这样,可以便于相关人员收集故障问题,对其进行分析并给出解决方案。

16、在一些可能的实施方式中,上述在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,执行线程异常处理操作,具体可以包括:在基于应用线程监视器实例确定第一线程的运行状态异常的情况下,执行对第一线程的故障恢复操作。这样,可以快速的对第一线程异常尝试恢复。

17、在一些可能的实施方式中,监测线程和应用线程监视器实例位于framework层。并且,电子设备通过应用线程监视器实例监控目标应用的第一线程的运行状态,包括:电子设备通过应用线程监视器实例调用native层的检测算法,监控目标应用的第一线程的运行状态。检测算法位于native层,即检测算法使用的c/c++语言。这样,可以更好达到检测的目的。

18、在一些可能的实施方式中,在监测线程的运行过程中,电子设备通过应用线程监视器实例监控目标应用的第一线程的运行状态,具体可以包括:在监测线程的运行过程中,电子设备周期性的通过应用线程监视器实例检测当前第一线程的运行状态。这样,可以更对第一线程的运行状态进行实时监控,减少线程异常的检测和上报的遗漏问题。

19、第二方面,提供了一种电子设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该电子设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该电子设备执行如上述第一方面中任一项的应用运行状态的检测方法。

20、第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的应用运行状态的检测方法。

21、第四方面,提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项的应用运行状态的检测方法。

22、第五方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存电子设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。

23、其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。

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