CN109684184A - 一种应用操作的复现方法、装置及电子设备 - Google Patents

一种应用操作的复现方法、装置及电子设备 Download PDF

Info

Publication number
CN109684184A
CN109684184A CN201811600861.8A CN201811600861A CN109684184A CN 109684184 A CN109684184 A CN 109684184A CN 201811600861 A CN201811600861 A CN 201811600861A CN 109684184 A CN109684184 A CN 109684184A
Authority
CN
China
Prior art keywords
event
target application
critical event
logout
gesture operation
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
CN201811600861.8A
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.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811600861.8A priority Critical patent/CN109684184A/zh
Publication of CN109684184A publication Critical patent/CN109684184A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

本发明实施例提出一种应用操作的复现方法、装置及电子设备,所述方法包括:对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。以提供一种针对应用的事件进行记录的方案。

Description

一种应用操作的复现方法、装置及电子设备
技术领域
本发明涉及应用管理领域,尤其涉及一种应用操作的复现方法、装置及电子设备。
背景技术
应用操作为时序操作,操作完成后即进入下一界面或环节。如果,需要对应用的操作运行进行检测的时候,就需要针对应用的操作进行记录,比如,记录应用在一段时长内的操作情况,因此,需要提供一种针对应用的各种事件进行记录的方案。
发明内容
本发明实施例提供一种应用操作的复现方法、装置及电子设备,以提供一种针对应用的各种事件进行记录的方案。
第一方面,本发明实施例提供了一种应用操作的复现方法,包括:
对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;
基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
第二方面,本发明实施例提供了应用操作的复现装置,所述装置包括:
拦截记录单元,用于对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
复现单元,用于基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
第三方面,本发明实施例提供了一种电子设备,所述电子设备的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述电子设备的结构中包括处理器和存储器,所述存储器用于存储支持所述装置执行上述驾驶控制方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于应用操作的复现装置所用的计算机软件指令,其包括用于执行上述驾驶控制方法所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:针对目标应用的手势操作事件、关键事件进行拦截以得到对应的记录,再基于对应的记录生成操作路径,最后基于操作路径进行复现。如此,就能够通过基于针对手势操作、关键事件进行准确的复现,从而了解目标应用中可能出现的异常现象,便于后续进行目标应用的分析以及更新处理。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1示出根据本发明实施例的应用操作的复现方法的流程图一。
图2示出根据本发明实施例的应用操作的复现方法中记录方法的流程图一。
图3示出根据本发明实施例的应用操作的复现方法中记录方法的流程图二。
图4示出根据本发明实施例的应用操作的复现方法的流程图二。
图5示出根据本发明实施例的应用操作的复现方法的流程图三。
图6示出根据本发明实施例的应用操作的复现方法的流程图四。
图7示出根据本发明实施例的应用操作的复现方法的流程图五。
图8示出根据本发明实施例的一种应用操作的复现装置组成结构示意图。
图9示出根据本发明实施例的电子设备结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在一种实施方式中,如图1所示,提供一种应用操作的复现方法,所述方法包括:
步骤101:对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
步骤102:基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;
步骤103:基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
需要指出的是,本实施例提供的方案主要应用于支持iOS系统的平台上,比如,可以为支持iOS系统的手机、平板电脑、笔记本电脑等。上述目标应用可以为iOS系统中的应用。
本实施例主要针对如何对手势操作事件以及关键事件进行记录描述。所述关键事件至少包括:系统关键事件和/或预设关键事件;所述系统关键事件为在iOS系统中至少部分应用通用的处理事件,所述预设关键事件为所述目标应用与至少部分应用中不同的处理事件;所述关键事件记录包括:系统关键事件记录以及预设关键事件记录。
针对手势操作事件的获取以及记录进行说明:
所述对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,包括:获取针对所述目标应用的显示界面的至少一个操作手势所对应的位置、以及相对操作时刻作为手势操作事件。
也就是说,通过对手势操作事件进行拦截,可以得到每一个手势操作所对应的位置以及相对时刻。其中,位置可以为显示界面对应的二维坐标系中的坐标值,比如以显示界面的顶部左侧为原点构建二维坐标系,然后手势操作所对应的位置,可以为其(x,y)坐标值。还需要理解的是,手势操作事件可以对应的位置可以为一个坐标值,也可以为一段时长内的连续的坐标值,也就是说,当手势操作事件为点击事件的时候,对应的位置为一个点击操作的坐标值,当手势操作事件为滑动事件时,对应的位置可以为一个集合,其中包含有从滑动起点到滑动终点之间的N个采坐标值,这时坐标值还可以包括有时间值,这个时间值也可以为一个相对时刻。
所述相对时刻,可以理解为相对于目标应用开启时的相对时刻;比如,目标应用开始运行的绝对时刻为t,拦截到手势操作事件的时刻可以为t1,那么在手势操作事件记录中可以记录的为t1-t所得到的相对时刻。
比如,所述手势操作事件的拦截,可以通过重写UI目标应用UIApplication(即用户界面应用)的sendEvent来实现,其中sendEvent为一种事件发送函数;通过重写sendEvent,获取所有窗口下UITouch(用户界面点击)事件的点击坐标和相对目标应用启动时间点的时间间隔;将点击时间的坐标以及所述时间间隔作为手势操作事件记录。手势操作事件记录后面用于复现的过程中,构造手势事件,并处理所有事件的时序问题。
然后,针对关键事件记录的拦截进行详细说明:
关键事件记录的拦截,可以包括有以下至少之一:
针对目标应用中的系统关键事件进行拦截,得到系统关键事件所对应的显示参数、显示信息、目标应用的运行状态中至少之一以及相对时刻作为所述系统关键事件记录;
针对目标应用中的预设关键事件,基于针对预设关键事件的预设调用入口,获取预设关键事件对应的调用参数以及相对时刻作为所述预设关键事件记录。
其中,所述系统关键事件可以理解操作系统通用的事件;预设关键事件可以理解为目标应用所特有的处理事件。需要指出的是,系统通用关键事件为内部声明,预设关键事件为提供接口,由宿主程序进行声明,宿主程序即前述目标应用。也就是说,系统关键事件可以为通过针对目标应用的记录功能来确定,而预设关键事件由于是目标应用所特有的时间因此需要目标应用自身来确定。其中,目标应用的记录功能可以通过SDK来实现。所述预设关键事件可以理解为用户设置的所要获取的某些处理节点对应的事件。
关键事件的记录分为系统关键事件的拦截记录和预设关键事件的拦截记录。
其中,系统关键事件的拦截记录也就是针对通用的关键事件的拦截记录,其需要获得的结果为显示参数、显示信息以及运行状态等一个或多个的组合。针对系统关键事件拦截记录,可以为针对系统关键事件设置回调实例、和/或针对系统关键事件设置监听系统通知的代码,来得到系统关键事件所对应的显示参数、显示信息以及运行状态至少之一。其中,所述回调实例也可以理解为一种具备能够回调系统关键事件的结果的回调代码。
比如,系统关键事件的记录包含有显示相对与当前帧的偏移值,也就是contentOffset信息,为一种显示参数;获取到需要在输入框中所输入的内容,可以作为一种显示信息;获取到目标应用处于前台运行状态或者后台运行状态作为一种运行状态,或者,还可以获取到目标应用在于网络侧进行交互的过程中产生的结果也可以作为运行状态。其中,目标应用与网络侧进行交互的过程中,可以产生网络侧反馈的相关响应信息,比如,连接错误、连接成功、密码错误、服务器故障等等,这可以作为运行状态的一种进行记录。
下面,以UIScrollView(用户界面滑动界面)的scrollViewDidEndDragging:willDecelerate:方法为代表的delegate(委托实例)回调、以UITextViewTextDidChangeNotification为代表的通知进行系统关键事件的拦截的说明。其中,scrollViewDidEndDragging:willDecelerate可以理解为触摸屏幕并拖拽画面再松开时,触发的函数;UITextViewTextDidChangeNotification可以为用户界面文本改变通知。
本实施例可以提供三种处理方式,主要可以包括有:当系统关键事件,比如UIScrollView,无委托实例时,可以设置一个内部类作为回调实例进行结果回调,然后记录回调的显示参数以及相对时刻;其内部类的具体设置方式本实施方式中不做赘述,只需要能够实现结果的回调即可;
当系统关键事件存在委托实例时,判断所述系统关键事件的委托实例是否能够获取结果,若不能,则添加能够实现拦截记录的回调实例,将所述能够实现拦截记录的函数添加至委托实例的方法列表中,记录所述系统关键事件运行结果对应的显示参数以及相对时刻;
当系统关键事件存在委托实例时,判断所述系统关键事件的委托实例是否能够获取结果,若能,则进一步判断是否能够实现系统关键事件记录,若能则直接进行系统关键事件记录,若不能,则添加能实现系统关键事件记录的回调实例,获取系统关键事件记录。
参见图2,以UIScrollView的scrollViewDidEndDragging:willDecelerate:(以下简称为方法A)回调方法为例进行说明,关于方法A可以理解为是一种回调实例,在iOS系统中可以称为“方法”,因此下面采用方法A替代回调实例来进行说明,具体的:
当需要针对目标应用中的某系统关键事件delegate回调方法A拦截的时候,判断该实例UIScrollView实例无delegate:将内部类作为其delegate,接收方法A回调,在回调中记录contentOffset信息和相对目标应用启动时间点间间隔;
UIScrollView的系统关键事件有delegate但未重写方法A:通过class_addMethod函数为delegate实例增加方法A,并在其中记录contentOffset信息和相对目标应用启动时间点的时间间隔;
UIScrollView有delegate且存在自定义方法A重写:通过class_addMethod函数为delegate实例增加方法A’,并通过swizzle方式置换A与A’,保证运行时A’被调用,新增的记录信息方法生效,记录信息和相对目标应用启动时间点的时间间隔。
系统关键事件可以为通知,比如以UITextViewTextDidChangeNotification为例,通过内部接收通知,触发记录text信息和相对目标应用启动时间点的时间间隔。
预设关键事件拦截则采用“模块-block(一种objective-c语言的代码块结构)-参数”匹配的方式进行。预设关键事件,可以为理解一种关键模块B,针对该预设关键事件即关键模块B指定进入的唯一方式C。
在记录时,可以在目标应用的接口设置对应的接口代码,当目标应用的代码运行至进入该模块的唯一底层接口处(即C方法调用入口处),获取并保存进入此模块的调用参数D和相对目标应用启动时间点的时间间隔,从而保证此参数能调起特定场景下的模块。即针对预设关键事件记录B(模块)-C(block)-D(参数)三个关键信息,用于复现此次关键函数的调用。
最后本实施例方式结合图3进行详细说明,包括:
初始化记录模块;然后注册目标应用的关键事件回调行为,即前述注册目标应用的关键事件的拦截记录代码或者回调实例或者接口代码等,将能够拦截并记录目标应用系统关键事件和/或预设关键事件的均可以理解为针对目标应用的关键事件回调行为;比如,设置前述针对系统关键事件设置回调实例、和/或针对系统关键事件设置监听系统通知的代码,针对预设关键事件可以为目标应用中设置针对接口的接口代码;
开始检测事件;
判断检测到的是否为手势操作事件、是否为系统关键事件以及是否为预设关键事件;
当检测到手势操作事件时,记录手势操作事件的位置,也就是对应的坐标值;当检测到系统关键事件时,记录系统关键事件的信息,比如显示参数、显示信息以及目标应用运行状态中至少之一;检测到预设关键事件时,记录目标应用中预设关键事件的调用参数,另外还需要记录对应的预设关键事件的接口;
记录手势操作事件、系统关键事件、预设关键事件发生的相对时刻;
判断是否结束记录,若不结束,则返回至开始检测事件继续进行检测;若结束,则生成手势操作事件记录、系统关键事件记录以及预设关键事件记录并保存记录,将保存的记录用于复现。
还需要指出的是,本实施方式中可以针对目标应用从开始运行到关闭整个时长内的各种事件进行记录,也可以为针对目标应用中某一段预设时长内的事件进行拦截以及记录;其中,预设时长可以为相对与目标应用来说,比如,应用开始运行之后,1-5分钟之内的事件进行拦截以及记录,当然还可以为其他预设时长,这里不做赘述。另外,本实施方式中所记录的系统关键事件可以为用户或者管理人员指定的某些系统关键函数,比如,目前仅关心某些系统关键事件,就可以设置为仅针对这些系统关键事件进行拦截以及记录;预设关键事件也是可以根据实际情况进行设置,本实施方式中已作出描述,这里不再赘述。
在一种实施方式中,提供一种应用操作的复现方法,由于本实施例方式中的获取所述至少一个手势操作事件记录和/或至少一个关键事件记录的方式与图1的步骤101,以及上一实施例方式中详细说明的处理相同,因此不再赘述。本实施例方式,主要针对上一实施例方式中的步骤102以及步骤103中,如何基于所述至少一个手势操作事件记录和/或至少一个关键事件记录生成操作路径以及进行复现来说明,参见图4,包括:
步骤401:基于所述至少一个手势操作事件记录中的相对时刻,和/或至少一个关键事件记录中的相对时刻,对所述至少一个手势操作事件、和/或至少一个关键事件进行排序,得到针对目标应用的操作路径。
步骤402:基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现。
本实施方式复现功能通过解析记录的手势事件和关键函数,来重现出特定时间段内的目标应用运行状态。
步骤401,具体的,可以为基于所述手势操作事件记录、系统关键事件记录、预设关键事件记录中至少之一的相对时刻,对所述手势操作事件记录、系统关键事件记录以及预设关键事件记录中至少一个进行排序,得到针对目标应用的操作路径。
需要理解的是,前面提出基于所述手势操作事件记录、系统关键事件记录、预设关键事件记录中至少之一,指的是,当前保存的记录不一定是完全包括有所述手势操作事件记录、系统关键事件记录、预设关键事件记录,因此,仅针对当前有的所述手势操作事件记录、系统关键事件记录、预设关键事件记录进行排序。比如,当前有手势操作事件1、2,系统关键事件记录1,但是并未检测并保存到预设关键事件,那么就仅针对这三个事件记录进行排序。
具体排序可以为按照相对时刻的先后顺序,来对所述至少一个手势操作事件记录、所述至少一个关键事件记录以及至少一个预设关键事件记录进行排序。
也就是说,本实施方式通过步骤401,对记录的事件按照时间戳(即相对时刻)进行排序。比如,当前记录的手势操作事件1、2、3、4、5,对应的相对时刻分别为1s、20s、25s、1m、2m;系统关键事件1、2,对应的相对时刻分别为4s、1m2s,预设关键事件1、2,对应的相对时刻分别为26s、2m5s;那么操作路径中排序之后得到的顺序为:手势操作事件记录1、系统关键事件记录1、手势操作事记录2、手势操作事件记录3、预设关键事件记录1、手势操作事件记录4、系统关键事件记录2、手势操作事件记录5,以及预设关键事件记录2。
前述步骤402中,具体的,可以为基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,对所述目标应用的处理过程进行复现。
需要理解的是,前面提出基于所述手势操作事件记录、系统关键事件记录、预设关键事件记录中至少之一,指的是,当前保存的记录不一定是完全包括有所述手势操作事件记录、系统关键事件记录、预设关键事件记录,因此,操作路径中可能也并不完全包含手势操作事件记录、系统关键事件记录、预设关键事件记录,所以仅基于操作路径中包含的记录进行复现。当然,也可以包含有手势操作事件记录、系统关键事件记录、预设关键事件记录中全部类型。
基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现,包括以下至少之一:
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现手势操作事件记录时,基于所述手势操作事件记录中的操作手势所对应的位置,展示对应的手势操作事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现系统关键事件记录时,将所述系统关键事件记录中的显示参数、显示信息、目标应用的运行状态中至少之一添加至对应的系统关键事件,展示所述系统关键事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现预设关键事件记录时,基于所述预设关键事件记录所对应的预设关键事件以及调用参数,对所述预设关键事件的结果进行展示。
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现手势操作事件记录时,也就是说,当根据操作路径的执行顺序,依次提取当前的相对时刻所对应的记录,若当前时刻对应的记录为手势操作事件记录的时候,可以根据手势操作事件记录中包含的手势操作的位置,控制在当前的目标应用的显示界面上,复现手势所处的位置。比如,当唤起的事件为手势事件时,可以为获取当前顶层UIWindow实例,通过IOKit构造基于此UIWindow实例的UITouch事件及UIEvent事件,并通过UIApplication的sendEvent方法重新抛出,来模拟目标应用内部记录的手势事件。
手势事件为依赖是整体事件处理的基础。然而记录目标应用的状态和复现时某些重点信息差别很大时,会给复现的精确度带来负面影响。例如某个特定的网页页面结构发生变化、新闻列表的某个位置的新闻发生变化等。为了保证这种情况下复现依然精确,因此需要基于系统关键事件记录以及预设关键事件记录进行复现。
当根据操作路径的执行顺序,依次提取当前的相对时刻所对应的记录,若当前时刻对应的记录为系统关键事件记录的时候,可以将系统关键事件记录中包含的显示参数、显示信息以及目标应用的运行状态中的至少之一,重新添加到对应的系统关键事件中,运行该系统关键事件之后,复现对应的结果。
比如,同样以记录模块列举UIScrollView的scrollViewDidEndDragging:willDecelerate方法和UITextViewTextDidChangeNotification通知为例。针对scrollViewDidEndDragging:willDecelerate:方法记录的contentOffset,获取当前UITouch事件所在层级最近的UIScrollView实例,通过setContentOffset方法将记录的contentOffset重置回此UIScrollView实例。再比如,针对记录时在UITextViewTextDidChangeNotification通知中记录的text信息,获取当前UITouch事件所在层级最近的UITextView实例,通过代码显式地设置其text,即显示信息。
当根据操作路径的执行顺序,依次提取当前的相对时刻所对应的记录,若当前时刻对应的记录为预设关键事件记录的时候,可以获取预设关键事件记录中包含的预设关键事件以及对应的调用参数,基于所述调用参数以及对应的接口进入预设关键函数,复现对应的结果。
比如,当唤起的事件为预设关键事件时,采用模块-block-参数匹配唤起的方式进行精确复现。需要明确,此时由UITouch事件触发的同一模块调用由于上下文的差异,已大概率存在参数差异。例如点击网页的同一位置,跳转的URL可能已经不同;点击新闻列表的同一位置,打开的新闻条目可能已经不同。针对预设关键事件,判断其函数触发来源,忽略UITouch事件触发的模块调用,而是使用记录信息中的模块调用参数来进行模块调用的方式,以达到精确复现的目的。
在所述预设关键事件记录中,记录进入此模块所需的代码块和调用参数,以供在相应的复现时间点,构造并发出模块进入命令。
此时,还可以包括以下处理:基于预设关键事件的预设调用入口进行调用栈追溯,若在所述调用栈中存在所述预设调用入口,则基于所述预设关键事件记录中的调用参数对所述预设关键事件进行复现并得到结果;否则,不进行处理。比如,参见图5,预设关键事件唤起,也就是基于操作路径确定当前时刻需要复现预设关键事件;读取当前线程栈,也就是在预设关键事件的调用入口处进行函数调用栈追溯([NSThread callStackSymbols]);
若线程栈中出现所述预设关键事件记录中的调用入口,则说明此命令为内部发出,允许此次调用,继续基于调用参数对关键事件进行调用以及复现;否则,则说明此命令为UITouch事件触发,然而上下文环境已经变更,拦截此次调用,忽略此命令。通过关键函数拦截方案,可进行可变内容的纠正,大大提高了复现过程中的精确性。
结合图6对本实施例方式进行详细说明,在进行复现的时候,首先初始化复现模块,然后获取操作路径,即读取记录的数据;
基于操作路径来确定是否达到复现的相对时刻,也就是说,判断是否达到操作路径中手势操作事件记录中的相对时刻、或者、是否达到系统关键事件记录中的相对时刻、或者,是否到达预设关键事件中的相对时刻;若否,则基于判断是否达到复现的相对时刻;
若是,则为手势操作事件记录时,复现所述手势操作事件,也就是通过UIApplication的SendEvent方法重新抛出事件;为系统关键事件时,按照所述系统关键事件记录中的内容重新抛出事件,也就是按照特定解决方案重新抛出事件,即进行系统关键事件的复现;为预设关键事件时,根据预设关键事件记录中记录的内容构造并触发命令,最终进行复现,也就是采用模块-block-参数匹配的方式构造并触发命令,以进行预设关键事件的结果的复现;
然后判断是否已完成复现,若未完成则继续基于操作路径中对应的记录进行处理。
最后还需要说明的是,上述两个实施方式中,均针对iOS平台的目标应用进行记录以及复现。从而,基于上述两个实施方式可实现对iOS平台目标应用的操作的记录、复现和分析功能,能细力度地记录发生特定问题的背景,然后以接近播放操作视频的方式重新精确复现出来。
上述实施方式提供的处理方案,能够基于手势操作事件以及关键事件的识别、记录以及复现,提供针对应用在某一段事件内的操作的记录的复现功能。能够还原对应的时间段的操作路径。前述至少一个手势操作事件记录以及至少一个关键事件记录可以为文本信息,另外,在复现过程中,能够获取应用的内部环境、进程信息以及网络信息等。如果应用的运行发生异常,还可以通过断点、打印日志等方式获取异常现象产生的原因、上下文等信息。
针对本实施例上述步骤,可以将拦截并记录手势操作事件和/或关键事件的处理理解为目标应用中的记录功能实现,具体可以为具备记录功能的一个SDK;进行复现的可以理解为目标应用中的复现功能,也可以采用具备复现功能的另一个SDK,实现记录功能和实现复现功能的可以为两个不同的SDK,并且可以不同的用户使用,比如,结合图7,当目标应用的使用者即使用用户操作应用的时候,目标应用可以自动开启记录功能,也可以根据使用用户的操作控制确定是否开启记录功能;基于目标应用记录功能,获取使用用户的手势操作事件和/或关键事件的记录,进而生成操作路径;在管理用户侧,当需要对某一个操作路径进行复现的时候,可以调用目标应用的复现功能,基于复现功能对操作路径中记录的手势或关键事件进行复现。
可见,通过采用上述方案,就能够针对目标应用的手势操作事件、关键事件进行拦截以得到对应的记录,再基于对应的记录生成操作路径,最后基于操作路径进行复现。如此,就能够通过基于针对手势操作、关键事件进行准确的复现,从而了解目标应用中可能出现的异常现象,便于后续进行目标应用的分析以及更新处理。
在一种实施方式中,图8示出一种应用操作的复现装置,所述装置包括:
拦截记录单元71,用于对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
复现单元72,用于基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
所述关键事件至少包括:系统关键事件和/或预设关键事件;所述系统关键事件为在iOS系统中至少部分应用通用的处理事件,所述预设关键事件为所述目标应用与至少部分应用中不同的处理事件;所述关键事件记录包括:系统关键事件记录以及预设关键事件记录。
拦截记录单元71,用于获取针对所述目标应用的显示界面的至少一个操作手势所对应的位置、以及相对操作时刻作为手势操作事件。
拦截记录单元71,用于执行以下至少之一:
针对目标应用中的系统关键事件进行拦截,得到系统关键事件所对应的显示参数、显示信息、目标应用的运行状态中至少之一以及相对时刻作为所述系统关键事件记录;
针对目标应用中的预设关键事件,基于针对预设关键事件的预设调用入口,获取预设关键事件对应的调用参数以及相对时刻作为所述预设关键事件记录。
复现单元72,用于基于所述至少一个手势操作事件记录中的相对时刻,和/或至少一个关键事件记录中的相对时刻,对所述至少一个手势操作事件、和/或至少一个关键事件进行排序,得到针对目标应用的操作路径。
复现单元72,用于基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现。
复现单元72,用于执行以下至少之一:
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现手势操作事件记录时,基于所述手势操作事件记录中的操作手势所对应的位置,展示对应的手势操作事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现系统关键事件记录时,将所述系统关键事件记录中的显示参数、显示信息、目标应用的运行状态中至少之一添加至对应的系统关键事件,展示所述系统关键事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现预设关键事件记录时,基于所述预设关键事件记录所对应的预设关键事件以及调用参数,对所述预设关键事件的结果进行展示。
本发明实施例装置中的各模块的功能具体可以参见上述方法中的对应描述,在此不再赘述。
可见,通过采用上述方案,就能够针对目标应用的手势操作事件、关键事件进行拦截以得到对应的记录,再基于对应的记录生成操作路径,最后基于操作路径进行复现。如此,就能够通过基于针对手势操作、关键事件进行准确的复现,从而了解目标应用中可能出现的异常现象,便于后续进行目标应用的分析以及更新处理。
图9示出根据本发明实施例的电子设备的结构框图。如图9所示,包括:存储器810和处理器820,存储器810内存储有可在处理器820上运行的计算机程序。所述处理器820执行所述计算机程序时实现上述实施例中的应用操作的复现方法。所述存储器810和处理器820的数量可以为一个或多个。
还包括:
通信接口830,用于与外界设备进行通信,进行数据交互传输。
存储器810可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器810、处理器820和通信接口830独立实现,则存储器810、处理器820和通信接口830可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,IndustryStandardArchitecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,ExtendedIndustryStandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器810、处理器820及通信接口830集成在一块芯片上,则存储器810、处理器820及通信接口830可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种应用操作的复现方法,其特征在于,所述方法包括:
对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;
基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
2.根据权利要求1所述的方法,其特征在于,所述关键事件至少包括:系统关键事件和/或预设关键事件;所述系统关键事件为在iOS系统中至少部分应用通用的处理事件,所述预设关键事件为所述目标应用与至少部分应用中不同的处理事件;
所述关键事件记录包括:系统关键事件记录以及预设关键事件记录。
3.根据权利要求1所述的方法,其特征在于,所述对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,包括:
获取针对所述目标应用的显示界面的至少一个操作手势所对应的位置、以及相对操作时刻作为手势操作事件。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录,包括以下至少之一:
针对目标应用中的系统关键事件进行拦截,得到系统关键事件所对应的显示参数、显示信息、目标应用的运行状态中至少之一以及相对时刻作为所述系统关键事件记录;
针对目标应用中的预设关键事件,基于针对预设关键事件的预设调用入口,获取预设关键事件对应的调用参数以及相对时刻作为所述预设关键事件记录。
5.根据权利要求4所述的方法,其特征在于,所述基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径,包括:
基于所述至少一个手势操作事件记录中的相对时刻,和/或至少一个关键事件记录中的相对时刻,对所述至少一个手势操作事件、和/或至少一个关键事件进行排序,得到针对目标应用的操作路径。
6.根据权利要求5所述的方法,其特征在于,所述基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现,包括:
基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现。
7.根据权利要求6所述的方法,其特征在于,所述基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现,包括以下至少之一:
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现手势操作事件记录时,基于所述手势操作事件记录中的操作手势所对应的位置,展示对应的手势操作事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现系统关键事件记录时,将所述系统关键事件记录中的显示参数、显示信息、目标应用的运行状态中至少之一添加至对应的系统关键事件,展示所述系统关键事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现预设关键事件记录时,基于所述预设关键事件记录所对应的预设关键事件以及调用参数,对所述预设关键事件的结果进行展示。
8.一种应用操作的复现装置,其特征在于,所述装置包括:
拦截记录单元,用于对针对目标应用的至少一个手势操作事件进行拦截得到至少一个手势操作事件记录,和/或对目标应用的至少一个关键事件进行拦截得到至少一个关键事件记录;
复现单元,用于基于所述至少一个手势操作事件记录和/或至少一个关键事件记录,确定针对所述目标应用的操作路径;基于所述针对目标应用的操作路径,对所述目标应用的处理过程进行复现。
9.根据权利要求8所述的装置,其特征在于,所述关键事件至少包括:系统关键事件和/或预设关键事件;所述系统关键事件为在iOS系统中至少部分应用通用的处理事件,所述预设关键事件为所述目标应用与至少部分应用中不同的处理事件;
所述关键事件记录包括:系统关键事件记录以及预设关键事件记录。
10.根据权利要求8所述的装置,其特征在于,所述拦截记录单元,用于获取针对所述目标应用的显示界面的至少一个操作手势所对应的位置、以及相对操作时刻作为手势操作事件。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述拦截记录单元,用于执行以下至少之一:
针对目标应用中的系统关键事件进行拦截,得到系统关键事件所对应的显示参数、显示信息、目标应用的运行状态中至少之一以及相对时刻作为所述系统关键事件记录;
针对目标应用中的预设关键事件,基于针对预设关键事件的预设调用入口,获取预设关键事件对应的调用参数以及相对时刻作为所述预设关键事件记录。
12.根据权利要求11所述的装置,其特征在于,所述复现单元,用于基于所述至少一个手势操作事件记录中的相对时刻,和/或至少一个关键事件记录中的相对时刻,对所述至少一个手势操作事件、和/或至少一个关键事件进行排序,得到针对目标应用的操作路径。
13.根据权利要求12所述的装置,其特征在于,所述复现单元,用于基于所述针对目标应用的操作路径中包含的所述至少一个手势操作事件、和/或至少一个关键事件的顺序,对所述目标应用的处理过程进行复现。
14.根据权利要求13所述的装置,其特征在于,所述复现单元,用于执行以下至少之一:
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现手势操作事件记录时,基于所述手势操作事件记录中的操作手势所对应的位置,展示对应的手势操作事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现系统关键事件记录时,将所述系统关键事件记录中的显示参数、显示信息、目标应用的运行状态中至少之一添加至对应的系统关键事件,展示所述系统关键事件;
基于所述针对目标应用的操作路径中包含的至少一个手势操作事件记录、所述至少一个系统关键事件记录以及至少一个预设关键事件的顺序,确定需要复现预设关键事件记录时,基于所述预设关键事件记录所对应的预设关键事件以及调用参数,对所述预设关键事件的结果进行展示。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
CN201811600861.8A 2018-12-26 2018-12-26 一种应用操作的复现方法、装置及电子设备 Pending CN109684184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811600861.8A CN109684184A (zh) 2018-12-26 2018-12-26 一种应用操作的复现方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811600861.8A CN109684184A (zh) 2018-12-26 2018-12-26 一种应用操作的复现方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN109684184A true CN109684184A (zh) 2019-04-26

Family

ID=66188487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811600861.8A Pending CN109684184A (zh) 2018-12-26 2018-12-26 一种应用操作的复现方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109684184A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221876A (zh) * 2019-05-30 2019-09-10 维沃移动通信有限公司 一种提示方法及移动终端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007113573A2 (en) * 2006-04-05 2007-10-11 Box Uk Limited Automated measuring of interaction with user interfaces
CN101599038A (zh) * 2009-05-27 2009-12-09 腾讯科技(北京)有限公司 一种记录软件使用信息的系统和方法
CN104346276A (zh) * 2013-08-08 2015-02-11 腾讯科技(深圳)有限公司 软件测试的方法及装置
US20150301921A1 (en) * 2014-02-25 2015-10-22 Tata Consultancy Services Ltd. Computer Implemented System and Method of Instrumentation for Software Applications
CN105607986A (zh) * 2015-01-06 2016-05-25 北京志翔科技股份有限公司 用户行为日志数据采集方法及装置
CN106294116A (zh) * 2015-06-11 2017-01-04 阿里巴巴集团控股有限公司 记录和重现操作过程的方法、装置和系统
CN106844182A (zh) * 2017-02-07 2017-06-13 网易(杭州)网络有限公司 用于记录用户行为的方法、系统及移动终端
CN108874268A (zh) * 2017-05-09 2018-11-23 腾讯科技(深圳)有限公司 用户行为数据的采集方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007113573A2 (en) * 2006-04-05 2007-10-11 Box Uk Limited Automated measuring of interaction with user interfaces
CN101599038A (zh) * 2009-05-27 2009-12-09 腾讯科技(北京)有限公司 一种记录软件使用信息的系统和方法
CN104346276A (zh) * 2013-08-08 2015-02-11 腾讯科技(深圳)有限公司 软件测试的方法及装置
US20150301921A1 (en) * 2014-02-25 2015-10-22 Tata Consultancy Services Ltd. Computer Implemented System and Method of Instrumentation for Software Applications
CN105607986A (zh) * 2015-01-06 2016-05-25 北京志翔科技股份有限公司 用户行为日志数据采集方法及装置
CN106294116A (zh) * 2015-06-11 2017-01-04 阿里巴巴集团控股有限公司 记录和重现操作过程的方法、装置和系统
CN106844182A (zh) * 2017-02-07 2017-06-13 网易(杭州)网络有限公司 用于记录用户行为的方法、系统及移动终端
CN108874268A (zh) * 2017-05-09 2018-11-23 腾讯科技(深圳)有限公司 用户行为数据的采集方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221876A (zh) * 2019-05-30 2019-09-10 维沃移动通信有限公司 一种提示方法及移动终端

Similar Documents

Publication Publication Date Title
US10908766B2 (en) Managing a floating window
US20210397309A1 (en) Interface display method and apparatus, and storage medium
WO2015188674A1 (en) Method and apparatus for displaying information content
WO2018040943A1 (zh) 显示数据的控制方法、装置和系统
CN106126424B (zh) 一种脚本可视化的自动化测试方法、装置和移动终端
US9804767B2 (en) Light dismiss manager
EP3738027B1 (en) Feature usage prediction using shell application feature telemetry
US10831331B2 (en) Window control for simultaneously running applications
CN106681584A (zh) 一种优化应用显示的方法及终端
CN109962881A (zh) 基于工业控制系统的入侵检测方法、装置以及系统
CN107797833A (zh) 智能设备上应用程序的界面显示方法
US10019336B2 (en) Natural language based capturing of user interface interactions
CN109597755A (zh) 文本显示的检测方法、装置、存储介质和电子设备
CN107066188A (zh) 一种发送截屏图片的方法及终端
JP6420048B2 (ja) 企業環境の異常の検出における複数の分解度による可視化
CN107835981A (zh) 在设备之间传送通知
CN110134591A (zh) 一种软件压力测试方法及系统、电子设备
DE112011102694B4 (de) Tragbare elektronische Vorrichtung und Verfahren zu deren Steuerung
CN107679381A (zh) 一种通知信息处理方法及移动终端
CN107080942A (zh) 基于Unity3D的游戏窗口匹配处理方法及系统
CN104978124A (zh) 一种终端展示图片的方法及终端
CN109684184A (zh) 一种应用操作的复现方法、装置及电子设备
CN110035171A (zh) 电子设备及操作辅助方法
CN103870117A (zh) 一种信息处理方法及电子设备
CN113312967A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190426

RJ01 Rejection of invention patent application after publication