一种云手机的数据传输方法、系统、设备及介质与流程

文档序号:31222919发布日期:2022-08-23 17:23阅读:304来源:国知局
一种云手机的数据传输方法、系统、设备及介质与流程

1.本发明涉及数据处理技术领域,尤其涉及一种云手机的数据传输方法、系统、设备及介质。


背景技术:

2.随着大数据、云计算等新兴技术的快速发展,云手机、云游戏等技术成为行业的热点。所谓云手机,即是在一台云服务器上,通过容器等技术,在linux(一种开源操作系统)系统之上虚拟出多个android(安卓)操作系统,每个android操作系统相当于一台云手机。用户通过在客户端连接特定的云手机,就可以实现画面在终端,手机运行在云上的场景。显示在终端设备上的云手机即可享受云端的强算力和存储能力,而不受终端设备的硬件限制。在云手机实现过程中,因为手机画面渲染在云上,因此获取云手机渲染数据并通过网络传输到客户端就成为关键一环。
3.当前在云手机系统内部获取gpu渲染数据的方式有两种,一种是通过opengl(一种图像处理协议)接口直接读取gpu显存数据,另一种是直接截取合成的安卓屏幕画面,然后将抓取到的屏幕数据送给mediacodec(硬件编解码器,通过硬件来加速解码和编码)接口,mediacodec接口可以使用软件编码或调用openmax(open media acceleration,开放多媒体加速层)接口发送给编码卡进行硬件编码,然后形成视频流通过网络发送出去。
4.当前云手机视频流的实现有如下缺陷:通过opengl接口直接读取gpu显存数据,此接口会影响cpu时钟周期,并会强制gpu内部完成所有任务,造成gpu渲染管线停滞,效率比较低。在原始视频流编码方面,若mediacodec接口通过调用openmax接口进而调用编码卡对原始视频流进行硬件编码,由于调用过程中增加了一层openmax,此举会增加系统开销,进而增加云手机与客户端之间的网络延迟。


技术实现要素:

5.有鉴于此,本发明提出了一种云手机的数据传输方法、系统、设备及介质,无需使用opengl接口获取gpu渲染数据(即云手机的屏幕数据),避免了效率低下,并且直接调用硬件编码卡,对采集的屏幕数据进行编码,提高了编码效率的同时,降低了云手机与客户端之间的网络延迟。
6.基于上述目的,本发明实施例的一方面提供了一种云手机的数据传输方法,具体包括如下步骤:
7.在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区,并响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓冲区截取发生变化后的屏幕数据;
8.对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存;
9.基于硬件编码卡从内存中读取处理后的屏幕数据并对读取的屏幕数据进行编码;
10.将编码后的屏幕数据传输到所述客户端。
11.在一些实施方式中,在响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓
冲区截取发生变化后的屏幕数据步骤之后,方法进一步包括:
12.设置回调函数,基于所述回调函数监听所述数据缓冲区中截取的屏幕数据,并响应有新截取的屏幕数据产生,执行所述回调函数以完成对发生变化的屏幕数据的截取。
13.在一些实施方式中,对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存,包括:
14.获取最新的image对象;
15.从所述image对象中获取新截取的屏幕数据的像素矩阵;
16.从所述像素矩阵中获取对应的字节缓冲区,其中,所述字节缓冲区包含预设数据格式的新截取的屏幕数据;
17.将所述对应的字节缓冲区存入内存,以将所述预设数据格式的新截取的屏幕数据存入所述内存。
18.在一些实施方式中,对处理后的屏幕数据进行编码,包括:
19.将硬件编码卡的设备名透传至云手机;
20.将硬件编码卡的软件开发包与云手机的安卓源码编译成共享库,并将所述共享库适配至云手机;
21.调用所述共享库的api读取所述内存中所述处理后的屏幕数据进行编码。
22.在一些实施方式中,在所述在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区步骤之前,进一步包括:
23.获取云手机的屏幕元数据信息;
24.基于所述屏幕元数据信息与客户端建立连接。
25.在一些实施方式中,创建虚拟屏幕包括:
26.基于安卓的反射机制获取surfacecontrol,基于所述surfacecontrol中的createdisplay接口来创建虚拟屏幕以拷贝云手机的原始屏幕。
27.创建数据缓冲区包括:
28.基于屏幕的分辨率信息和预先设置好的屏幕数据的数据格式创建imagereader类;
29.调用所述imagereader类的getsurface接口创建surface数据缓冲区。
30.在一些实施方式中,所述预设数据格式为rgb格式;
31.在所述将所述对应的字节缓冲区存入内存,以将所述预设数据格式的新截取的屏幕数据存入所述内存步骤后,进一步包括:
32.从所述内存中读取rgb格式的新截取的屏幕数据,并将所述rgb格式的屏幕数据转换成yuv格式的屏幕数据后再次存入所述内存。
33.本发明实施例的另一方面,还提供了一种云手机的视频采集系统,其特征在于,包括:
34.截取模块,所述截取模块配置为在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区,并响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓冲区截取发生变化后的屏幕数据;
35.处理模块,所述处理模块配置为对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存;
36.编码模块,所述编码模块配置为基于硬件编码卡从内存中读取处理后的屏幕数据并对读取的屏幕数据进行编码;
37.传输模块,所述传输模块配置为将编码后的屏幕数据传输到所述客户端。
38.本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
39.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
40.本发明至少具有以下有益技术效果:通过创建虚拟屏幕和数据缓冲区截取屏幕数据,提高了屏幕数据截取效率,进而提高了视频传输效率;并且直接调用硬件编码卡,对采集的屏幕数据进行编码,提高了屏幕数据编码效率,降低了云手机与客户端之间的网络延迟。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
42.图1为本发明提供的云手机的数据传输方法的一实施例的框图;
43.图2为本发明提供的云手机的视频采集系统的一实施例的示意图;
44.图3为本发明提供的计算机设备的一实施例的结构示意图;
45.图4为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
46.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
47.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
48.基于上述目的,本发明实施例的第一个方面,提出了一种云手机的数据传输方法的实施例。如图1所示,其包括如下步骤:
49.s10、在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区,并响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓冲区截取发生变化后的屏幕数据;
50.s20、对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存;
51.s30、基于硬件编码卡从内存中读取处理后的屏幕数据并对读取的屏幕数据进行编码;
52.s40、将编码后的屏幕数据传输到所述客户端。
53.具体的,在云手机与客户端建立连接后,其中客户端指的是手机,通过获取安卓系统(即云手机)的surfacecontrol接口,并通过surfacecontrol接口的createdisplay接口
来创建virtualdisplay作为虚拟屏幕,通过虚拟屏幕实时拷贝云手机原始的屏幕数据;通过调用安卓的imagereader类创建surface作为数据缓冲区,用于在虚拟屏幕的屏幕发生变化时截取发生变化后的屏幕数据,当屏幕数据有变化时,调用并执行回调函数,在回调函数中对截取的屏幕数据进行处理;将编码卡直接透传至容器内部,然后将编码卡的软件开发工具包随安卓系统编译,然后调用编码卡开发工具包的api,将处理后的屏幕数据送至硬件编码卡进行编码,最后将编码后的数据通过网络传输至用户。
54.本实施例,无需使用opengl接口获取云手机的屏幕数据,提高了屏幕数据截取效率,进而提高了视频传输效率;并且直接调用硬件编码卡,对采集的屏幕数据进行编码,提高了屏幕数据编码效率,降低了云手机与客户端之间的网络延迟。
55.在一些实施方式中,在响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓冲区截取发生变化后的屏幕数据步骤之后,方法进一步包括:
56.设置回调函数,基于所述回调函数监听所述数据缓冲区中截取的屏幕数据,并响应有新截取的屏幕数据产生,执行所述回调函数以完成对发生变化的屏幕数据的截取。
57.具体的,创建virtualdisplay。virtualdisplay是安卓系统提供的一个虚拟屏幕,是原始屏幕的拷贝,其存在于内存中,用于作为屏幕数据产生的“生产者”。
58.构建surface数据缓冲区。surface是屏幕数据消费者提供给屏幕数据的生产者的一块数据缓冲区,生产者们(即virtualdisplay)可以在surface上进行图像内容的生产,消费者们会把生产出来的数据消费到屏幕上面(绘制出来)或者是转换成消费者所希望的数据。利用安卓系统的imagereader类创建的surface,允许云手机的应用程序直接访问surface的图像数据。
59.调用imagereader类中的setonimageavailablelistener接口设置回调函数,基于该回调函数监听在surface上新截取的屏幕数据,当有新的屏幕数据出现时,即可执行此回调函数以完成对新的屏幕数据的截取,从而进入下一步的屏幕数据的处理。
60.本实施例,通过创建virtualdisplay来拷贝云手机的原始屏幕;构建surface数据缓冲区,以使virtualdisplay的屏幕变化在surface上生产;设置回调函数,基于回调函数监听surface中的屏幕数据,并响应有新的屏幕数据产生,即有新的截屏数据出现时,执行回调函数以完成对发生变化的屏幕数据的截取,整个过程无需使用opengl接口获取云手机的屏幕数据,提高了屏幕数据截取效率,进而提高了视频传输效率。
61.在一些实施方式中,对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存,包括:
62.获取最新的image对象;
63.从所述image对象中获取新截取的屏幕数据的像素矩阵;
64.从所述像素矩阵中获取对应的字节缓冲区,其中,所述字节缓冲区包含预设数据格式的新截取的屏幕数据;
65.将所述对应的字节缓冲区存入内存,以将所述预设数据格式的新截取的屏幕数据存入所述内存。
66.具体的,在回调函数中,调用imagereader类中的acquirelatestimage接口获取最新的image对象,屏幕数据信息包含在image对象中;获取image对象中最新的image数据(即屏幕数据)的像素矩阵plane。这里,plane为类;调用plane类中的getbuffer接口获取plane
类中包含最新产生的屏幕数据的字节缓冲区bytebuffer,其中,bytebuffer里面就包含一帧预先设置好的数据格式的屏幕数据,例如rgb格式的屏幕数据;将获取的字节缓冲区bytebuffer存入内存中。至此获取到了最新产生的屏幕数据。通过上述方案保存到内存的屏幕数据可以直接调用硬件编码卡,读取内存中的屏幕数据进行编码,提高了屏幕数据编码效率,降低了云手机与客户端之间的网络延迟。
67.在一些实施方式中,对处理后的屏幕数据进行编码,包括:
68.将硬件编码卡的设备名透传至云手机;
69.将硬件编码卡的软件开发包与云手机的安卓源码编译成共享库,并将所述共享库适配至云手机;
70.调用所述共享库的api读取所述内存中所述处理后的屏幕数据进行编码。
71.具体的,首先将硬件编码卡设备透传至云手机。云手机在主机的安卓容器中,若是云手机对屏幕数据的编码想直接使用硬件编码卡,则需将硬件编码卡在主机上的设备名直接暴露在安卓容器中,例如,使用docker命令选项-device参数将硬件编码卡的设备名称暴露于安卓容器中,以使安卓容器中云手机的应用程序能够访问硬件编码卡。
72.然后将硬件编码卡的软件开发包和云手机的安卓源码一同编译,形成共享库,以共享库的形式适配至安卓系统,以便云手机的应用程序能够基于共享库访问硬件编码卡。
73.最后调用共享库中的api,读取内存中的存储的预设数据格式的屏幕数据进行编码,编码后输出的格式可以是h264或其他编码卡支持的格式。
74.本实施例,通过直接调用硬件编码卡,读取内存中的屏幕数据进行编码,提高了屏幕数据编码效率,降低了云手机与客户端之间的网络延迟。
75.在一些实施方式中,在所述在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区步骤之前,进一步包括:
76.获取云手机的屏幕元数据信息;
77.基于所述屏幕元数据信息与客户端建立连接。
78.具体的,在采集云手机屏幕数据前,首先需要获取云手机屏幕的元数据信息。元数据信息,即是创建云手机时指定云手机的一些参数信息,云手机的元数据信息一方面作为传输协议的一部分发送至客户端,另一方面作为后面调用的参数。元数据信息包括云手机视频流获取软件的版本号(占1个字节)、云手机屏幕分辨率(宽度和高度分别占4个字节,共计8个字节)、云手机屏幕刷新率fps(占1个字节)、云手机屏幕的旋转角度(1个字节)。云手机的元数据信息共占据11个字节,在元数据信息之后再加8位1(1个字节),该1个字节的信息作为传输协议结束的标志,用于客户端收到元数据信息时检查协议头的完整性,当检查协议的最后一个字节为连续的8位1时,表示协议头结束,此时客户端可进行图片数据的接收。元数据信息共12个字节。此12字节的信息作为云手机和客户端传输协议的头信息。云手机视频流获取进程运行时,首先会获取云手机屏幕11个字节的元数据信息,当云手机和客户端建立连接时,首先会将上述的11个字节外加1个字节作为传输协议的头信息的元数据信息发送至客户端,客户端解析并检查接收到的信息,若发现是正常的协议头,则准备接受后面的数据流。值得说明的是,本发明提供的方法可支持720p和1080p分辨率,但不限于此,其中,720p对应的屏幕尺寸为宽度1280,高度720,1080p对应的屏幕尺寸为宽度1920,高度1080。fps支持30和60,但不限于此。云手机屏幕方向支持横屏和竖屏,在元数据信息中分别
以0和90代替。
79.在首次连接到客户端时,需要将步骤s1中获取配置的云手机屏幕信息发送至客户端,且本信息在一次云手机连接过程中,只需要发送一次。当云手机与客户端断开,再次连接时,再发送。发送完协议头才能发送图片数据。
80.在一些实施方式中,创建虚拟屏幕包括:
81.基于安卓的反射机制获取surfacecontrol,基于所述surfacecontrol中的createdisplay接口来创建虚拟屏幕以拷贝云手机的原始屏幕。
82.创建数据缓冲区包括:
83.基于屏幕的分辨率信息和预先设置好的屏幕数据的数据格式创建imagereader类;
84.调用所述imagereader类的getsurface接口创建surface数据缓冲区。
85.具体的,创建virtualdisplay。virtualdisplay是安卓系统提供的一个虚拟屏幕,是原始屏幕的拷贝,其存在于内存中,用于作为屏幕数据产生的“生产者”。安卓系统提供了mediaprojectionmanager服务,根据构建surface数据缓冲区来创建virtualdisplay,但此方案需要使用context来获取mediaprojectionmanager,并且会在手机屏幕上弹出一个授权允许的窗口,用户同意之后才能进行截屏(即本发明中提到的),此方法仅适用于截取实体安卓手机的屏幕,对于云手机来说,安卓系统跑在linux操作系统的容器中,因此无法获取云手机的屏幕,并且即便通过上述方案可以获取云手机的屏幕,当云手机多路并发时,需要对多个应用程序的截屏授权去一一进行同意,极大的降低了屏幕数据采集效率。
86.因此我们需要进行更高权限的截屏处理,利用安卓的反射机制来获取surfacecontrol,surfacecontrol是安卓系统中隐藏的api;然后利用surfacecontrol的createdisplay接口来创建virtualdisplay。
87.构建surface数据缓冲区。surface是屏幕数据消费者提供给屏幕数据的生产者的一块数据缓冲区,生产者们(即virtualdisplay)可以在surface上进行图像内容的生产,消费者们会把生产出来的数据消费到屏幕上面(绘制出来)或者是转换成消费者所希望的数据。构建surface的具体过程如下:
88.首先获取的屏幕的分辨率信息以及符合视频流数据格式要求的对象的数据格式信息,基于屏幕的分辨率信息以及数据格式信息创建imagereader类,例如,可以将对象的数据格式设置为rgb);其次,调用imagereader类的getsurface接口获取surface。利用安卓系统的imagereader类创建的surface,允许云手机的应用程序直接访问surface的图像数据。
89.调用imagereader类中的setonimageavailablelistener接口设置回调函数,基于该回调函数监听virtualdisplay在surface上生产的屏幕数据,当有新的屏幕数据出现时,即可执行此回调函数,从而进入下一步的屏幕数据的处理。
90.本实施例,通过创建virtualdisplay来拷贝云手机的原始屏幕;构建surface数据缓冲区,以使virtualdisplay的屏幕变化在surface上生产;设置回调函数,基于回调函数监听surface中的屏幕数据,并响应有新的屏幕数据产生,即有新的截屏数据出现时,执行回调函数以完成对发生变化的屏幕数据的截取,整个过程无需使用opengl接口获取云手机的屏幕数据,提高了屏幕数据截取效率,进而提高了视频传输效率。
91.在一些实施方式中,所述预设数据格式为rgb格式;
92.在所述将所述对应的字节缓冲区存入内存,以将所述预设数据格式的新截取的屏幕数据存入所述内存步骤后,进一步包括:
93.从所述内存中读取rgb格式的新截取的屏幕数据,并将所述rgb格式的屏幕数据转换成yuv格式的屏幕数据后再次存入所述内存。
94.具体的,yuv格式包括yuv420、yuv422、yuv444等,但不限于此。yuv数据格式的占用存储空间较小。
95.将rgb格式的屏幕数据转换成yuv格式的屏幕数据后再次存入内存以减少对内存空间的占用,以便硬件编码卡从内存中读取屏幕数据时节省读取时间,提高编码效率。
96.基于同一发明构思,根据本发明的另一个方面,如图2所示,本发明的实施例还提供了一种云手机的视频采集系统,其包括:
97.截取模块110,所述截取模块110配置为在云手机与客户端建立连接后,创建虚拟屏幕以及数据缓冲区,并响应于所述虚拟屏幕的屏幕数据发生变化,在所述数据缓冲区截取发生变化后的屏幕数据;
98.处理模块120,所述处理模块120配置为对截取的屏幕数据进行处理并将处理后的屏幕数据保存至内存;
99.编码模块130,所述编码模块130配置为基于硬件编码卡从内存中读取处理后的屏幕数据并对读取的屏幕数据进行编码;
100.传输模块140,所述传输模块140配置为将编码后的屏幕数据传输到所述客户端。
101.具体的,截取模块在云手机与客户端建立连接后,通过获取安卓系统(即云手机)的surfacecontrol接口,并通过surfacecontrol接口的createdisplay接口来创建virtualdisplay作为虚拟屏幕,通过虚拟屏幕实时拷贝云手机原始的屏幕数据;截取模块还通过调用安卓的imagereader类创建surface作为数据缓冲区,用于在虚拟屏幕的屏幕发生变化时截取发生变化后的屏幕数据,当屏幕数据有变化时,调用并执行回调函数;处理模块在回调函数中对截取的屏幕数据进行处理;编码模块将编码卡直接透传至容器内部,然后将编码卡的软件开发工具包随安卓系统编译,然后调用编码卡开发工具包的api,将处理后的屏幕数据送至硬件编码卡进行编码,最后传输模块将编码后的数据通过网络传输至用户。
102.本实施例,无需使用opengl接口获取云手机的屏幕数据,提高了屏幕数据截取效率,进而提高了视频传输效率;并且直接调用硬件编码卡,对采集的屏幕数据进行编码,提高了屏幕数据编码效率,降低了云手机与客户端之间的网络延迟。
103.基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备30,在该计算机设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。
104.其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的所述云手机的数据传输方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的云手机的数据传输方法。
105.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
106.基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。
107.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
108.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
109.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
110.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
111.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1