触摸事件的录制及回放方法、装置、存储介质及设备与流程

文档序号:20700106发布日期:2020-05-12 15:34阅读:467来源:国知局
触摸事件的录制及回放方法、装置、存储介质及设备与流程

本说明书涉及计算机技术领域,尤其涉及一种触摸事件的录制及回放方法、装置、存储介质及设备。



背景技术:

随着手机市场的发展,使用安卓手机的用户群越来越大,人们对手机的使用也越来越多,在一些领域,如测试领域,人们很多时候会在手机上进行很多的重复操作,这些操作既无趣也浪费人力。因此,市场上期望有一种能够录制用户操作并通过回放来代替人工重复操作的处理方案。

目前,针对安卓系统的用户操作的录制及回放主要有通过monkeyrunner工具、基于instrumentation这两种方式。monkeyrunner工具是一个基于坐标点的android黑盒自动化测试工具,这一工具提供了一套api让用户/测试人员来调用,然而,通过monkeyrunner工具录制及回放用户在手机上的操作时,需要依赖于电脑,也就是说,需要手机先连接电脑,再在电脑上执行相关操作;instrumentation是android封装的一个测试框架,可以通过它监控系统中正在安装或者使用的应用程序包含的所有交互事件,但是,基于instrumentation录制用户操作时,必须保证测试应用与被测应用具有相同的包名及签名,无法跨应用进行录制。这两种方式的适用范围明显都有所限制。此外,相关技术中还有基于系统事件文件的监控进行录制及回放的方案,然而,系统事件文件的读取需要有adbshell的权限或者是需要root的权限,对于未连接电脑或者未进行root的设备来说是无法进行的。



技术实现要素:

为克服相关技术中存在的问题,本说明书提供了一种触摸事件的录制及回放方法、装置、存储介质及设备。

根据本说明书实施例的第一方面,提供一种触摸事件的录制及回放方法,包括:

生成透明窗口并置于最上层;

当收到录制指令后,检测所述透明窗口接收到的用户触摸信号;

记录所述触摸信号所触发的操作事件的相关信息,所述相关信息包括所述操作事件类型、接收到用户触摸信号的屏幕坐标以及与所述操作事件关联的时间;

当确定回放所述操作事件时,基于所记录的所述操作事件的相关信息模拟相应的触摸事件,以回放所述操作事件。

在某些例子中,上述基于所记录的所述操作事件的相关信息模拟相应的触摸事件通过无障碍服务实现。

在某些例子中,上述基于所记录的所述操作事件的相关信息模拟相应的触摸事件包括:

基于所记录的所述操作事件的相关信息,先通过手势描述类和绘图的路径类进行描述,再通过无障碍服务类的模拟手势方法模拟相应的触摸事件。

在某些例子中,在基于所记录的所述操作事件的相关信息模拟相应的触摸事件之前,还包括步骤:

根据所述操作事件关联的时间,计算收到录制指令后所记录的不止一个操作事件之间的相对时间,以使每个触摸事件的响应顺序与每个操作事件的响应顺序一致。

在某些例子中,上述回放所述操作事件的过程包括:

通知操作系统将所述触摸事件传给顶层应用,以使所述顶层应用响应所述触摸事件。

在某些例子中,记录所述触摸信号所触发的操作事件的相关信息后,上述方法还包括:

将所述操作事件分发到下层窗口,以响应所述操作事件。

在某些例子中,上述方法还包括:

显示至少一控件,以接收所述录制指令和/或回放指令。

在某些例子中,上述方法由一app执行。

在某些例子中,上述方法还包括:

生成记录文本,所述记录文本用于保存录制期间记录的所有操作事件的相关信息

根据本说明书实施例的第二方面,提供一种触发事件的录制及回放装置,包括:

生成模块,用于生成透明窗口并置于最上层;

检测模块,用于当收到录制指令后,检测所述透明窗口接收到的用户触摸信号;

记录模块,用于记录所述触摸信号所触发的操作事件的相关信息,所述相关信息包括所述操作事件类型、接收到用户触摸信号的屏幕坐标以及与所述操作事件关联的时间;

回放模块,用于当确定回放所述操作事件时,基于所记录的所述操作事件的相关信息模拟相应的触摸事件,以回放所述操作事件。

根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。

根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书实施例中,公开了一种触摸事件的录制及回放方法、装置、存储介质及设备,所述方法中,生成一个置于最上层的透明窗口,在录制用户操作时,通过该窗口拦截用户的操作事件并记录操作事件的相关信息,在回放时,基于所记录的相关信息模拟相应的触摸事件,实现对用户操作的录制和回放,省去了重复的手工操作;本说明书实施例的方法,是基于与用户真正所要操作的应用无关的窗口获取用户操作的相关信息,并不是从系统文件中读取,在回放时跳过操作系统授权进行模拟触摸事件,因此,并不依赖于电脑,也不需要root权限,具有较好的适用性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种触摸事件的录制及回放方法的流程图;

图2是本说明书根据一应用实例示出的应用界面的示意图;

图3是本说明书实施例根据一应用实例示出的手势路径的示意图;

图4是本说明书实施例触摸事件的录制及回放装置所在计算机设备的一种硬件结构图;

图5是本说明书根据一示例性实施例示出的一种触摸事件的录制及回放装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在智能设备的使用中,一些领域往往具有重复操作的需求,比如测试领域、游戏领域。以测试领域为例,在web黑盒测试(即web功能测试)中,测试人员需要对表单提交、结果查询等功能进行相应控件的重复多次点击,显然的,操作繁琐、效率低。目前,已经有一些通过工具记录或编写脚本的方式录制操作的过程,通过回放或运行脚本来执行模拟操作的处理方案,用于代替人工重复操作。

目前,针对安卓系统的用户操作的录制及回放主要有通过monkeyrunner工具、基于instrumentation这两种方式。monkeyrunner工具是一个基于坐标点的android黑盒自动化测试工具,这一工具提供了一套api让用户/测试人员来调用,然而,通过monkeyrunner工具录制及回放用户在手机上的操作时,需要依赖于电脑,也就是说,需要手机先连接电脑,再在电脑上执行相关操作;instrumentation是android封装的一个测试框架,可以通过它监控系统中正在安装或者使用的应用程序包含的所有交互事件,但是,基于instrumentation录制用户操作时,必须保证测试应用与被测应用具有相同的包名及签名,无法跨应用进行录制。此外,相关技术中还有基于系统事件文件的监控进行录制及回放的方案,当用户使用一个android应用进行交互时,android设备的传感器产生并发送事件到内核,并将信息存在dev/input/event*目录中的设备文件中,形成系统事件文件,然而,系统事件文件的读取需要有adbshell的权限或者是需要root的权限,对于未连接电脑或者未进行root的设备来说是无法进行的。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明书根据一示例性实施例示出的一种触摸事件的录制及回放方法的流程图,所述方法包括:

在步骤101、生成透明窗口并置于最上层;

在某些例子中,本步骤中提到的透明窗口可以是一个透明的全屏悬浮窗口,在这一步骤中,实现一个置于所有窗口最上层的透明的全屏悬浮窗口,通过该窗口在用户进行操作时记录下所需要的信息,由于该窗口是透明的,并不会对下层窗口的内容进行遮盖,也就是说,不会对用户真正所要操作的应用进行视觉上的遮盖。

窗口是用户界面中最重要的部分,是用户与产生该窗口的应用程序之间的可视界面。一般情况下,每当用户开始运行一个应用程序时,应用程序就创建并显示一个窗口;当用户操作窗口中的对象时,程序会作出相应反应。本步骤中将透明窗口置于最上层,可以是指:将透明窗口进行置顶,使所述透明窗口显示在用户界面所有窗口的最前排。这样,透明窗口就不会被其他窗口所覆盖,从而确保用户操作的窗口是透明窗口。

在步骤102、当收到录制指令后,检测所述透明窗口接收到的用户触摸信号;

在某些例子中,本步骤中提到的用户触摸信号可以表示用户对设备进行的输入操作,通常情况下,表示用户对设备的触摸屏进行的输入操作。用户对设备的触摸屏进行的输入操作中,常见的包括单击、双击、短按、长按、滑动、双指缩放等。一个触摸事件中,可以只由其中一种输入操作组成,也可以由其中多种输入操作组成,例如,一个触摸事件可以是对触摸屏几个位置的单击,也可以是单击后进行滑动。

在步骤103、记录所述触摸信号所触发的操作事件的相关信息,所述相关信息包括所述操作事件类型、接收到用户触摸信号的屏幕坐标以及与所述操作事件关联的时间;

在某些例子中,本步骤中提到的触摸信号所触发的操作事件的相关信息可以通过透明窗口的事件分发函数(dispatchtouchevent())获取得到。dispatchtouchevent()是android事件分发机制中的三个重要函数之一,其余两个分别是onintercepttouchevent()和ontouchevent()。当用户进行操作时,用户触摸信号所触发的操作事件优先回调到透明窗口的事件分发函数,在该函数中可以获取操作事件类型、接收到用户触摸信号的屏幕坐标以及与所述操作事件关联的时间这些信息。与相关技术中通过读取系统事件文件获取用户操作的数据的方式不同,本步骤通过一个透明窗口在用户操作的数据被消费前对其进行拦截,并在拦截时记录下用户操作的数据。由于并未读取系统事件文件,因此并不需要通过电脑的adbshell命令进行读取或通过获取root权限后读取。

其中,操作事件类型可以包括以下任一一种:按下、抬起、滑动。当用户接触到屏幕便会触发操作事件,android系统将其封装成motionevent,按下指的是按下屏幕,抬起指的是从屏幕上移开,滑动指的是在屏幕上滑动。一个单击操作可以认为是由一个按下的操作事件和一个抬起的操作事件组合而成;一个滑动操作可认为是由一个按下的操作事件、一个抬起的操作事件和多个滑动的操作事件组合而成。

在某些例子中,在本步骤中记录所述触摸信号所触发的操作事件的相关信息之后,还包括:将所述操作事件分发到下层窗口,以响应所述操作事件。步骤101至103中通过透明窗口拦截用户操作是为了记录操作的相关信息,在记录之后将操作事件分发到下层窗口,以响应该操作事件,从而让用户的操作在用户真正所要操作的应用上生效。与步骤101对应的,由于透明窗口是置于最上层的,这里的下层窗口指的是除去透明窗口的情况下用户界面所有窗口的最前排。透明窗口是为了拦截用户对真正所要操作的应用的操作事件,因此,本说明书实施例的方法可以是在用户开始运行真正所要操作的应用之后开始执行,或者在执行后使真正所要操作的应用开始运行,在透明窗口置顶的情况下,其下层窗口指的是用户真正所要操作的应用的窗口。

在步骤104、当确定回放所述操作事件时,基于所记录的所述操作事件的相关信息模拟相应的触摸事件,以回放所述操作事件。

在录制好用户操作后,此时的回放是指在当前界面中重复出一模一样的操作,也就是说,需要模拟出录制期间的用户操作。通常来说,在安卓系统中,一个应用的触摸事件要在另一个应用上响应,需要将触摸事件发送给操作系统,再由操作系统发送给要响应的应用上,这个过程需要root权限。而在本步骤中,是将触摸事件直接模拟出来,跳过操作系统。在某些例子中,本步骤中基于所记录的所述操作事件的相关信息模拟相应的触摸事件可以是通过无障碍服务实现。无障碍服务(accessibilityservice)是android系统提供的辅助功能,可以在后台运行,监听用户界面的一些状态转换,例如页面切换、焦点改变、通知等,并当上述可访问事件被触发时接收系统回调。与当前实现安卓设备模拟操作的方案往往受到root权限的制约不同,通过无障碍服务实现模拟操作可以直接将模拟出来的触摸事件发送至用户真正所要操作的应用上由该应用响应,无需root权限,扩大了适用性。

本步骤的具体过程可以包括:基于所记录的所述操作事件的相关信息,先通过手势描述类和绘图的路径类进行描述,再通过无障碍服务类的模拟手势方法模拟相应的触摸事件。手势描述类(gesturedescription)是用于对手势的描述,要实现模拟操作,首先要描述出所要模拟的手势;绘图的路径类(android.graphics.path)是用于对路径的描述,与手势描述类结合,可以描述出所述模拟的手势的路径,例如在一个滑动的操作事件中,其手势可以是多个笔划组成,其路径是笔划跟随的轮廓,而在当一个单击的操作事件中,路径的长度为零,笔划是一个没有移动的点击。描述出所要模拟的操作的手势的路径后,进而通过无障碍服务类的模拟手势方法(dispatchgesture)进行模拟出该操作。通过控制本步骤中回放的次数,进行多次回放,可以解决重复手工操作的问题。

由于记录的信息中,与操作事件关联的时间通常是当时的真实时间,因此,在基于所记录的所述操作事件的相关信息模拟相应的触摸事件之前,还可以包括步骤:根据所述操作事件关联的时间,计算收到录制指令后所记录的不止一个操作事件之间的相对时间,以使每个触摸事件的响应顺序与每个操作事件的响应顺序一致。通过计算出每个操作事件之间的时间间隔,可以在回放时按照时间间隔逐一发送操作事件,从而达到准确地模拟用户操作的目的。

在某些例子中,本步骤中提到的回放所述操作事件的过程可以包括:通知操作系统将所述触摸事件传给顶层应用,以使所述顶层应用响应所述触摸事件。在回放时,顶层应用是指当前模拟出的触摸事件所要操作的应用,在通过无障碍服务模拟出触摸事件之后,通知操作系统将其传给该应用,以使该应用响应该触摸事件,例如,当模拟的触摸事件是双指缩放操作时,通知操作系统将该双指缩放操作传给该应用,以使该应用响应该双指缩放操作。

本说明书实施例,通过实现一个透明窗口在录制时记录用户操作的操作事件的相关信息,再在回放时,基于所记录的相关信息模拟出相应的触摸事件,从而实现了对用户操作的录制和回放,省去了重复的手工操作,并且本说明实施例的方法不依赖电脑,也不需要root权限,因此,具有更广的适用性。

另外,为了实现随时对用户的操作进行录制或回放,在某些例子中,还包括:显示至少一控件,以接收所述录制指令和/或回放指令。该控件中可以包括开始录制、结束录制、回放录制、取消录制之类的按钮,方便用户进行控制。

在录制用户操作时,可以将录制期间所有操作事件的相关信息记录后生成一个记录文本,保存在本地,在回放时加载该记录文本即可。本说明书实施例的方法可以封装成一个应用程序,由该应用程序执行。这样,用户可以将记录文本发送到另一个安装有该应用程序的设备进行回放,从而实现跨设备使用。

为了对本说明书各实施例所描述的方案更加详细地描述,接下来阐述一实际的应用实例。

在本应用实例中,本说明书实施例的方法应用于测试一游戏软件,在原先的处理方案中,测试人员的测试方式是:在测试关卡界面手动点击“开始游戏”,让游戏自动运行,自动运行结束后,手动点击屏幕任意位置,出现游戏通关界面,点击“结束游戏”,回到测试关卡界面,由于需要几百次的测试数据,上述步骤需要重复几百次。在本应用实例中,本说明书实施例的方法由一个应用程序(以下简称app)执行,其步骤如下:

在步骤201、在app启动之后,app提供一个悬浮的控件,用于控制录制和回放,包括开始录制、结束录制、回放录制等按钮;

在步骤202、app生成一个全屏的透明悬浮窗口,并将该窗口置于最上层;

在本应用实例中,如图2所示,图2是本说明书根据一应用实例示出的应用界面的示意图,用户是在打开实际要操作的游戏软件测试关卡界面之后再打开app,由于app生成的是透明悬浮窗口,并不会对该游戏软件的窗口内容造成遮盖,用户可以清楚地看到实际要操作的游戏软件的界面,方便用户知道自己所要操作的位置对应的屏幕位置,比如“开始游戏”这一游戏控件的位置;

在步骤203、在用户通过控件开始录制后,检测悬浮窗口接收到的用户触摸信号;

在步骤204、在用户对设备进行操作时,所触发的操作事件优先回调到悬浮窗口的事件分发函数,在该函数中,获取motionevent中的操作事件类型(代码类型为motionevent.getaction())和接收到用户触摸信号的屏幕坐标(代码类型为getrawx(),getrawy()),并获取与所述操作事件关联的时间这些信息(代码类型为systemclock.uptimemillis()),将这些相关信息进行记录并保存;

在本应用实例中,用户在录制期间一共进行了三次单击操作,分别是点击“开始游戏”、点击屏幕某一位置、点击“结束游戏”,每次单击操作可以认为是一个按下的操作事件和一个抬起的操作事件,app通过悬浮窗口记录操作事件类型,以及每个操作事件对应的屏幕坐标和与其关联的时间这些信息;

在步骤205、记录并保存每个操作事件的相关信息后,将该操作事件分发到下层窗口,以响应该操作事件;

在本应用实例中,悬浮窗口的下层窗口指的是用户实际所要操作的游戏软件待测试关卡界面,例如,当对应用户点击“开始游戏”的操作事件分发到该层窗口时,游戏软件响应该操作事件,以使游戏自动运行;

在步骤206、在用户通过控件结束录制时,将本次录制期间记录的所有操作事件相关信息生成记录文件,保存到本地;

在步骤207、在用户通过控件回放操作时,app加载记录文件,并根据记录文件中记录的操作事件关联的时间计算出操作事件之间的相对时间;

在步骤208、基于所记录的所述操作事件的相关信息,按照相对时间,逐一发送操作事件的相关信息,先通过手势描述类和绘图的路径类进行描述,再通过无障碍服务类的模拟手势方法模拟相应的触摸事件,并通知操作系统将模拟出的触摸事件传给顶层应用,以使该顶层应用响应触摸事件;

在本应用实例中,如图3所示,图3是本说明书实施例根据一应用实例示出的手势路径的示意图,其中,由于该应用实例中触摸事件是单击操作,所以路径为零,在示意图中用圆圈表示一个触摸事件;另外,在回放时,悬浮窗口不显示,顶层应用为测试的游戏软件,在该游戏软件的测试关卡界面,随着回放的进行,app模拟出的触摸事件包括在“开始游戏”控件位置上的点击操作、在屏幕上某一位置的点击操作、在“结束游戏”控件位置上的点击操作,各触摸事件按照其时间间隔被游戏软件响应,从而重复出了之前用户测试时的操作;

在步骤209、用户通过设置自动回放录制的次数,以及间隔时间,将录制的操作进行多次回放,解决了重复手工操作的问题;

在步骤210、用户在另一台设备上进行测试时,在更换后的设备上安装了app,并将更换前的设备中保存的记录文本传输到更换后的设备中,在更换后的设备上测试时直接进行回放操作。

与前述方法的实施例相对应,本说明书还提供了一种触摸事件的录制及回放装置及其所应用的终端的实施例。

本说明书触摸事件的录制及回放装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书实施例触摸事件的录制及回放装置所在计算机设备的一种硬件结构图,除了图4所示的处理器510、内存530、网络接口520、以及非易失性存储器540之外,实施例中装置531所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。

相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。

本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

如图5所示,图5是本说明书根据一示例性实施例示出的一种触摸事件的录制及回放装置的框图,所述装置包括:

生成模块51,用于生成透明窗口并置于最上层;

检测模块52,用于当收到录制指令后,检测所述透明窗口接收到的用户触摸信号;

记录模块53,用于记录所述触摸信号所触发的操作事件的相关信息,所述相关信息包括所述操作事件类型、接收到用户触摸信号的屏幕坐标以及与所述操作事件关联的时间;

回放模块54,用于当确定回放所述操作事件时,基于所记录的所述操作事件的相关信息模拟相应的触摸事件,以回放所述操作事件。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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