CN117271191A - 分析应用程序异常的方法及装置 - Google Patents

分析应用程序异常的方法及装置 Download PDF

Info

Publication number
CN117271191A
CN117271191A CN202311277863.9A CN202311277863A CN117271191A CN 117271191 A CN117271191 A CN 117271191A CN 202311277863 A CN202311277863 A CN 202311277863A CN 117271191 A CN117271191 A CN 117271191A
Authority
CN
China
Prior art keywords
application program
parameters
operating system
preset
analyzing
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.)
Pending
Application number
CN202311277863.9A
Other languages
English (en)
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.)
Chongqing Seres New Energy Automobile Design Institute Co Ltd
Original Assignee
Chongqing Seres New Energy Automobile Design Institute 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 Chongqing Seres New Energy Automobile Design Institute Co Ltd filed Critical Chongqing Seres New Energy Automobile Design Institute Co Ltd
Priority to CN202311277863.9A priority Critical patent/CN117271191A/zh
Publication of CN117271191A publication Critical patent/CN117271191A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种分析应用程序异常的方法及装置,该方法包括:在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件;通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面;基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像;当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态;获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因。本申请的技术可以分析模拟用户操作过程中的截取的图像来确定是否出现黑屏,当出现黑屏时可以通过分析操作系统的运行信息来快速定位黑屏的原因。

Description

分析应用程序异常的方法及装置
技术领域
本申请涉及资源扩容技术领域,尤其涉及一种分析应用程序异常的方法及装置。
背景技术
基于操作系统的车辆应用程序是指在车辆中运行的软件程序,它们通过车辆的操作系统控制和管理车辆的各种功能和界面。这些应用程序可以包括导航系统、娱乐系统、车辆控制系统等。在车辆应用程序的开发和调试阶段,稳定性问题是一个重要的考虑因素。稳定性问题指的是应用程序在运行过程中出现的错误、崩溃或异常情况,导致应用程序无法正常运行或用户无法进行操作。
例如,黑屏是一种常见的稳定性问题,特指应用程序运行过程中出现纯黑界面,用户无法进行任何操作。黑屏问题严重影响用户的正常界面操作,同时也可能导致严重的安全隐患。例如,如果黑屏发生在导航系统中,驾驶员将无法获取导航指引,增加了发生交通事故的风险。解决黑屏问题是非常重要的,特别是在应用程序开发和调试阶段。如果这些问题没有被及时解决,而出现在量产车上,将会给车辆制造商和用户带来巨大的损失。但是定位黑屏的根本原因是非常困难的,即使经验丰富的应用开发者,也没有一套完整的解决体系。
发明内容
有鉴于此,本申请实施例提供了一种分析应用程序异常的方法及装置,以解决现有技术中因应用程序黑屏导致的技术问题。
本申请实施例的第一方面,提供了一种分析应用程序异常的方法,包括:在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件;通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面;基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像;当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态;获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因。
本申请实施例的第二方面,提供了一种分析应用程序异常的装置,包括:模拟模块,用于在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件;响应模块,用于通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面;获取模块,用于基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像;确定模块,用于当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态;分析模块,用于获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因。
本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面提供的方法的步骤。
本申请实施例的第四方面,提供了一种计可读存储介质,该可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面提供的方法的步骤。
本申请实施例与现有技术相比存在的有益效果至少包括:本申请实施例在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件,并通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面,然后基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像,当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态,获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因,以此方式可以通过分析模拟用户操作过程中的截取的图像来确定是否出现黑屏,当出现黑屏时可以通过分析操作系统的运行信息来快速定位黑屏的原因。这样可以提高应用程序的稳定性和安全性,还改善了用户体验,以此方式能够快速定位和解决问题,提升开发效率,有助于减少量产车上黑屏问题的出现,降低潜在的损失和风险。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可以应用本发明实施例的技术方案的示例性系统架构的示意图;
图2是本申请实施例的一种分析应用程序异常的方法的流程图;
图3是本申请实施例的另一种分析应用程序异常的方法的流程图;
图4是本申请实施例的对操作系统的运行信息进行分析的步骤的流程图;
图5是本申请实施例的另一对操作系统的运行信息进行分析的步骤的流程图;
图6是本申请实施例的再一对操作系统的运行信息进行分析的步骤的流程图;
图7是本申请实施例的再一种分析应用程序异常的方法的流程图;
图8是本申请实施例的一种分析应用程序异常的装置的框图;
图9是本申请实施例的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
图1示出了可以应用本发明实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构可以包括操作系统10、测试工具11、服务模块12、存储模块13。其中,服务模块12可以包括监控模块、转储模块和分析模块。
在一些实施例中,操作系统10可以是安装在车辆的车端设备的安卓系统。测试工具11可以是压力测试工具monkey,用于向操作系统10发送模拟用户的操作,例如按键输入事件、触摸屏输入事件、手势输入事件等等。
在一些实施例中,监控模块用于监控安装在操作系统10的应用程序展示的图形用户界面,并按照定时任务调用截取命令,以截取图形用户界面对应的图像,并确定该图像是否为黑色图像。
在一些实施例中,转储模块用于通过转储命令(例如,dump命令)将模拟用户操作过程中的应用程序相关的操作系统10运行信息存储到车端设备的指定文件。
在一些实施例中,分析模块用于在确定截取图像为黑色图像时获取系统运行信息,并对其进行分析,以确定应用程序发生黑屏的原因。存储模块13用于存储黑屏原因,以便于后续开发人员针对黑屏原因有针对性的优化该应用程序。
通过上述系统架构可以在开发调试阶段定位应用程序不稳定导致的黑屏现象。例如,操作系统10启动后,先开始跑测试工具11(一般在夜间跑monkey),再启动服务模块12,该服务模块12可以实时监控中控屏幕是否出现黑屏,当监控到黑屏出现后,通过dump命令转储相关系统运行信息,然后对系统运行信息进行分析,得出黑屏的真正原因,并写到分析结果文档。以此方式可以通过分析模拟用户操作过程中的截取的图像来确定是否出现黑屏,当出现黑屏时可以通过分析操作系统的运行信息来快速定位黑屏的原因。这样可以提高应用程序的稳定性和安全性,还改善了用户体验,以此方式能够快速定位和解决问题,提升开发效率,有助于减少量产车上黑屏问题的出现,降低潜在的损失和风险。
图2是本申请实施例的一种分析应用程序异常的方法的流程图,本申请实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如上述车端设备。
如图2所示,分析应用程序异常的方法包括步骤S210至步骤S250。
在步骤S210中,在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件。
在步骤S220中,通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面。
在步骤S230中,基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像。
在步骤S240中,当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态。
在步骤S250中,获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因。
该方法可以在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件,并通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面,然后基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像,当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态,获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因,以此方式可以通过分析模拟用户操作过程中的截取的图像来确定是否出现黑屏,当出现黑屏时可以通过分析操作系统的运行信息来快速定位黑屏的原因。这样可以提高应用程序的稳定性和安全性,还改善了用户体验,以此方式能够快速定位和解决问题,提升开发效率,有助于减少量产车上黑屏问题的出现,降低潜在的损失和风险。
在一些实施例中,在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件。例如,选择适合车辆操作系统的测试工具,通常可以选择专门设计用于汽车应用程序测试的工具,例如,monkey。monkey可以提供模拟用户操作的功能,并能够与操作系统进行通信。根据测试需求和目标,配置测试工具的参数和设置。例如选择要模拟的用户操作类型(如点击、滑动、输入等),设置操作的频率和持续时间,以及指定要测试的应用程序或界面。使用测试工具发送模拟用户操作事件到操作系统。这些事件可以是通过命令、API调用或模拟输入设备(如触摸屏或物理按钮)来触发的,然后向操作系统发送模拟的触摸事件来模拟用户在屏幕上的点击操作。
在一些实施例中,在基于截屏命令截取当前图形用户界面之前,方法还包括:启动监控黑屏模块,按照预设时间间隔,生成定时任务;根据定时任务,调用用于截取图形用户界面的截屏命令。例如,在车辆的操作系统中,启监控模块,该模块的作用是定期检测操作系统的状态,并监测是否存在黑屏问题。在监控模块中,设置一个预设的时间间隔,用于生成定时任务。这个时间间隔可以根据具体需求和系统特点进行设置,例如每隔5秒、10秒、20秒等。根据预设的时间间隔,监控模块可以在每个时间间隔结束时生成一个定时任务。当生成定时任务,监控模块可以调用用于截取图形用户界面的截屏命令。该截屏命令可以是监控模块提供的截屏功能,截屏命令的目的是获取当前图形用户界面的截图。当监控模块调用截屏命令时,操作系统可以执行相应的截屏操作,例如捕获当前显示的屏幕内容,并将其保存为图像文件。当完成截屏操作,监控模块可以获取截屏结果,该截屏结果可以是一个图像文件或图像数据。监控模块可以对截屏结果进行处理,例如分析图像内容、提取特征信息等。通过以上步骤,监控模块可以按照预设的时间间隔生成定时任务,并调用截屏命令来获取图形用户界面的截图。这样可以周期性地获取操作系统的界面状态,并用于监测是否存在黑屏问题。如果截屏结果显示当前界面为黑屏,监控模块可以将该信息记录下来,并触发相应的处理措施,例如将该黑屏信息发送至服务模块。
图3是本申请实施例的另一种分析应用程序异常的方法的流程图,如图3所示,在确定应用程序处于异常状态之前,上述方法还包括步骤S310至步骤S320。
在步骤S310中,从当前图形用户界面对应的图像中提取多个像素点,确定各个像素点的像素值。
在步骤S320中,根据各个像素点的像素值,确定多个像素点中黑色像素点的占比。
在步骤S330中,当多个像素点中黑色像素点的占比大于预设阈值时,确定当前图形用户界面对应的图像为黑色图像。
该方法可以从当前图形用户界面对应的图像中提取多个像素点,确定各个像素点的像素值,根据各个像素点的像素值,确定多个像素点中黑色像素点的占比,当多个像素点中黑色像素点的占比大于预设阈值时,确定当前图形用户界面对应的图像为黑色图像,以此方式可以快速准确的确定出当前截取的图像是否为黑色图像。
在一些实施例中,上述当前图形用户界面对应的图像可以是每隔20秒截取中控屏幕内容。例如,通过使用截屏命令或相关的截屏API,每隔20秒截取中控屏幕的内容,并将其保存为PNG格式的图片文件。
基于前述实施例,从当前图形用户界面对应的图像中提取多个像素点,确定各个像素点的像素值。根据各个像素点的像素值,确定多个像素点中黑色像素点的占比,当多个像素点中黑色像素点的占比大于预设阈值时,确定当前图形用户界面对应的图像为黑色图像。例如,读取截取的PNG图片文件,并提取图像中的像素点,然后解析其中的像素值。对于每个像素点,获取其RGB值,即红、绿、蓝三个分量的取值。对于解析的每个像素点,判断其RGB值是否为全零(即红、绿、蓝三个分量的取值都为0)。统计所有符合条件的黑色像素点的数量,并将其除以图片的总像素点数,得到黑色像素点的占比。如果黑色像素点的占比大于预设阈值(例如,99%),则判断当前截取的图片为黑色图片,进而判断此时应用程序处于黑屏状态。否则,判断当前截取的图片为非黑色图片,表示应用程序处于非黑屏状态。通过以上步骤,可以每隔20秒截取中控屏幕内容并解析图片,然后根据黑色像素点的占比来判断当前屏幕是否处于黑屏状态。以此方式可以帮助检测黑屏问题,并及时采取相应的处理措施,例如记录日志、发出警报等,以确保车辆系统的正常运行。
在一些实施例中,在获取操作系统的运行信息之前,方法还包括:在通过测试工具模拟用户操作的过程中,获取转储命令;根据转储命令,将应用程序相关的操作系统运行信息存储到对应的预设文件。例如,使用测试工具模拟用户在应用程序中的各种操作,例如点击按钮、输入文本、导航菜单等。这些操作旨在模拟真实用户在应用程序中的交互行为。在测试工具中,设置监听或触发机制,以便在特定事件发生时获取转储命令,用于触发将应用程序相关的操作系统运行信息转储到文件。当获取到转储命令,并根据该转储命令将应用程序相关的操作系统运行信息存储到对应的预设文件中。这些操作系统运行信息可以包括Activities(例如,页面活动参数)、window(例如,窗口参数)、surfaceFlinger(例如,图层合成参数)、top(例如,CPU参数)。上述预设文件可以是事先定义好的文件,用于存储应用程序相关的操作系统运行信息。例如,设置预设文件的路径和命名规则,以便将信息存储到正确的文件中,这样根据转储命令可以将操作系统运行信息存储到对应的预设文件。具体地,将Activities存储到页面活动参数的预设文件,将window存储到窗口参数的预设文件,将surfaceFlinger存储到图层合成参数的预设文件,以及将top存储到CPU参数的预设文件。通过以上步骤,可以在模拟用户操作的过程中获取转储命令,并将应用程序相关的操作系统运行信息存储到对应的预设文件中,这样方便后续分析和调试应用程序的运行情况,定位问题和改进性能。
图4是本申请实施例的对操作系统的运行信息进行分析的步骤的流程图,如图4所示,上述步骤S250可以包括步骤S410和步骤S420。
在步骤S410中,解析图层合成参数的预设文件,以从预设文件中获取应用程序的图层合成参数。
在步骤S420中,遍历应用程序的图层合成参数,当应用程序的图层合成参数与预设图层合成参数不同,将应用程序的图层合成参数定位成应用程序存在异常的原因,并将原因写入分析文件。
该方法可以解析图层合成参数的预设文件,获取应用程序的图层合成参数,并遍历这些参数以与预设图层合成参数进行比较。当图层合成参数不同于预设图层合成参数时,可以定位到应用程序存在异常的原因,并将其写入分析文件,这样可以帮助开发人员快速定位图层合成参数异常,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
在一些实施例中,解析图层合成参数的预设文件,以从预设文件中获取应用程序的图层合成参数,然后遍历应用程序的图层合成参数,当应用程序的图层合成参数与预设图层合成参数不同,将应用程序的图层合成参数定位成应用程序存在异常的原因,并将原因写入分析文件。例如,图层合成参数的预设文件,该文件包含了应用程序的图层合成参数的预设值。通过适当的方式(例如应用程序的API、配置文件或其他途径),获取当前应用程序的图层合成参数。针对每个窗口参数,可以搜索图层合成参数的预设文件中的FrameRate(Explicit)(Seamlessness)[Focused]字段。该字段表示帧率、无缝性和焦点状态的值。检查Frame Rate(Explicit)(Seamlessness)[Focused]字段中最后一个方括号中的值。如果该值不是"Focused",表明当前没有应用界面处于焦点状态,这可能意味着HWC合成图层存在异常。如果焦点状态不是"Focused",将异常原因写入分析文件。这个异常原因可以指示HWC合成图层存在异常。分析文件可以是文本文件、日志文件或其他适合的格式,用于系统开发人员定位HWC中的问题环节。如果焦点状态是“Focused”,则说明黑屏原因与HWC没有直接关系。可能存在其他原因导致黑屏,需要进一步排查和分析。以此方式可以解析图层合成参数的预设文件,获取当前应用程序的图层合成参数,并根据Frame Rate(Explicit)(Seamlessness)[Focused]参数来判断HWC合成图层是否存在异常。如果焦点状态不是"Focused",则可以将异常原因写入分析文件,以便系统开发人员定位HWC中的问题环节。如果焦点状态是“Focused”,则说明黑屏原因与HWC没有直接关系,需要进一步排查其他可能的原因,这样可以帮助开发人员快速定位HWC合成图层异常,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
图5是本申请实施例的另一对操作系统的运行信息进行分析的步骤的流程图,如图5所示,当上述应用程序的图层合成参数与上述预设图层合成参数相同时,上述步骤S250可以还可以包括步骤S510和步骤S520。
在步骤S510中,解析窗口参数的预设文件,以从预设文件中获取应用程序的窗口参数。
在步骤S520中,遍历应用程序的窗口参数,当应用程序的窗口参数与预设窗口参数不同,将应用程序的窗口参数定位成应用程序存在异常的原因,并将原因写入分析文件。
该方法中当上述应用程序的图层合成参数与上述预设图层合成参数相同时,还可以继续解析窗口参数的预设文件,获取应用程序的窗口参数,并遍历这些参数以与预设窗口参数进行比较。当窗口参数不同于预设窗口参数时,可以定位到应用程序存在异常的原因,并将其写入分析文件,以此方式可以帮助开发人员快速定位窗口参数异常,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
在一些实施例中,解析窗口参数的预设文件,以从预设文件中获取应用程序的窗口参数,然后遍历应用程序的窗口参数,当应用程序的窗口参数与预设窗口参数不同,将应用程序的窗口参数定位成应用程序存在异常的原因,并将原因写入分析文件。例如,当通过分析图层合成参数没有定位到黑屏的原因之后,还可以继续读取窗口参数的预设文件,该文件包含了应用程序的窗口参数的预设值。通过适当的方式(例如应用程序的API、配置文件或其他途径),获取当前应用程序的窗口参数。对于每个窗口参数,可以搜索窗口参数的预设文件中的当前窗口状态值。具体来说,可以搜索“mDrawState=”后面的值。如果找到对应的值,可以判断窗口的显示流程状态。根据搜索到的状态值,可以判断窗口的显示流程状态。例如,如果状态值为“HAS_DRAWN”,表示窗口已经完成了显示流程,即窗口管理服务(WMS)已经完成了该窗口的显示控制流程。如果状态值为“NO_SURFACE”或“DRAW_PENDING”,则表示WMS尚未完成显示控制流程。根据窗口的显示流程状态,可以将相应的原因写入文件。例如,如果状态值为“NO_SURFACE”或“DRAW_PENDING”,可以将原因写入文件,指示WMS尚未完成显示控制流程。以此方式可以读取窗口参数的预设文件,获取当前应用程序的窗口参数,并搜索预设文件中的当前窗口状态。根据搜索到的状态值,可以判断窗口的显示流程状态,并将相应的原因写入文件。这种方法可以帮助开发人员了解窗口的显示流程状态,以便进行问题排查和调试。
图6是本申请实施例的再一对操作系统的运行信息进行分析的步骤的流程图,如图6所示,当上述应用程序的图层合成参数与上述预设图层合成参数相同且上述应用程序的窗口参数与上述预设窗口参数相同时,上述步骤S250还可以包括步骤S610和步骤S620。
在步骤S610中,解析页面活动参数的预设文件,以从预设文件中获取应用程序的页面活动参数。
在步骤S620中,遍历应用程序的页面活动参数,当应用程序的页面活动参数与预设页面活动参数不同,将应用程序的页面活动参数定位成应用程序存在异常的原因,将原因写入分析文件。
该方法中当上述应用程序的图层合成参数与上述预设图层合成参数相同且上述应用程序的窗口参数与上述预设窗口参数相同时,还可以继续解析页面活动参数的预设文件,获取应用程序的页面活动参数,并遍历这些参数来检测异常。当检测到异常,将异常的原因写入分析文件,以便开发团队进行进一步的问题排查和修复,以此方式可以帮助发现应用程序在页面活动方面的异常情况,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
在一些实施例中,解析页面活动参数的预设文件,以从预设文件中获取应用程序的页面活动参数,然后遍历应用程序的页面活动参数,当应用程序的页面活动参数与预设页面活动参数不同,将应用程序的页面活动参数定位成应用程序存在异常的原因。例如,当通过分析图层合成参数和窗口参数没有定位到黑屏原因之后,还可以继续读取页面活动参数的预设文件,该文件包含了应用程序的页面活动参数的预设值。通过适当的方式(例如应用程序的API、配置文件或其他途径),获取当前应用程序的页面活动参数。对于每个页面活动参数,进行遍历和搜索操作。
在遍历过程中,搜索名为topResumedActivity的参数,并获取其对应的值。如果该值为“ActivityRecord{36ccb20 u0 com.example.helloworld/.MainActivity}”,则表示当前栈顶的Activity是com.example.helloworld/.MainActivity。在找到topResumedActivity的值后,继续查找名为mNumInterestingWindows的参数,并获取其对应的值。这个值表示栈顶Activity需要绘制的窗口数。如果mNumInterestingWindows的值等于1,则表明应用程序的MainActivity已经绘制完毕。如果mNumInterestingWindows的值不为1,则表明应用程序的页面绘制存在异常。将com.example.helloworld/.MainActivity应用程序的页面绘制存在异常的信息写入分析文件。以此方式可以从页面活动参数的预设文件中获取页面活动参数,并遍历这些参数以搜索特定值。通过判断topResumedActivity的值和mNumInterestingWindows的值,可以确定应用程序的MainActivity是否绘制完毕以及页面绘制是否存在异常。将异常信息写入分析文件,以便开发人员定位页面绘制异常的原因并进行修复,这样可以帮助开发人员快速定位页面绘制异常,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
图7是本申请实施例的再一种分析应用程序异常的方法的流程图,如图7所示,上述方法还包括步骤S710和步骤S720。
在步骤S710中,当页面活动参数与预设页面活动参数相同、窗口参数与预设窗口参数相同且图层合成参数与预设图层合成参数相同,解析CPU参数的预设文件,以从预设文件中获取车端的CPU参数。
在步骤S720中,当车端的CPU参数小于预设CPU参数时,将车端的CPU参数定位成应用程序存在异常的原因,并将原因写入分析文件。
该方法可以解析CPU参数的预设文件,获取车端的CPU参数,并将车端的CPU参数与预设CPU参数进行比较。当车端的CPU参数小于预设CPU参数时,可以定位到应用程序存在异常的原因,并将其写入分析文件,以此方式可以帮助开发人员快速判断车端的CPU参数是否存在异常,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
在一些实施例中,当页面活动参数与预设页面活动参数相同、窗口参数与预设窗口参数相同且图层合成参数与预设图层合成参数相同,解析CPU参数的预设文件,以从预设文件中获取车端的CPU参数,当车端的CPU参数小于预设CPU参数时,将车端的CPU参数定位成应用程序存在异常的原因,并将原因写入分析文件。例如,若前面三个文件(即页面活动参数的预设文件、窗口参数的预设文件、以及图层合成参数的预设文件)都没定位到异常原因,此时读取CPU参数的预设文件,通过适当的方式(例如应用程序的API、配置文件或其他途径),获取车端的CPU参数,可以获取应用程序占用车端的CPU占用率。这个占用率可以表示系统中CPU的使用情况。对于每个CPU参数,可以搜索CPU参数的预设文件中的idle值,即CPU的空闲时间。idle值表示CPU的剩余量。将搜索到的idle值与40%进行比较。如果idle值小于40%,则说明系统负载非常高,可能导致了页面绘制异常。如果idle值小于40%,将异常原因写入分析文件。这个异常原因可以指示系统负载过高导致的页面绘制异常。如果idle值大于40%,则说明系统负载可能不是因为CPU负载过高引起的页面绘制异常,以此方式可以读取CPU参数的预设文件,获取应用程序占用车端的CPU占用率,并判断系统负载是否过高引起页面绘制异常。如果idle值小于40%,可以将异常原因写入分析文件,以指示系统负载过高导致的异常。如果idle值大于40%,则需要进一步排查其他可能的原因,以此方式可以帮助开发人员快速判断系统负载情况,并提供有关异常原因的详细信息,以便进行及时的修复和改进。
图8是本申请实施例的一种分析应用程序异常的装置的框图,如图8所示,分析应用程序异常的装置800包括模拟模块810、响应模块820、获取模块830、确定模块840和分析模块850。
具体地,模拟模块810,用于在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件。
响应模块820,用于通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面。
获取模块830,用于基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像。
确定模块840,用于当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态。
分析模块850,用于获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因。
该分析应用程序异常的装置800可以在车辆的操作系统启动之后,通过测试工具向操作系统发送模拟用户操作的事件,并通过操作系统的应用程序响应模拟用户操作的事件,并在应用程序上展示对应的图形用户界面,然后基于截屏命令截取当前图形用户界面,以获取当前图形用户界面对应的图像,当当前图形用户界面对应的图像为黑色图像时,确定应用程序处于异常状态,获取操作系统的运行信息,并对操作系统的运行信息进行分析,以定位应用程序存在异常的原因,以此方式可以通过分析模拟用户操作过程中的截取的图像来确定是否出现黑屏,当出现黑屏时可以通过分析操作系统的运行信息来快速定位黑屏的原因。这样可以提高应用程序的稳定性和安全性,还改善了用户体验,以此方式能够快速定位和解决问题,提升开发效率,有助于减少量产车上黑屏问题的出现,降低潜在的损失和风险。
在一些实施例中,在基于截屏命令截取当前图形用户界面之前,分析应用程序异常的装置800还用于:启动监控黑屏模块,按照预设时间间隔,生成定时任务;根据定时任务,调用用于截取图形用户界面的截屏命令。
在一些实施例中,在确定应用程序处于异常状态之前,分析应用程序异常的装置800还用于:从当前图形用户界面对应的图像中提取多个像素点,确定各个像素点的像素值;根据各个像素点的像素值,确定多个像素点中黑色像素点的占比;当多个像素点中黑色像素点的占比大于预设阈值时,确定当前图形用户界面对应的图像为黑色图像。
在一些实施例中,在获取操作系统的运行信息之前,分析应用程序异常的装置800还用于:在通过测试工具模拟用户操作的过程中,获取转储命令;根据转储命令,将应用程序相关的操作系统运行信息存储到对应的预设文件。
在一些实施例中,分析模块850被配置为:解析图层合成参数的预设文件,以从预设文件中获取应用程序的图层合成参数;遍历应用程序的图层合成参数,当应用程序的图层合成参数与预设图层合成参数不同,将应用程序的图层合成参数定位成应用程序存在异常的原因,并将原因写入分析文件。
在一些实施例中,当应用程序的图层合成参数与预设图层合成参数相同时,分析模块850还可以被配置为:解析窗口参数的预设文件,以从预设文件中获取应用程序的窗口参数;遍历应用程序的窗口参数,当应用程序的窗口参数与预设窗口参数不同,将应用程序的窗口参数定位成应用程序存在异常的原因,并将原因写入分析文件。
在一些实施例中,当应用程序的图层合成参数与预设图层合成参数相同且窗口参数与预设窗口参数相同时,分析模块850还可以被配置为:解析页面活动参数的预设文件,以从预设文件中获取应用程序的页面活动参数;遍历应用程序的页面活动参数,当应用程序的页面活动参数与预设页面活动参数不同,将应用程序的页面活动参数定位成应用程序存在异常的原因,将原因写入分析文件。
在一些实施例中,分析应用程序异常的装置800还用于:当页面活动参数与预设页面活动参数相同、窗口参数与预设窗口参数相同且图层合成参数与预设图层合成参数相同,解析CPU参数的预设文件,以从预设文件中获取车端的CPU参数;当车端的CPU参数小于预设CPU参数时,将车端的CPU参数定位成应用程序存在异常的原因,并将原因写入分析文件。
图9是本申请实施例的一种电子设备的结构示意图,如图9所示,该实施例的电子设备900包括:处理器910、存储器920以及存储在该存储器920中并且可在处理器910上运行的计算机程序930。处理器910执行计算机程序930时实现上述各个方法实施例中的步骤。或者,处理器910执行计算机程序930时实现上述各装置实施例中各模块的功能。
电子设备900可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备900可以包括但不仅限于处理器910和存储器920。本领域技术人员可以理解,图9仅仅是电子设备900的示例,并不构成对电子设备900的限定,可以包括比图示更多或更少的部件,或者不同的部件。
处理器910可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储器920可以是电子设备900的内部存储单元,例如,电子设备900的硬盘或内存。存储器920也可以是电子设备900的外部存储设备,例如,电子设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。存储器920还可以既包括电子设备900的内部存储单元也包括外部存储设备。存储器920用于存储计算机程序以及电子设备所需的其它程序和数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质(例如,计算机可读存储介质)中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种分析应用程序异常的方法,其特征在于,所述方法包括:
在车辆的操作系统启动之后,通过测试工具向所述操作系统发送模拟用户操作的事件;
通过所述操作系统的应用程序响应所述模拟用户操作的事件,并在所述应用程序上展示对应的图形用户界面;
基于截屏命令截取当前图形用户界面,以获取所述当前图形用户界面对应的图像;
当所述当前图形用户界面对应的图像为黑色图像时,确定所述应用程序处于异常状态;
获取所述操作系统的运行信息,并对所述操作系统的运行信息进行分析,以定位所述应用程序存在异常的原因。
2.根据权利要求1所述的方法,其特征在于,在所述基于截屏命令截取当前图形用户界面之前,所述方法还包括:
启动监控黑屏模块,按照预设时间间隔,生成定时任务;
根据所述定时任务,调用用于截取图形用户界面的截屏命令。
3.根据权利要求1所述的方法,其特征在于,在所述确定所述应用程序处于异常状态之前,所述方法还包括:
从所述当前图形用户界面对应的图像中提取多个像素点,确定各个像素点的像素值;
根据各个像素点的像素值,确定所述多个像素点中黑色像素点的占比;
当所述多个像素点中黑色像素点的占比大于预设阈值时,确定所述当前图形用户界面对应的图像为黑色图像。
4.根据权利要求1所述的方法,其特征在于,在所述获取所述操作系统的运行信息之前,所述方法还包括:
在通过所述测试工具模拟用户操作的过程中,获取转储命令;
根据所述转储命令,将所述应用程序相关的操作系统运行信息存储到对应的预设文件。
5.根据权利要求4所述的方法,其特征在于,获取所述操作系统的运行信息,并对所述操作系统的运行信息进行分析,以定位所述应用程序存在异常的原因包括:
解析图层合成参数的预设文件,以从所述预设文件中获取所述应用程序的图层合成参数;
遍历所述应用程序的图层合成参数,当所述应用程序的图层合成参数与预设图层合成参数不同,将所述应用程序的图层合成参数定位成所述应用程序存在异常的原因,并将所述原因写入分析文件。
6.根据权利要求5所述的方法,其特征在于,当所述应用程序的图层合成参数与所述预设图层合成参数相同时,获取所述操作系统的运行信息,并对所述操作系统的运行信息进行分析,以定位所述应用程序存在异常的原因还包括:
解析窗口参数的预设文件,以从所述预设文件中获取所述应用程序的窗口参数;
遍历所述应用程序的窗口参数,当所述应用程序的窗口参数与预设窗口参数不同,将所述应用程序的窗口参数定位成所述应用程序存在异常的原因,并将所述原因写入所述分析文件。
7.根据权利要求6所述的方法,其特征在于,当所述应用程序的窗口参数与所述预设窗口参数相同时,获取所述操作系统的运行信息,并对所述操作系统的运行信息进行分析,以定位所述应用程序存在异常的原因还包括:
解析页面活动参数的预设文件,以从所述预设文件中获取所述应用程序的页面活动参数;
遍历所述应用程序的页面活动参数,当所述应用程序的页面活动参数与预设页面活动参数不同,将所述应用程序的页面活动参数定位成所述应用程序存在异常的原因,并将所述原因写入所述分析文件;
所述方法还包括:当所述页面活动参数与所述预设页面活动参数相同、所述窗口参数与所述预设窗口参数相同且所述图层合成参数与所述预设图层合成参数相同,解析CPU参数的预设文件,以从所述预设文件中获取车端的CPU参数;
当所述车端的CPU参数小于预设CPU参数时,将所述车端的CPU参数定位成所述应用程序存在异常的原因,并将所述原因写入所述分析文件。
8.一种分析应用程序异常的装置,其特征在于,包括:
模拟模块,用于在车辆的操作系统启动之后,通过测试工具向所述操作系统发送模拟用户操作的事件;
响应模块,用于通过所述操作系统的应用程序响应所述模拟用户操作的事件,并在所述应用程序上展示对应的图形用户界面;
获取模块,用于基于截屏命令截取当前图形用户界面,以获取所述当前图形用户界面对应的图像;
确定模块,用于当所述当前图形用户界面对应的图像为黑色图像时,确定所述应用程序处于异常状态;
分析模块,用于获取所述操作系统的运行信息,并对所述操作系统的运行信息进行分析,以定位所述应用程序存在异常的原因。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。
10.一种可读存储介质,所述可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
CN202311277863.9A 2023-09-28 2023-09-28 分析应用程序异常的方法及装置 Pending CN117271191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311277863.9A CN117271191A (zh) 2023-09-28 2023-09-28 分析应用程序异常的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311277863.9A CN117271191A (zh) 2023-09-28 2023-09-28 分析应用程序异常的方法及装置

Publications (1)

Publication Number Publication Date
CN117271191A true CN117271191A (zh) 2023-12-22

Family

ID=89219529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311277863.9A Pending CN117271191A (zh) 2023-09-28 2023-09-28 分析应用程序异常的方法及装置

Country Status (1)

Country Link
CN (1) CN117271191A (zh)

Similar Documents

Publication Publication Date Title
CN104317709B (zh) 软件性能测试方法和系统
US20120054715A1 (en) System and method for use in replaying software application events
US10019346B2 (en) Generating software test script from video
CN107967209B (zh) 一种检测前端网页代码中错误的方法、检测设备及服务器
US10657036B2 (en) Determining visual testing coverages
CN103049371A (zh) Android应用程序测试方法和测试装置
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
CN108595343A (zh) 应用程序的测试方法及装置
US8140919B2 (en) Display of data used for system performance analysis
CN108572895B (zh) 一种Linux下自动检查软硬件配置的稳定性测试方法
CN111274130A (zh) 一种自动化测试方法、装置、设备及存储介质
WO2024078601A1 (zh) 图标检测脚本的生成方法、设备及存储介质
CN112153375B (zh) 基于视频信息的前端性能测试方法、装置、设备及介质
JP4896909B2 (ja) シナリオ生成装置及びプログラム
CN106708705B (zh) 终端后台进程监控方法和系统
CN117271191A (zh) 分析应用程序异常的方法及装置
CN112783789B (zh) 一种适配测试方法、设备及计算机可读存储介质
CN107273283B (zh) 一种自动化软件检测方法及装置
CN114372003A (zh) 测试环境监控方法、装置与电子设备
CN114637685A (zh) 银行系统中应用程序的性能测试方法、装置、设备和介质
CN109522223B (zh) 一种车载Android多媒体主机的自动测试方法和系统
CN110569184A (zh) 一种测试方法及终端设备
US20110099329A1 (en) Analysis and timeline visualization of storage channels
CN110399243B (zh) 蓝屏原因确定方法、系统、计算机可读介质及电子设备
CN112559255B (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