生成日志文件的方法和电子设备与流程

文档序号:28621085发布日期:2022-01-22 13:25阅读:221来源:国知局
生成日志文件的方法和电子设备与流程

1.本技术涉及电子技术领域,具体涉及一种生成日志文件的方法和电子设备。


背景技术:

2.目前在手机等电子设备的开发过程中,需要进行功能类或者性能类问题的测试,以提高电子设备的使用稳定性。其中,功能类或者性能类问题的分析和解决主要依赖于性能跟踪日志(systrace)输出的信息,通过对systrace日志进行分析,可以确定问题产生的原因,以找到解决问题的方法。
3.通常,在对电子设备进行测试时,用户还会录制测试时的操作视频,这样可以得知当前测试时电子设备上显示的页面内容。那么后续在对systrace日志进行分析时,便可以获取到systrace日志对应的页面内容,以确定哪个操作页面存在问题。
4.相关技术中,较多的是通过人工对录制的操作视频进行数帧,以确定systrace日志中存在问题处对应的页面内容。由此可以看出,相关技术中由人工进行数帧的过程效率较低,结果的准确度也较低。


技术实现要素:

5.本技术提供了一种生成日志文件的方法和电子设备,能够提高整个测试过程的效率以及测试结果的准确度。
6.第一方面,本技术提供一种生成日志文件的方法,该方法由电子设备执行,包括:在电子设备中的测试工具处于运行状态的情况下,若接收到用户输入的第一操作,则生成第一操作对应的第一日志文件,该第一日志文件中的每条记录中均记录有生成该条记录时的系统时间;根据电子设备在接收到第一操作后所显示的页面,生成第一视频,并在生成第一视频时获取第一视频中的每帧图片对应的系统时间;将第一视频中第一图片写入第一日志文件中的第一记录,生成第二日志文件,第一图片对应的系统时间与生成第一记录时的系统时间相同,第一记录为第一日志文件中任意一条记录。
7.此实现方式中,测试工具可以为测试应用程序包(application package,apk),其可以调用systrace工具生成测试日志。第一操作可以为用户输入的任意操作,即启动测试后用户对电子设备所执行的所有操作都被记录并生成测试日志,进而生成第一日志文件(如临时日志文件),该第一日志文件可以为超文本标记语言(hyper text markup language,html)文件。其中,第一日志文件中可以包括多条记录,每条记录中还可以包括目标关键字,例如目标关键字tracing_mark_write用来表示当前进行了屏幕绘制,也即当前用户有对电子设备进行操作。此处,为将第一日志文件与下述第一视频中的图片对应起来,第一日志文件中的每条记录都对应有生成该条记录时的系统时间。
8.与此同时,电子设备在接收到第一操作后可显示不同的显示内容,因此还可以将所显示内容生成第一视频(如操作视频),而第一视频中的每帧图片也都对应有生成该帧图片时的系统时间。
9.然后,电子设备可以将生成上述记录时的系统时间和生成第一视频中图片的系统时间进行比对,并将第一图片写入与其系统时间相同的第一记录中,以生成第二日志文件,即最终的日志文件(如jpg.html格式的文件)。由此,用户通过得到的日志文件,便可以直接查看每段日志记录对应的图片,也即该段日志对应的测试时的页面内容,从而提高整个测试过程的效率,并且通过系统时间进行对应也提高了结果的准确度。
10.结合第一方面,在第一方面的有些实现方式中,上述方法还包括:获取生成第一日志文件中的第一条记录时的系统时间;对于第一日志文件中的第i条记录,根据生成第一条记录时的系统时间、生成第一条记录时的内核时间、以及生成第i条记录时的内核时间,确定生成第i条记录时的系统时间,其中,2≤i≤n,n为第一日志文件中包括的记录的条数。
11.其中,对于确定生成上述第一日志文件中每条记录时的系统时间,在一种实现方式中,电子设备在生成第一条记录时,可以获取当时的系统时间。又因systrace工具生成测试日志时会获取生成每条记录时的内核时间,那么电子设备可以根据生成第i条记录的内核时间、生成第一条记录时的内核时间及系统时间,确定生成第i条记录时的系统时间。在另一种实现方式中,电子设备也可以在生成每条记录时,都获取当时的系统时间。由此,电子设备便可以确定生成第一日志文件中每条记录时的系统时间,以便于与后续的第一视频中每帧图片的系统时间进行比对。
12.结合第一方面,在第一方面的有些实现方式中,上述根据生成第一条记录时的系统时间、生成第一条记录时的内核时间、以及生成第i条记录时的内核时间,确定生成第i条记录时的系统时间,包括:计算生成第i条记录时的内核时间与生成第一条记录时的内核时间的时间差;根据生成第一条记录时的系统时间与时间差之间的求和关系式,确定生成第i条记录时的系统时间。
13.其中,假设将生成第一条记录时的系统时间记为b1、生成第一条记录时的内核时间记为a1、生成第i条记录时的内核时间记为a2,那么电子设备可以先计算a2与a1的时间差,然后再将b1与该时间差求和,即得到生成第i条记录时的系统时间。也即是说,可以根据包含a2-a1+b1的关系式确定生成第i条记录时的系统时间。
14.此实现方式中,电子设备通过对第i条记录对应的内核时间、第一条记录对应的内核时间与系统时间做时间差计算,便可快速得到第i条记录对应的系统时间,提高了计算效率。
15.结合第一方面,在第一方面的有些实现方式中,在生成第一视频之后,上述方法还包括:将第一视频中第j帧图片对应的系统时间叠加显示在第j帧图片上,并存储第j帧图片,其中,1≤j≤m,m为第一视频中包括的图片的帧数;上述将第一视频中第一图片写入第一日志文件中的第一记录,生成第二日志文件,包括:获取第一图片的存储地址;将第一图片的存储地址写入第一记录,生成第二日志文件。
16.此实现方式中,电子设备可以将第j帧图片对应的系统时间叠加显示在该图片上,并进行存储,由此可方便用户进行查看。那么后续生成第二日志文件时,便可将第一图片的存储地址写入第一记录,快速的将图片与日志融合起来,以生成第二日志文件。
17.结合第一方面,在第一方面的有些实现方式中,上述方法还包括:接收用户输入的第二操作;响应于第二操作,运行测试工具。
18.其中,电子设备还可以为用户提供开启测试工具的接口,当用户开启运行测试工
具时,则执行上述实现方式的过程,当用户关闭运行测试工具时,则不执行上述实现方式的过程。由此满足了用户的不同需求。
19.结合第一方面,在第一方面的有些实现方式中,上述生成第一操作对应的第一日志文件,包括:通过测试工具生成第一操作对应的第一日志文件。
20.结合第一方面,在第一方面的有些实现方式中,上述根据电子设备在接收到第一操作后所显示的页面,生成第一视频,包括:通过测试工具根据电子设备在接收到第一操作后所显示的页面,生成第一视频。
21.结合第一方面,在第一方面的有些实现方式中,上述将第一视频中第一图片写入第一日志文件中的第一记录,生成第二日志文件,包括:通过测试工具将第一图片写入第一记录,生成第二日志文件。
22.其中,在上述实现方式中均可由测试工具实现每步过程,不需要电子设备中其他模块的参与,以减少电子设备的使用功耗。
23.第二方面,本技术提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
24.第三方面,本技术提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。
25.第四方面,本技术提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
26.可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
27.进一步可选地,芯片还包括通信接口。
28.第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。
29.第六方面,本技术提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。
附图说明
30.图1是本技术实施例提供的一例电子设备的结构示意图;图2是本技术实施例提供的电子设备的软件结构框图;图3是本技术实施例提供的一例开启测试应用开关的界面示意图;图4是本技术实施例提供的一例生成日志文件的方法的流程示意图;图5是本技术实施例提供的一例开启测试的界面示意图;图6是本技术实施例提供的一例将系统时间叠加显示在图片上的示意图;图7是本技术实施例提供的一例存储操作视频中的多帧图片的示意图;图8是本技术实施例提供的一例打开所生成的日志文件的界面示意图;图9是本技术实施例提供的另一例生成日志文件的方法的流程示意图。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
32.以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
33.当前,在对手机等电子设备进行测试时,可以使用systrace工具检查和收集设备上运行的所有进程的日志信息,它包括安卓内核(android kernel)的一些数据,例如cpu调度程序数据,输入/输出(input/output,i/o)数据和应用线程(app thread)数据等,并且会生成html文件,方便用户查看分析日志内容。
34.在一些场景中,用户使用systrace工具对电子设备测试时,为了将systrace日志与电子设备实际运行的页面内容对应起来,通常会录制测试时的操作视频。比如说,用户对电子设备的“钱包”功能进行测试,或者对电子设备中安装的app进行测试时,可以开启电子设备的录屏功能,也可以使用额外的摄像机对准电子设备的显示屏进行拍摄,以录制测试过程中的操作视频。这样,在测试完成后,便可以得到systrace日志以及相应的操作视频;用户在对systrace日志分析的过程中,若发现某段日志存在异常,则可以通过该日志所记录的时间确定距离开始测试时间的时间差,然后根据该时间差从操作视频中数帧,例如按照每100毫秒(ms)两帧的频率进行数帧,以确定经历上述时间差后对应的是操作视频中的哪帧图片。由此,用户就可以找到出现问题时所进行的操作以及页面内容,然后对该页面的脚本进行分析以确定问题原因。但是,采用人工数帧的方法,其过程效率较低,结果的准确率也较低。
35.在另一些场景中,用户使用systrace工具对电子设备测试时,仅保留了systrace日志,后续发现异常日志时,无法知道异常日志对应的实际页面是如何,那么就需要针对该异常日志进行复现。但是有些异常问题发生的概率较低,有时很难复现。
36.有鉴于此,本技术实施例提供一种生成日志文件的方法,通过在systrace日志和录制的操作视频中分别增加电子设备的系统时间,来将systrace日志和操作视频对应起来,进而将操作视频的每帧图片嵌入到systrace日志中的对应位置,生成最终的日志信息。那么,用户通过得到的日志信息,便可以直接查看每段日志对应的图片,也即该段日志对应的测试时的页面内容,从而提高整个测试过程的效率,并且通过系统时间进行对应也提高了结果的准确度。需要说明的是,本技术实施例提供的生成日志文件的方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等可以进行测试的电子设备上,本技术实施例对电子设备的具体类型不作任何限制。
37.示例性的,图1是本技术实施例提供的一例电子设备100的结构示意图。以电子设备100是手机为例,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,
通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
38.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
39.控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
40.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
41.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
42.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
43.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
44.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
45.图2是本技术实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层、系统层、内核层以及硬件层。
46.如图2所示,应用程序层可以包括一系列应用程序包(apk),应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序,也可以包括所安装的第三方应用的apk,例如测试应用apk、systrace工具等。
47.系统层可以包括安卓运行时(android runtime),android runtime包括核心库和虚拟机,负责安卓系统的调度和管理,例如可以获取当前的系统时间。
48.内核层是硬件和软件之间的层。内核层可以包含显示驱动,以将需要显示的图片数据传输至显示屏进行显示。
49.硬件层可以包括显卡、显示屏等,显卡可以存储显示屏当前显示的图片的数据,显示屏用于显示图片,给予用户可视化的体验。
50.为了便于理解,本技术以下实施例将以具有图1和图2所示结构的电子设备为例,结合附图和应用场景,对本技术实施例提供的生成日志文件的方法进行具体阐述。
51.在一些场景中,若用户想要采用本技术实施例提供的方法生成日志信息,则可以在测试应用中打开相应的开关,例如图3中的“融合开关”;若用户不想要采用本技术实施例提供的方法生成日志信息,则可以关闭图3中的“融合开关”,其中,图3中的界面可以是运行测试应用apk后所显示的。
52.在开启上述开关之后,结合上述图2所示的软件结构,图4给出了电子设备中各模块实现本技术实施例提供的生成日志文件的方法的交互信令图,如图4所示,该方法包括:s1,测试应用apk接收到用户输入的启动测试的指令。
53.其中,测试应用apk中可以提供启动测试的入口,比如图5所示的“开启测试”按钮。当用户点击该按钮后,电子设备可以执行下述过程。可选地,用户还可以通过语音输入上述启动测试的指令,或者通过其他快捷键输入上述启动测试的指令,或者通过运行命令输入上述启动测试的指令。可以理解,用户输入启动测试的指令后,测试应用apk可以运行systrace工具,以获取用户对电子设备测试操作时的测试日志。
54.s2,在用户对电子设备进行测试操作的过程中,测试应用apk调用systrace工具生成测试日志,并在生成包含第一个目标关键字的日志记录时获取系统时间。
55.s3,在测试操作完成后,测试应用apk根据测试日志生成html文件。
56.s4,测试应用apk对html文件进行解析,提取多个目标关键字,其中,html文件中记录有生成第一个目标关键字时的系统时间。
57.s5,根据第一个目标关键字对应的系统时间,确定html文件中生成上述多个目标关键字时的系统时间。
58.其中,在启动测试之后,用户可以对电子设备进行测试操作,比如测试电子设备中一些app的功能,而用户对电子设备所执行的所有操作都可由systrace工具记录并生成测
试日志。示例性地,用户可以测试电子设备中浏览器的功能,当从浏览器首页点击一条新闻,跳转至该新闻的展示页面时,systrace工具可以记录点击及跳转展示这一系列动作,并生成对应的测试日志。然后,测试应用apk可以获取到所生成的测试日志。
59.因在用户启动测试后,测试应用apk会不断的获取测试日志,那么在测试操作完成时,便会得到整个测试过程中的全部测试日志。因此,测试应用apk可以根据全部测试日志生成html文件。
60.在html文件中可以包括多个目标关键字,例如目标关键字tracing_mark_write用来表示当前进行了屏幕绘制,也即当前用户有对电子设备进行操作。在目标关键字tracing_mark_write的信息中,还可以由关键字onmessagerefresh记录生成该关键字的时间,需要说明的是,systrace工具所记录的时间为内核时间(kernel时间),单位为毫秒(ms)。例如,36118.675438:tracing_mark_write:b|1045|onmessagerefresh,这一条日志表征的含义是:在kernel时间为36118.675438ms的时候进行了一次屏幕绘制。
61.然而,因kernel时间是systrace工具所记录的,其与电子设备的系统时间并不相同,为了后续与操作视频的系统时间对应起来,此步骤中还需记录系统时间。
62.在一个实施例中,假设上述测试日志36118.675438:tracing_mark_write:b|1045|为启动测试后生成的第一条关于屏幕绘制的日志,则电子设备可以通过脚本36118.675438:tracing_mark_write:b|1045|time line16:32:21.455在上述测试日志中增加系统时间16:32:21.455(时,分,秒),也即是s2步骤中在生成测试日志时需要从安卓运行时获取当时的系统时间,由此所得到的html中也可包括第一个目标关键字对应的系统时间。
63.然后,测试应用apk可以从html文件中提取所有目标关键字(tracing_mark_write和onmessagerefresh),以及生成目标关键字的kernel时间,通过第一个目标关键字对应的系统时间、以及第一个目标关键字与其他目标关键字的kernel时间的时间差,确定生成其他目标关键字时的系统时间。
64.示例性地,假设第一个目标关键字对应的日志为36118.675438:tracing_mark_write:b|1045|time line16:32:21.455;其他目标关键字对应的其中一条日志l为92978.474050:tracing_mark_write:b|1045|onmessagerefresh;将361188.675438记为a1,92978.474050记为a2,16:32:21.455记为b1,那么生成日志l时所对应的系统时间b2=a2-a1+b1=16:33:18.315。以此类推,可以计算出生成其他目标关键时的系统时间。
65.在另一个实施例中,电子设备除了可以通过脚本在第一个目标关键字中增加对应的系统时间,还可以通过相同的脚本在其他目标关键字中也增加对应的系统时间,由此得到生成上述多个目标关键字时的系统时间。
66.示例性地,假设第一个目标关键字对应的日志为36118.675438:tracing_mark_write:b|1045|time line16:32:21.455;其他目标关键字对应的其中一条日志l为92978.474050:tracing_mark_write:b|1045|time line16:33:18.315;则,第一个目标关键字对应的系统时间为16:32:21.455,日志l中目标关键字对应
的系统时间为16:33:18.315,其他目标关键字对应的日志类似,在此不再赘述。
67.其中,电子设备在执行上述s2-s5时,还同时执行下述s6-s7:s6,在用户对电子设备进行测试操作的过程中,测试应用apk从显卡中获取电子设备所显示内容的数据。
68.s7,在测试操作完成后,测试应用apk根据电子设备所显示内容的数据生成操作视频,该操作视频中的每帧图片均包含对应的系统时间。
69.在测试应用apk对上述测试日志进行处理的同时,还可以从显卡中获取电子设备的显示屏上所显示内容的数据,或者通过电子设备提供的接口获取显示屏上所显示内容的数据,比如用户测试电子设备中浏览器的功能,当从浏览器首页点击一条新闻,跳转至该新闻的展示页面时,测试应用apk便可以获取到浏览器首页的数据以及新闻展示页面的数据。那么在测试操作完成后,测试应用apk便可以获取到连续的多个显示内容的数据,并根据这些数据生成操作视频,此操作视频也即是用户对电子设备测试时,电子设备上所显示内容的视频。也可以理解为,测试应用apk对电子设备执行了录屏操作。
70.本技术实施例中,测试应用apk获取电子设备所显示内容的数据时,还可获取到电子设备当前的系统时间,那么每次获取的显示内容的数据都会对应一个系统时间。由此,上述测试应用apk所生成的操作视频中的每帧图片也均包含对应的系统时间。
71.在一个实施例中,测试应用apk可以将每帧图片对应的系统时间嵌入到帧图片中,例如图6所示,将系统时间(11:34:25.086)写到帧图片的左上角。
72.在一个实施例中,测试应用apk还可以将上述操作视频切割为多个帧图片,然后将每个帧图片对应的系统时间写到帧图片的左上角,并将这些多个帧图片保存至指定路径。示例性地,存储多个帧图片的方式可以参见图7所示。
73.可以理解,上述在测试日志中增加的系统时间以及在操作视频的帧图片中增加的系统时间都可以通过android runtime获取到。
74.那么,在得到上述html文件中目标关键字对应的系统时间和操作视频中每帧图片对应的系统时间后,电子设备可执行下述过程:s8,测试应用apk将html文件中目标关键字对应的系统时间和操作视频中每帧图片对应的系统时间进行匹配,确定相同系统时间的目标关键字和帧图片。
75.s9,测试应用apk将帧图片写入上述html文件中与该帧图片相同系统时间的目标关键字处,生成最终的日志文件。
76.其中,因html文件中目标关键字都已对应有系统时间,操作视频中每帧图片也都已对应有系统时间,那么针对html文件中的目标关键字,都可在操作视频中找到相同系统时间的帧图片;或者,针对操作视频中的每帧图片,都可在html文件中找到相同系统时间的目标关键字。那么,测试应用apk便可以将每帧图片写入html文件中,写入位置即为与该帧图片相同系统时间的目标关键字处,生成jpg.html格式的日志文件。
77.在一个实施例中,测试应用apk将帧图片写入html文件中的方式可以为:surfaceflinger-1042(1042)[001]....361189.521287:tracing_mark_write:b|1042|onmessagerefresh|src=f:\out\20211122_20_01_04_xxx-xx\frame_1.jpg。
[0078]
其中,f:\out\20211122_20_01_04_xxx-xx\frame_1.jpg为帧图片的保存路径。
[0079]
在一个实施例中,得到jpg.html格式的日志文件后,用户可以点击打开该日志文
件,则测试应用apk可以将该日志文件对应的内容交由显示驱动,以显示在显示屏上。在另一个实施例中,手机类电子设备所生成的jpg.html格式的日志文件,还可以传输至pc等电子设备上,以方便用户查看。示例性地,打开日志文件的显示界面可以如图8所示;当用户点击日志分布中的某处时,页面下方可以显示该处对应的帧图片存储路径,由此可方便直观的查看日志以及日志对应的页面内容。
[0080]
上述生成日志文件的方法,电子设备通过在systrace日志和录制的操作视频中分别增加电子设备的系统时间,来将systrace日志和操作视频对应起来,进而将操作视频的每帧图片嵌入到systrace日志中的对应位置,生成最终的日志文件。那么,用户通过得到的日志文件,便可以直接查看每段日志对应的图片,也即该段日志对应的测试时的页面内容,从而提高整个测试过程的效率,并且通过系统时间进行对应也提高了结果的准确度。同时,也不需要借助额外的摄像机等硬件,节约了测试成本。
[0081]
以上是本技术实施例提供的生成日志文件的方法的详细过程,下面再以一个实施例对该过程进行描述,图9是本技术实施例提供的另一例生成日志文件的方法的流程示意图,应用于电子设备上,该方法包括:s101,接收用户输入的启动测试操作,该启动测试操作用于指示电子设备运行测试工具。
[0082]
其中,用户输入的启动测试操作可以为上述实施例中输入的启动测试指令的操作,用于指示电子设备运行测试工具,例如systrace工具。
[0083]
s102,在测试工具处于运行状态时,当接收到用户输入的测试操作,生成该测试操作对应的临时日志文件。
[0084]
其中,测试操作为测试工具处于运行状态后,用户输入的任意操作。也即是说,用户对电子设备所执行的所有操作都被记录并生成测试日志,进而生成临时日志文件,例如临时日志文件为html文件。
[0085]
需要说明的是,上述临时日志文件中至少有一个目标关键字对应有系统时间,比如第一个目标关键字对应有生成该关键字时的系统时间。
[0086]
s103,确定上述临时日志文件中生成每个目标关键字时对应的系统时间。
[0087]
本步骤中,若上述第一个目标关键字对应有生成该关键字时的系统时间,则电子设备可以根据第一个目标关键字对应的系统时间、以及第一个目标关键字与其他目标关键字的kernel时间的时间差,确定生成其他目标关键字时的系统时间。
[0088]
s104,获取用户输入测试操作后电子设备的显示页面的数据,并根据显示页面的数据生成操作视频。
[0089]
s105,将操作视频切割为多帧图片,每帧图片均包含对应的系统时间。
[0090]
其中,s102-s103与s104-s105的步骤同时进行。
[0091]
s106,将操作视频中的帧图片写入临时日志文件中与该帧图片相同系统时间的目标关键字处,生成最终的日志文件。
[0092]
其中,针对操作视频中的每帧图片,电子设备都可在临时日志文件中找到相同系统时间的目标关键字。那么,电子设备便可以将每帧图片写入临时日志文件文件中,写入位置即为与该帧图片相同系统时间的目标关键字处,生成jpg.html格式的日志文件。
[0093]
上文详细介绍了本技术实施例提供的生成日志文件的方法的示例。可以理解的
是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0094]
本技术实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0095]
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0096]
本实施例提供的电子设备,用于执行上述生成日志文件的方法,因此可以达到与上述实现方法相同的效果。
[0097]
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
[0098]
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,dsp)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、wi-fi芯片等与其他电子设备交互的设备。
[0099]
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图1所示结构的设备。
[0100]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的生成日志文件的方法。
[0101]
本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的生成日志文件的方法。
[0102]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的生成日志文件的方法。
[0103]
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0104]
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分
配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0105]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0106]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0107]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0108]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0109]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1