CN114003490B - 移动端游戏录制与重放方法、系统、终端及介质 - Google Patents
移动端游戏录制与重放方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN114003490B CN114003490B CN202111183210.5A CN202111183210A CN114003490B CN 114003490 B CN114003490 B CN 114003490B CN 202111183210 A CN202111183210 A CN 202111183210A CN 114003490 B CN114003490 B CN 114003490B
- Authority
- CN
- China
- Prior art keywords
- user input
- recording
- input data
- user
- playback
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000007246 mechanism Effects 0.000 claims abstract description 41
- 230000006978 adaptation Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 abstract description 13
- 230000009471 action Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- 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/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
本发明提供了一种移动端游戏录制与重放方法及系统,获取录制设备的基本信息和录制设备节点的用户输入数据;对用户输入数据中的触屏输入数据进行处理,获取当前方向下的屏幕坐标,生成对应的输入事件并写入相应文件生成未适配用户输入数据,完成录制用户操作;采用同纵宽比适配机制、均匀缩放时间机制、非均匀缩放时间机制,分别生成的适配后的用户输入描述文件,将用户输入描述文件中的输入事件选择性重新写入重放设备节点,重放设备从重放设备节点读取数据,实现重放操作。本发明同时提供了一种相应的终端及介质。本发明实现低时延移动端游戏的录制与重放,进而实现移动端游戏的兼容性测试和压力测试的高度自动化,节约人工成本与时间成本。
Description
技术领域
本发明涉及移动端应用软件(App)技术领域,具体地,涉及一种低时延的移动端游戏录制与重放方法、系统、终端及介质。
背景技术
随着智能终端的普及,移动端游戏市场也迎来了蓬勃发展,不同类型的移动端游戏如雨后春笋般冒出,动辄几十亿的下载量,移动端游戏已经成为人们主流的休闲娱乐方式之一。与此同时,各大手机厂商对于安卓系统的定制化造成了不同品牌,不同机型以及不同系统版本之间的差异广泛存在。为了提供良好的用户体验,移动端游戏需要经过兼容性测试,确保游戏能够在不同品牌,不同机型以及不同系统版本上正常运行。另外,对于游戏而言,前端的压力测试也必不可少,模拟用户高速输入,确保FPS等重要指标稳定。这些测试中存在大量的重复操作,传统的人工测试需要花费大量的人力和时间,已经不能满足版本快速迭代的要求。
现有的一些移动应用录制重放的学术研究与方案如SARA(Self-ReplayAugmented Record and Replay for Android in Industrial Cases)和RANDR(Recordand Replay for Android Appl ications via Targeted Runtime Instrumentation)都是基于安卓框架实现的,通过在安卓框架层拦截用户输入实现录制重放。然而移动端游戏基本都是基于自渲染组件,所以这些基于安卓框架层的录制重放方案并不适用于移动端游戏。
经过检索发现:
授权公告号为CN104407980B的中国发明专利《移动应用自动化测试装置和方法》,只是简单的通过getevent获取坐标,没有进行任何转换,在不同分辨率的设备上会导致重放失败。
授权公告号为CN104866414B的中国发明专利《应用程序的测试方法、装置及系统》,虽然通过图片识别的方式一定程度上解决了不同分辨率设备重放的问题,但是在录制于重放过程中都需要截图解析比对,这可能会造成较高的时延。
授权公告号为CN102841845B的中国发明专利《一种Android设备软件自动测试方法》,通过在界面上覆盖一层透明的View来获取用户输入的横坐标和纵坐标来录制用户输入,但是这是基于Android应用层框架提供的能力,而并不适用于采用自渲染组件的移动端游戏,另外,该方法也只能在同一设备上进行录制重放。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种移动端游戏录制与重放方法、系统、终端及介质,该方法能够在一款设备上完成录制游戏操作,并在同尺寸设备上实现低时延重放操作。
根据本发明的一个方面,提供了一种移动端游戏录制与重放方法,包括:
获取录制设备的基本信息;
获取录制设备节点的用户输入数据;
基于所述用户输入数据,筛选出所述用户输入数据中的触屏输入数据,并根据所述录制设备的基本信息,对所述触屏输入数据进行处理,获得用户触屏输入原始数据;
根据所述用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将所述相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;
将所述默认方向下的屏幕坐标根据录制设备的实际方向进行转换,得到当前方向下的屏幕坐标;
利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件生成未适配用户输入数据,实现录制用户操作;
采用同纵宽比适配机制,将所述未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;
采用均匀缩放时间机制,控制所述未适配用户输入数据的重放速度;
采用非均匀缩放时间机制,控制所述未适配用户输入数据的重放时间间隔;
根据重放设备的基本信息以及用户需求,获取对所述未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,重放设备从所述重放设备节点读取数据,实现重放用户操作。
优选地,所述录制设备的基本信息,包括:设备显示屏的高度和宽度以及设备所支持的多点触控协议的类型。
优选地,所述录制设备节点的用户输入数据通过adb shell getevent命令获取;其中,获得的所述用户输入数据包括:产生用户输入数据的时间戳、录制设备节点信息、事件类型、事件代码和事件的值。
优选地,根据所述录制设备的基本信息,获得的用户触屏输入原始数据,包括:
所述录制设备的基本信息,包括:设备所支持的多点触控协议的类型;
获得的所述用户触屏输入原始数据,包括:
对于支持TypeA协议的设备,所述用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值和触控点长轴的长度值以及事件发生的时间戳;
对于支持TypeB协议的设备,所述用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值、触控点长轴的长度值和触控点标示数据以及事件发生的时间戳。
优选地,所述默认方向下的屏幕坐标为MotionEvent所需要的默认方向下的屏幕坐标。
优选地,利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件,包括:
利用所述当前方向下的屏幕坐标,生成对应的MotionEvent并写入相应的json文件;其中,对于支持TypeA协议的设备,将所述MotionEvent直接写入文件;对于支持TypeB协议的设备,将所述MotionEvent根据触控点标示数据分离为不同触控点的数据,最后将分离后的MotionEvent分为几个部分写入文件。
优选地,所述将用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,包括:
采用minitouch指令将用户输入描述文件中的MotionEvent选择性重新写入重放设备节点。
优选地,所述默认方向为底部向下的方向。
优选地,所述同纵宽比适配机制,包括:
获取重放设备触控点的四点坐标,并分别记为xmin,xmax,ymin,ymax;
获取所述录制设备的基本信息中的屏幕高度和宽度,并分别记为width和height;
获取所述当前方向下的屏幕坐标,并记为(x,y);
则:
获得重放设备的横坐标为:
X=x*(xmax-xmin+1)/width+xmin;
获得重放设备的纵坐标为:
Y=y*(ymax-ymin+1)/height+ymin。
优选地,所述均匀缩放时间机制,包括:
使用户输入一个时间缩放参数;
获取录制设备节点的用户输入数据中产生用户输入数据的时间戳,并乘以所述时间缩放系数,得到新的时间戳;
根据所述新的时间戳发送事件,控制数据的重放速度。
优选地,所述非均匀缩放时间机制,包括:
通过识别发生事件的触控指令区分不同的操作,并通过更改触控指令的时间戳控制不同操作之间的时间间隔,而一个操作内输入事件之间的相对时间间隔不变。
根据本发明的另一个方面,提供了一种移动端游戏录制与重放系统,包括:
基本信息获取模块,该模块获取录制设备的基本信息以及录制设备节点的用户输入数据;
触屏输入数据获取模块,该模块基于所述用户输入数据,筛选出所述用户输入数据中的触屏输入数据,并根据所述录制设备的基本信息,对所述触屏输入数据进行处理,获得用户触屏输入原始数据;
录制用户操作模块,该模块根据所述用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将所述相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;将所述默认方向下的屏幕坐标根据录制设备的方向进行转换,得到当前方向下的屏幕坐标;利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件生成未适配用户输入数据,实现录制用户操作;
数据适配模块,该模块采用同纵宽比适配机制,将未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;采用均匀缩放时间机制,控制未适配用户输入数据的重放速度;采用非均匀缩放时间机制,控制未适配用户输入数据的重放时间间隔;
重放用户操作模块,该模块根据重放设备的基本信息以及用户需求,获取对所述未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将所述用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,重放设备从所述重放设备节点读取数据,实现重放用户操作。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行上述中任一项所述的方法,或,运行上述的系统。
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述中任一项所述的方法,或,运行上述的系统。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
本发明提供的移动端游戏录制与重放方法、系统、终端及介质,是一种在系统内核层面拦截用户输入实现录制重放的技术方案,不仅适用于一般的移动应用,也适用于移动端游戏,
本发明提供的移动端游戏录制与重放方法、系统、终端及介质,具有在相同纵宽比的设备上录制重放以及根据用户输入控制重放速度的能力。
本发明提供的移动端游戏录制与重放方法、系统、终端及介质,能够实现低时延移动端游戏的录制与重放,进而实现移动端游戏的兼容性测试和压力测试的高度自动化,大量节约了人工成本与时间成本。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例中移动端游戏录制与重放方法的工作流程图。
图2为本发明一优选实施例中移动端游戏录制与重放方法的工作流程图。
图3为本发明一实施例中移动端游戏录制与重放系统的组成模块示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图1为本发明一实施例提供的移动端游戏录制与重放方法的工作流程图。
如图1所示,该实施例提供的移动端游戏录制与重放方法,可以包括如下步骤:
S100,获取录制设备的基本信息;
S200,获取录制设备节点的用户输入数据;
S300,基于用户输入数据,筛选出用户输入数据中的触屏输入数据,并根据录制设备的基本信息,对触屏输入数据进行处理,获得用户触屏输入原始数据;
S400,根据用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;
S500,将默认方向下的屏幕坐标根据录制设备的实际方向进行转换,得到当前方向下的屏幕坐标;
S600,利用当前方向下的屏幕坐标生成对应的输入事件并写入相应文件生成未适配用户输入数据,实现录制用户操作;
S700,采用同纵宽比适配机制,将未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;
S800,采用均匀缩放时间机制,控制未适配用户输入数据的重放速度;
S900,采用非均匀缩放时间机制,控制未适配用户输入数据的重放时间间隔;
SX00,根据重放设备的基本信息以及用户需求,获取对未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,重放设备从重放设备节点读取数据,实现重放用户操作。
在该实施例中,S100~S200、S700~S900的步骤顺序不限制。
在该实施例的S100中,作为一优选实施例,录制设备的基本信息,包括:设备显示屏的高度和宽度以及设备所支持的多点触控协议的类型。
在该实施例的S200中,作为一优选实施例,录制设备节点的用户输入数据通过adbshell getevent命令获取;其中,获得的用户输入数据包括:产生用户输入数据的时间戳、录制设备节点信息、事件类型、事件代码和事件的值。
在该实施例的S300中,作为一优选实施例,根据录制设备的基本信息,获得的用户触屏输入原始数据,包括:
录制设备的基本信息,包括:设备所支持的多点触控协议的类型;
获得的用户触屏输入原始数据,包括:
对于支持TypeA协议的设备,用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值和触控点长轴的长度值以及事件发生的时间戳;
对于支持TypeB协议的设备,用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值、触控点长轴的长度值和触控点标示数据以及事件发生的时间戳。
在该优选实施例中,在linux系统下会将触控点描述为椭圆形。
在该实施例的S400中,作为一优选实施例,默认方向下的屏幕坐标为MotionEvent所需要的默认方向下的屏幕坐标。
在该实施例的S400中,作为一优选实施例,默认方向为底部向下的方向。
在该实施例的S600中,作为一优选实施例,利用当前方向下的屏幕坐标生成对应的输入事件并写入相应文件,包括:
利用当前方向下的屏幕坐标,生成对应的MotionEvent并写入相应的json文件;其中,对于支持TypeA协议的设备,将MotionEvent直接写入文件;对于支持TypeB协议的设备,将MotionEvent根据触控点标示数据分离为不同触控点的数据,最后将分离后的MotionEvent分为几个部分写入文件。
在该优选实施例中,json文件用以记录根据屏幕方向调整后的输入事件MotionEvent。
在该实施例的S700中,作为一优选实施例,同纵宽比适配机制,包括:
获取重放设备触控点的四点坐标,并分别记为xmin,xmax,ymin,ymax;
获取录制设备的基本信息中的屏幕高度和宽度,并分别记为width和height;
获取当前方向下的屏幕坐标,并记为(x,y);
则:
获得重放设备的横坐标为:
X=x*(xmax-xmin+1)/width+xmin;
获得重放设备的纵坐标为:
Y=y*(ymax-ymin+1)/height+ymin。
在该实施例的S800中,作为一优选实施例,均匀缩放时间机制,包括:
使用户输入一个时间缩放参数;
获取录制设备节点的用户输入数据中产生用户输入数据的时间戳,并乘以时间缩放系数,得到新的时间戳;
根据新的时间戳发送事件,控制数据的重放速度。
在该实施例的S900中,作为一优选实施例,非均匀缩放时间机制,包括:
通过识别发生事件的触控指令区分不同的操作,并通过更改触控指令的时间戳控制不同操作之间的时间间隔,而一个操作内输入事件之间的相对时间间隔不变。
在该优选实施例中,触控指令(触控动作)可以包括:一个ACTION_DOWN、一个ACTION_UP和若干个ACTION_MOVE;其中每一个触控指令均带有时间戳。通过更改ACTION_DOWN的时间戳,可以控制不同动作之间时间间隔;通过更改ACTION_MOVE和ACTION_UP的时间戳,可以控制一个动作整体完成的时间不变。
在该实施例的SX00中,作为一优选实施例,将用户输入描述文件中的根据需要选择性输入事件重新写入重放设备节点,包括:
采用minitouch指令将用户输入描述文件中的MotionEvent选择性重新写入重放设备节点。
在该优选实施例中,三种适配文件根据需要选择性重新写入。在本发明部分实施例中,针对用户触屏输入,将选择的适配文件写入一个设备节点中。
图2为本发明一优选实施例提供的移动端游戏录制与重放方法的工作流程图。
如图2所示,该优选实施例提供的移动端游戏录制与重放方法,包括录制和重放两部分;其中:
录制部分包括如下步骤:
S1,获取录制设备(如录制用户输入手机)的基本信息,如设备显示屏的高度和宽度以及设备所支持的多点触控协议的类型;
S2,通过adb shell getevent命令获取录制设备节点的用户输入数据,该用户输入数据的结构如[1264.453489]/dev/input/event0:0001 0074 00000001,其中[1264.453489]是产生用户输入数据的时间戳,/dev/input/event0为录制设备节点,0001,0074和00000001均为16进制数,分别代表事件类型,事件代码和事件的值;
S3,筛选出在S2中获取的用户输入数据的触屏输入数据,再根据S1中获取的录制设备所支持的多点触控协议的类型,对于数据进行解析和转换,获得用户触屏输入原始数据;其中:
对于支持TypeA协议的设备来说,需要获取表一中提到的BS_MTPOSITION_X、ABS_MT_POSITION_Y、ABS_MT_PRESSURE和ABS_MT_TOUCH_MAJOR的数据以及事件发生的时间戳;
对于支持TypeB协议的设备来说,除了需要获取ABS_MTPOSITION_X、ABS_MT_POSITION_Y、ABS_MT_PRESSURE和ABS_MT_TOUCH_MAJOR的数据,还需要获取ABS_MT_TRACKING_ID,并以此来识别每一个触控点,当用户进行多指操作时每一个手指对应于一个ABS_MT_TRACKING_ID,同时也需要获取事件发生的时间戳;
S4,将S3中获取的相对于触控元件(即触控点)的绝对坐标的ABS_MTPOSITION_X和ABS_MT_POSITION_Y转化为更为高级的MotionEvent所需要的屏幕坐标;
S5,将S4中获取的默认情况(即底部向下)的坐标根据录制设备(如手机)的方向进行转换,得到当前方向MotionEvent的横坐标和纵坐标;
S6,利用S5转换生成的坐标生成对应的MotionEvent并写入文件生成未适配用户输入数据;
重放部分包括如下步骤:
S7,采用同纵宽比适配机制,将未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备(如智能手机设备);
S8,采用均匀缩放时间机制,控制未适配用户输入数据的重放速度;
S9,采用非均匀缩放时间机制,控制未适配用户输入数据的重放间隔;
S10,根据重放设备的基本信息以及用户的需求,读取S7、S8和S9中对S6中得到的未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,使用minitouch将MotionEvent重新写入重放设备节点,重放设备会从重放设备节点读取数据,实现重放用户操作。
现在的智能手机都支持多点触控,而Android是基于Linux系统,Linux系统根据硬件的差异性支持两种多点触控协议,分别是不区分触控点的TypeA协议和区分触控点的TypeB协议,两者的不同在于TypeA协议会将所有的原始数据传递给接收者,而typeB协议会单独更新每个触控点的数据。在该优选实施例中,涉及到的协议中对于用户触屏输入的描述的参数含义如下表1所示。
表1多点触控协议参数解释
参数类型 | 描述 |
ABS_MT_POSITION_X | 触控点椭圆外形中心点X轴坐标值 |
ABS_MT_POSITION_Y | 触控点椭圆外形中心点Y轴坐标值 |
ABS_MT_PRESSURE | 当前触摸区域的压力,任意单位 |
ABS_MT_TOUCH_MAJOR | 触控点长轴的长度 |
ABS_MT_TRACKING_ID | 标示一个触控点 |
因此,在该优选实施例的S1中,作为一优选实施例,首先通过adb shellgetevent-p获取手机触控元件(即触控点)的四点坐标,分别记为xmin,xmax,ymin,ymax,手机屏幕的高度和宽度,记为width和height,S3中获取的ABS_MTPOSITION_X记为x,ABS_MT_POSITION_Y记为y。则基于屏幕的横坐标可以通过(x-xmin)*width/(xmax-xmin+1)转换得到,基于屏幕的纵坐标可以通过(y-ymin)*height/(ymax-ymin+1)转换得到。
现在的智能手机都支持自动翻转,且移动端游戏大都需要横屏操作,而显示屏上的同一点,智能手机上下左右分别向下时MotionEvent的坐标并不相同。
因此,在该优选实施例的S5中,作为一优选实施例,首先需要获取手机屏幕的宽度和高度,记为width和height,默认状态下MotionEvent的横坐标记为x,纵坐标记为y。当手机左侧向下时,横坐标转化为y,纵坐标转化为width-x。当手机上侧向下时,横坐标转化为width-x,纵坐标转化为height-y。当手机右侧向下时,横坐标转化为height-y,纵坐标转化为x。
在该优选实施例的S6中,作为一优选实施例,根据S1获取的设备支持的多点触控协议类型对MotionEvent进行处理,对于TypeA协议而言,由于不区分不同的触控点,所以将MotionEvent直接写入文件,而TypeB协议支持区分不同的触控点,所以根据ABS_MT_TRACKING_ID分离不同触控点的数据,最后将分离后的MotionEvent分为几个部分写入文件。
由于Android智能手机的碎片化,各种各样的屏幕尺寸层出不穷,但是出于美学与用户体验的考虑,绝大多数智能手机都遵循几个主流的纵宽比,如16:9,19:9和20:9等等。本发明实现了同纵宽比适配机制,能够在一台设备上录制,在分辨率不同但纵宽比相同的智能手机设备上重放。
因此,在该优选实施例的S7中,作为一优选实施例,同纵宽比适配机制获取重放设备触控元件(即触控点)的四点坐标分别记为xmin,xmax,ymin,ymax,获取录制手机的屏幕高度和宽度分别记为width和height,以及经过S5转换得到的MotionEvent的坐标记为x,y。基于重放设备的横坐标可以通过x*(xmax-xmin+1)/width+xmin换算获取,纵坐标可以通过y*(ymax-ymin+1)/height+ymin换算获得。
对于移动端游戏而言,高频操作下FPS的稳定性是保障用户体验的重要指标,所以需要进行前端的压力测试,与此同时,移动端游戏常常存在非常复杂需要高速完成的操作,而这对于测试人员而言复现具有一定的难度,本发明能通过均匀缩放时间机制来控制重放的速度。
因此,在该优选实施例的S8中,作为一优选实施例,均匀缩放时间机制支持用户输入一个时间缩放参数,将S2中获取的时间戳乘以时间缩放系数得到新的时间戳,而重放时按照这个时间戳发送事件,从而达到控制整体重放速度的效果。
本优选实施例不仅支持MotionEvent层面的速度缩放,也实现了非均匀缩放时间机制支持操作动作层面的速度缩放,例如可以控制一次滑动后点击页面两次操作之间的时间间隔。在Android系统中MotionEvent有很多类型,而一次触屏操作会产生包含多个MotionEvent的事件流,正常情况下事件流会以一个ACTION_DOWN事件开始,中间包含多个ACTION_MOVE事件,最后以一个ACTION_UP事件结束。
因此,在该优选实施例的S9中,作为一优选实施例,非均匀缩放时间机制通过识别ACTION_DOWN和ACTION_UP来区分不同的操作,并通过更改时间戳来控制动作之间的时间间隔,而一个动作内MotionEvent之间的相对时间间隔不变。由于Android智能手机的碎片化,不同设备之间的硬件存在较大差异,对于用户触屏操作的响应时间也不尽相同。为了在一台设备上录制,不同设备上重放,以此控制操作的时间间隔,兼容不同设备的时间,对于硬件较差的设备,延长操作之间的时间间隔,避免重放失败。
图3为本发明一实施例提供的移动端游戏录制与重放系统的组成模块示意图。
如图3所示,该实施例提供的移动端游戏录制与重放系统,可以包括如下模块:
基本信息获取模块,该模块获取录制设备的基本信息以及录制设备节点的用户输入数据;
触屏输入数据获取模块,该模块基于用户输入数据,筛选出用户输入数据中的触屏输入数据,并根据录制设备的基本信息,对触屏输入数据进行处理,获得用户触屏输入原始数据;
录制用户操作模块,该模块根据用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;将默认方向下的屏幕坐标根据录制设备的方向进行转换,得到当前方向下的屏幕坐标;利用当前方向下的屏幕坐标生成对应的输入事件并写入文件生成未适配用户输入数据,实现录制用户操作;
数据适配模块,该模块采用同纵宽比适配机制,将未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;采用均匀缩放时间机制,控制未适配用户输入数据的重放速度;采用非均匀缩放时间机制,控制未适配用户输入数据的重放时间间隔;
重放用户操作模块,该模块根据重放设备的基本信息以及用户需求,获取对未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将用户输入描述文件中的输入事件重新写入重放设备节点,重放设备从重放设备节点读取数据,实现重放用户操作。
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照方法的技术方案实现系统的组成,即,方法中的实施例可理解为构建系统的优选例,在此不予赘述。
本发明一实施例提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可用于执行本发明上述实施例中任一项方法,或,运行上述实施例中任一项系统。
本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行本发明上述实施例中任一项方法,或,运行上述实施例中任一项系统。
在上述两个实施例中,可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic RandomAccess Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
本发明上述实施例提供的移动端游戏录制与重放方法、系统、终端及介质,通过在一个设备上截获Linux输入子系统的设备节点的用户输入,将其转化为更高级的MotionEvent,最后在不同的设备上重放用户操作,即能够在一种设备上录制游戏操作,在不同设备上自动化重放这些操作,从而实现低时延移动端游戏的录制与重放,进而实现移动端游戏的兼容性测试和压力测试的高度自动化,大量节约了人工成本与时间成本。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (9)
1.一种移动端游戏录制与重放方法,其特征在于,包括:
获取录制设备的基本信息;
获取录制设备节点的用户输入数据;
基于所述用户输入数据,筛选出所述用户输入数据中的触屏输入数据,并根据所述录制设备的基本信息,对所述触屏输入数据进行处理,获得用户触屏输入原始数据;
根据所述用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将所述相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;
将所述默认方向下的屏幕坐标根据录制设备的实际方向进行转换,得到当前方向下的屏幕坐标;
利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件生成未适配用户输入数据,实现录制用户操作;
采用同纵宽比适配机制,将所述未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;
采用均匀缩放时间机制,控制所述未适配用户输入数据的重放速度;
采用非均匀缩放时间机制,控制所述未适配用户输入数据的重放时间间隔;
根据重放设备的基本信息以及用户需求,获取对所述未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,重放设备从所述重放设备节点读取数据,实现重放用户操作;
所述同纵宽比适配机制,包括:
获取重放设备触控点的四点坐标,并分别记为xmin,xmax,ymin,ymax;
获取所述录制设备的基本信息中的屏幕高度和宽度,并分别记为width和height;
获取所述当前方向下的屏幕坐标,并记为(x,y);
则:
获得重放设备的横坐标为:
X=x*(xmax-xmin+1)/width+xmin;
获得重放设备的纵坐标为:
Y=y*(ymax-ymin+1)/height+ymin;
所述均匀缩放时间机制,包括:
使用户输入一个时间缩放参数;
获取录制设备节点的用户输入数据中产生用户输入数据的时间戳,并乘以所述时间缩放参数,得到新的时间戳;
根据所述新的时间戳发送事件,控制数据的重放速度;
所述非均匀缩放时间机制,包括:
通过识别发生事件的触控指令区分不同的操作,并通过更改触控指令的时间戳控制不同操作之间的时间间隔,而一个操作内输入事件之间的相对时间间隔不变。
2.根据权利要求1所述的移动端游戏录制与重放方法,其特征在于,所述录制设备的基本信息,包括:设备显示屏的高度和宽度以及设备所支持的多点触控协议的类型。
3.根据权利要求1所述的移动端游戏录制与重放方法,其特征在于,所述录制设备节点的用户输入数据通过adb shell getevent命令获取;其中,获得的所述用户输入数据包括:产生用户输入数据的时间戳、录制设备节点信息、事件类型、事件代码和事件的值。
4.根据权利要求1所述的移动端游戏录制与重放方法,其特征在于,根据所述录制设备的基本信息,获得的用户触屏输入原始数据,包括:
所述录制设备的基本信息,包括:设备所支持的多点触控协议的类型;
获得的所述用户触屏输入原始数据,包括:
对于支持TypeA协议的设备,所述用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值和触控点长轴的长度值以及事件发生的时间戳;
对于支持TypeB协议的设备,所述用户触屏输入原始数据包括:触控点椭圆外形中心点X轴坐标值、触控点椭圆外形中心点Y轴坐标值、当前触摸区域的压力值、触控点长轴的长度值和触控点标示数据以及事件发生的时间戳。
5.根据权利要求1所述的移动端游戏录制与重放方法,其特征在于,所述默认方向下的屏幕坐标为MotionEvent所需要的默认方向下的屏幕坐标;
利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件,包括:利用所述当前方向下的屏幕坐标,生成对应的MotionEvent并写入相应的json文件;其中,对于支持TypeA协议的设备,将所述MotionEvent直接写入文件;对于支持TypeB协议的设备,将所述MotionEvent根据触控点标示数据分离为不同触控点的数据,最后将分离后的MotionEvent分为几个部分写入文件;
所述将用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,包括:采用minitouch指令将用户输入描述文件中的MotionEvent选择性重新写入重放设备节点。
6.根据权利要求1所述的移动端游戏录制与重放方法,其特征在于,所述默认方向为底部向下的方向。
7.一种移动端游戏录制与重放系统,其特征在于,包括:
基本信息获取模块,该模块获取录制设备的基本信息以及录制设备节点的用户输入数据;
触屏输入数据获取模块,该模块基于所述用户输入数据,筛选出所述用户输入数据中的触屏输入数据,并根据所述录制设备的基本信息,对所述触屏输入数据进行处理,获得用户触屏输入原始数据;
录制用户操作模块,该模块根据所述用户触屏输入原始数据,获取相对于触控点的绝对坐标,并将所述相对于触控点的绝对坐标转化为默认方向下的屏幕坐标;将所述默认方向下的屏幕坐标根据录制设备的方向进行转换,得到当前方向下的屏幕坐标;利用所述当前方向下的屏幕坐标生成对应的输入事件并写入相应文件生成未适配用户输入数据,实现录制用户操作;
数据适配模块,该模块采用同纵宽比适配机制,将未适配用户输入数据适配至分辨率不同但纵宽比相同的重放设备;采用均匀缩放时间机制,控制未适配用户输入数据的重放速度;采用非均匀缩放时间机制,控制未适配用户输入数据的重放时间间隔;
重放用户操作模块,该模块根据重放设备的基本信息以及用户需求,获取对所述未适配用户输入数据进行对应处理后生成的适配后的用户输入描述文件,将所述用户输入描述文件中的输入事件根据需要选择性重新写入重放设备节点,重放设备从所述重放设备节点读取数据,实现重放用户操作;
所述同纵宽比适配机制,包括:
获取重放设备触控点的四点坐标,并分别记为xmin,xmax,ymin,ymax;
获取所述录制设备的基本信息中的屏幕高度和宽度,并分别记为width和height;
获取所述当前方向下的屏幕坐标,并记为(x,y);
则:
获得重放设备的横坐标为:
X=x*(xmax-xmin+1)/width+xmin;
获得重放设备的纵坐标为:
Y=y*(ymax-ymin+1)/height+ymin;
所述均匀缩放时间机制,包括:
使用户输入一个时间缩放参数;
获取录制设备节点的用户输入数据中产生用户输入数据的时间戳,并乘以所述时间缩放参数,得到新的时间戳;
根据所述新的时间戳发送事件,控制数据的重放速度;
所述非均匀缩放时间机制,包括:
通过识别发生事件的触控指令区分不同的操作,并通过更改触控指令的时间戳控制不同操作之间的时间间隔,而一个操作内输入事件之间的相对时间间隔不变。
8.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可用于执行权利要求1-6中任一项所述的方法,或,运行权利要求7所述的系统。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可用于执行权利要求1-6中任一项所述的方法,或,运行权利要求7所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111183210.5A CN114003490B (zh) | 2021-10-11 | 2021-10-11 | 移动端游戏录制与重放方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111183210.5A CN114003490B (zh) | 2021-10-11 | 2021-10-11 | 移动端游戏录制与重放方法、系统、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003490A CN114003490A (zh) | 2022-02-01 |
CN114003490B true CN114003490B (zh) | 2024-08-23 |
Family
ID=79922531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111183210.5A Active CN114003490B (zh) | 2021-10-11 | 2021-10-11 | 移动端游戏录制与重放方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003490B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754211A (zh) * | 2003-01-24 | 2006-03-29 | Lg电子株式会社 | 管理记录介质上重放速度信息的方法,用于记录视频内容且具有重放速度信息的记录介质,以及用于记录介质的再生方法 |
CN104918068A (zh) * | 2014-03-14 | 2015-09-16 | 富士通株式会社 | 分发方法、重放设备和分发设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048348A (ja) * | 2005-08-08 | 2007-02-22 | Toshiba Corp | 情報記憶媒体、情報再生装置、情報再生方法、及び情報再生プログラム |
JP3919801B1 (ja) * | 2005-12-28 | 2007-05-30 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲーム装置の制御方法及びプログラム |
-
2021
- 2021-10-11 CN CN202111183210.5A patent/CN114003490B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754211A (zh) * | 2003-01-24 | 2006-03-29 | Lg电子株式会社 | 管理记录介质上重放速度信息的方法,用于记录视频内容且具有重放速度信息的记录介质,以及用于记录介质的再生方法 |
CN104918068A (zh) * | 2014-03-14 | 2015-09-16 | 富士通株式会社 | 分发方法、重放设备和分发设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114003490A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111192623B (zh) | 自动化测试的方法、计算机装置以及用户接口 | |
CN111818123B (zh) | 网络前端远程回放方法、装置、设备及存储介质 | |
US8196057B2 (en) | Calculator emulation apparatus | |
CN103377119A (zh) | 一种非标准控件自动化测试方法和装置 | |
CN107770442A (zh) | 拍摄图像的方法、装置及终端 | |
CN101795321A (zh) | 一种基于用户习惯的应用显示方法和移动通信终端 | |
CN111143200A (zh) | 触摸事件的录制及回放方法、装置、存储介质及设备 | |
CN108509343A (zh) | 基于图像识别技术的自动化测试方法及系统 | |
CN105868420A (zh) | 一种网络资源加载方式配置方法及装置 | |
CN110427601A (zh) | 表格处理方法、装置、智能交互平板及存储介质 | |
CN106126424A (zh) | 一种脚本可视化的自动化测试方法、装置和移动终端 | |
CN113076257B (zh) | 测试脚本录制方法、装置、介质及计算机设备 | |
CN113741753A (zh) | 撤销方法、电子设备、存储介质及计算机程序产品 | |
CN101131875A (zh) | 一种寄存器测试的方法和系统 | |
CN117472294B (zh) | 一种存储器及其数据处理方法 | |
WO2019019818A1 (zh) | 加快黑屏手势处理的方法、装置、存储介质及移动终端 | |
CN114003490B (zh) | 移动端游戏录制与重放方法、系统、终端及介质 | |
CN117423377B (zh) | 一种存储器性能的测试系统及测试方法 | |
CN111708704B (zh) | 一种云真机测试方法、装置、终端及存储介质 | |
CN109582566A (zh) | 一种脚本录制方法 | |
CN116128448A (zh) | Fpga工程项目的设计数据处理方法、装置、电子设备 | |
CN115705141A (zh) | 笔迹擦除方法、装置、存储介质及电子设备 | |
CN109542531B (zh) | 一种文件布局调整方法及装置 | |
JP2006025124A5 (zh) | ||
CN113010416A (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 |