硬件设备的调试方法、装置和系统
技术领域
本申请涉及计算机互联网领域,具体而言,涉及一种硬件设备的调试方法、装置和系统。
背景技术
现有技术在开发终端设备的应用软件的过程中,通常采用将被调试设备直接与调试设备连接之后进行调试,例如,在开发移动设备上的网页应用软件WebApp时,可以采用在真实的移动设备上调试WebApp程序,但给所有开发人员配置所有目标机型成本非常高,并且也会造成资源闲置和浪费。
为了解决上述问题,现有技术可以提供如下几种远程调试方法:
1)基于firefox os、android或IOS的WebApp远程调试。
由于firefox os、android或IOS设备上的浏览器提供了远程调试功能,因此,只要把需要调试的设备通过USB连接到装有firefox、Chrome或Safari浏览器的PC上,然后就可以通过调试终端上浏览器中的开发者工具对设备上WebApp进行远程调试。
这种基于firefox os、android或IOS的WebApp远程调试,由于无法统一部署,因此,仍旧需要给开发人员配置所有目标机型,导致成功还是交高,设备利用率低。
2)基于移动设备的远程桌面的远程调试。
可以将一些移动设备部署在云端,并通过远程桌面提供给调制终端的客户进行使用,但这种方式只能提供远程访问移动设备的桌面,但无法调试远程设备上运行的WebApp。
针对上述现有技术无法远程调试设置在云端的设备,导致开发资源缺失或者利用率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种硬件设备的调试方法、装置和系统,以至少解决现有技术无法远程调试设置在云端的设备,导致开发资源缺失或者利用率低的技术问题。
根据本申请实施例的一个方面,提供了一种硬件设备的调试方法,该方法包括:调试终端与设置在云端上的至少一个云端设备建立通信关系,其中,调试终端使用本地安装的远程访问客户端启动远程访问云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功;调试终端基于浏览器引擎提供的调试协议发送调试命令至云端设备;接收云端设备响应调试命令而生成的调试结果。
根据本发明实施例的另一方面,还提供了一种硬件设备的调试装置,该装置包括:远程通信模块,用于调试终端与设置在云端上的至少一个云端设备建立通信关系,其中,调试终端使用本地安装的远程访问客户端启动远程访问云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功;调试模块,用于基于浏览器引擎提供的调试协议发送调试命令至云端设备;接收模块,用于接收云端设备响应调试命令而生成的调试结果。
根据本发明实施例的另一方面,还提供了一种硬件设备的调试系统,该系统包括:设置在云端上的至少一个云端设备;调试终端,与云端上的至少一个云端设备建立通信关系,用于基于浏览器引擎提供的调试协议发送调试命令至云端设备,并接收云端设备响应调试命令而生成的调试结果,其中,调试终端使用本地安装的远程访问客户端启动远程访问云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功。
在本发明实施例中,采用调试终端与设置在云端上的至少一个云端设备建立通信关系;调试终端基于浏览器引擎提供的调试协议发送调试命令至云端设备,其中,调试终端使用本地安装的远程访问客户端启动远程访问云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功;接收云端设备响应调试命令而生成的调试结的方式,通过本申请提供的方案可以在云端统一部署开发者需要用到的设备,在解决了开发者没有设备调试的难题的同时,可以提高设备的利用率,减少设备闲置带来的浪费。而且由于上述方案调制终端与云端设备是通过互联网访问,因此,调试终端上的PC浏览器就可以使用互联网访问云端设备,随时随地完成调试公共,降低了调试应用的门槛。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一的硬件设备的调试系统结构示意图;
图2是根据本申请实施例一的一种优选的硬件设备的调试系统结构示意图;
图3是根据本申请实施例一的一种可选的硬件设备的调试系统结构示意图;
图4是根据本申请实施例一的另一种可选的硬件设备的调试系统结构示意图;
图5是本申请实施例的一种运行硬件设备的调试方法的调试终端的硬件结构框图;
图6是根据本申请实施例二的硬件设备的调试方法的流程图;
图7是根据本法实施例三的硬件设备的调试装置的结构示意图;
图8是根据本法实施例三的一种可选的硬件设备的调试装置的结构示意图;以及
图9是根据本法实施例三的另一种可选的硬件设备的调试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
其中,本申请涉及到的部分技术术语定义如下:
WebApp:基于Web技术(Javascript,CSS和HTML)开发的应用程序。
WebKit:用于运行WebApp的开源的浏览器引擎,例如,IOS和Android的WebApp的运行环境都是基于WebKit构建的。
WebKit调试协议:WebKit把内部的调试能力定义为标准的协议,基于此协议,外部的第三方工具就能调试WebKit上运行的WebApp。
实施例1
在描述本申请的各实施例的进一步细节之前,将参考图1来描述可用于实现本申请的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本申请的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本申请,但它并不意味着限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。
在其最基本的配置中,图1是根据本申请实施例一的硬件设备的调试系统结构示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。
如图1所示,该硬件设备的调试系统可以包括:调试终端10和设置在云端上的至少一个云端设备30。
其中,调试终端10,与云端上的至少一个云端设备30建立通信关系,用于基于浏览器引擎提供的调试协议发送调试命令至云端设备,并接收云端设备响应调试命令而生成的调试结果,其中,调试终端使用本地安装的远程访问客户端启动远程访问上述云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功。
此处需要说明的是,上述响应信息可以是针对云端设备响应调试终端的发送的握手信号或心跳信号,而生成的反馈信号。
结合图2可知,上述云端设备30可以是智能手机(如Android手机、iOS手机等)、平板电脑、电视设备、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。
一种可选的方案中,本申请上述系统中的调试终端可以是发起远程访问的计算机终端或移动终端,该调试终端可以安装浏览器,在调试终端对设置在云端的云端设备进行调试之前,需要对进行调试的设备作为目标机型部署在云端,且需要调试终端与云端设备建立通信关系。此处需要说明的是,上述调试终端可以通过本地浏览器远程访问云端部署的云端设备。
一种可选的方案中,本申请上述系统中的浏览器引擎可以是一种Web浏览器引擎WebKit,网页应用软件WebApp可以运行在WebKit之上。WebKit提供了调试协议(Inspectorprotocol),基于WebKit Inspector protocol就可以实现在自制的调试终端Client上调试WebKit上面运行的网页应用软件WebApp。
优选的,上述示例中,在执行调试终端与设置在云端上的至少一个云端设备建立通信关系之后,可以通过云端设备提供的应用软件列表,选择任意一个或多个应用软件,并启动浏览器引擎生成调试命令。
由此可知,本申请上述系统方案提供了一种云装置,部署在云端的各个目标机型为云端设备,由于调试终端与设置在云端上的至少一个云端设备建立通信关系,因此,开发人员可以通过调试终端上的普通浏览器里访问并操控云端上的设备,而且可以通过调试终端上浏览器引擎提供的调试协议来时远程调试云端设备上的应用软件WebApp,从而解决了现有技术无法远程调试设置在云端的设备,导致开发资源缺失或者利用率低的技术问题,进而为开发人员提供了完善且充足的开发资源,并提高了开发资源的利用率。
由此可知,通过本申请提供的方案可以在云端统一部署开发者需要用到的设备,在解决了开发者没有设备调试的难题的同时,可以提高设备的利用率,减少设备闲置带来的浪费。而且由于上述方案调制终端与云端设备是通过互联网访问,因此,调试终端上的PC浏览器就可以使用互联网访问云端设备,随时随地完成调试公共,降低了调试应用的门槛。
本申请提供的一种可选实施例中,如图1所示,上述提供的系统实施例还可以包括:云端上的端口服务器50。
上述云端上的端口服务器50,分别与云端设备和调试终端建立连接,用于保存云端设备上安装的远程访问服务器的远程访问端口。
如图3所示,上述调试终端10可以包括:访问处理器101,用于安装远程访问客户端,通过远程访问客户端发送访问请求,并在根据访问请求与云端上的端口服务器建立通信关系之后,使用端口服务器提供的远程访问端口访问到对应的云端设备,使得调试终端与云端设备建立通信关系。
结合图3可知,本申请上述访问处理器101上安装的的远程访问客户端可以是VNCClient,其中,调试终端可以通过提供一个连接控件来接收用户输入的远程连接指令,从而触发远程访问客户端生成并发送访问请求。
结合图3可知,本申请上述云端上的端口服务器50可以是一个计算机PC服务器,同样部署在云端,该端口服务器提供了端口映射功能。优选地,端口服务器与云端设备可以通过USB接口进行连接,其中,云端设备上安装的远程访问服务器可以是VNC Server,而远程访问端口即VNC Server提供的端口映射到端口服务器上。
综上分析可知,如图3所示,本申请上述一种可选实施例提供的方案中,通过在调试终端和云端设备上部署一种用于远程桌面访问的软件VNC来实现调试终端和云端设备之间的远程通信,该远程桌面访问软件VNC包括VNC Server和VNC Client,其中,安装了VNCClient的调试终端可以远程访问部署有VNC Server的云端设备的桌面,一种可选的实现方案如下:首先,内置了VNC Server的云端设备通过USB接口与端口服务器(可以是PC服务器)建立连接;然后,通过端口映射的方法,将云端设备上的VNC Server的远程访问端口映射到上述PC服务器上;最后,当用户启动调试终端的PC浏览器上安装的VNC Client插件实现远程访问云端设备的桌面时,会远程访问端口服务器,通过读取端口服务器中暴露的映射端口访问到云端设备上的VNC Server,从而实现了基于VNC的功能成功实现调试终端远程访问云端设备。
在本申请的一种优选实施例中,云端上的端口服务器50还用于保存云端设备上安装的调试代理软件的调试端口;如图4所示,调试终端10还可以包括:调试处理器103,用于运行调试终端上安装的浏览器引擎调试客户端,基于浏览器引擎提供的调试协议发送调试命令,并在浏览器引擎调试客户端与云端上的端口服务器建立通信关系之后,浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备。
结合图4可知,本申请上述优选实施例中,由于主流的云端设备上的网页应用软件WebApp都可以运行在浏览器引擎WebKit之上,浏览器引擎WebKit用于提供调试协议(Inspector protocol),因此,可以在调试终端上安装浏览器引擎调试客户端,使得调试终端支持WebKit Inspector protocol,调试终端基于WebKit Inspector protocol就可以实现在自制的浏览器引擎调试客户端Client上调试WebKit上面运行的网页应用软件WebApp。
此处需要说明的是,本申请上述实施例中的调试代理软件可以是部署在云端设备上的Developer Agent,在云端设备使用USB接口与端口服务器建立连接关系之后,云端设备可以采用USB端口映射的方式将调试代理软件Developer Agent的网络端口映射到端口服务器(可以是PC服务器)上,从而使得调试终端可以通过本地PC浏览器中的浏览器引擎调试客户端(即WebKit调试客户端)利用WebSocket的网络协议实时地与云端设备上的Developer Agent保持通信,发送调试命令到云端设备,最终达到远程调试云端设备的效果。
优选地,上述系统实施例在运行过程中,在实现浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备之前,还可以在云端设备上安装调试代理软件,其中,调试代理软件用于将调试命令转发给调试终端上运行的应用软件,并将应用软件响应调试命令生成的调试结果通过端口服务器反馈给云端设备。
本申请上述实施例中的调试代理软件可以是部署在云端设备上的DeveloperAgent,该调试代理软件用于建立云端设备(例如移动终端)中应用程序WebApp与远端的调试终端IDE之间的网络连接,传递WebKit调试指令。具体的,可以作为一种装置实现将调试终端传来的基于WebKit Inspector protocol的调试命令发送给云端设备上运行的网页应用软件WebApp,然后再将WebApp响应调试命令后的调试结果反馈给外部的端口服务器,最终反馈给调试终端,从而起着外部调试终端与内部云端设备上的WebApp的连接桥梁的作用。
综上分析可知,本申请图4所示的一种优选的方案中,通过在云端设备中部署一个用于将调试指令转发给云端设备上运行的WebApp的装置Developer Agent,然后基于远程桌面访问类似的原理实现远程调试的功能。一种可选的实现方案如下:首先,部署了Developer Agent的云端设备通过USB接口与端口服务器(可以是PC服务器)建立连接;然后,通过端口映射的方法,将云端设备上的调试代理软件Developer Agent的调试端口映射到上述PC服务器上;最后,当用户启动调试终端的PC浏览器上的浏览器引擎调试客户端(即WebKit调试客户端)采用WebKit调试协议来实现远程发送调试云端设备的应用软件时,会远程访问端口服务器,通过读取端口服务器中暴露的调试端口将调试指令发送到云端设备上的,从而实现了基于浏览器引擎的功能成功实现调试终端远程调试云端设备。
此处还需要说明的是,在图3和图4所提供的实施例中,端口服务器可以用于保存远程访问端口列表和调试端口列表,远程访问端口列表用于保存每个云端设备上安装的远程访问服务器的远程访问端口,调试端口列表用于保存每个云端设备上安装的调试代理软件的调试端口。
由此可知,本申请提供了一种基于VNC远程桌面协议将云端统一部署的真实机器暴露在互联网上,有管理性地提供给调试终端的用户远程访问,再通过WebSocket网络调试协议连接本地调试终端的PC端浏览器中的WebIDE和云端的设备,基于WebKit调试协议进行远程调试云端设备中的WebApp。
实施例2
根据本申请实施例,还提供了一种硬件设备的调试方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在计算机终端、移动终端或者类似的运算装置中执行。以运行在计算机终端上为例,图5是本申请实施例的一种运行硬件设备的调试方法的调试终端的硬件结构框图。如图5所示,调试终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,调试终端10还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的硬件设备的调试方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的硬件设备的调试方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至调试终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括调试终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图6所示的硬件设备的调试方法。图6是根据本申请实施例二的硬件设备的调试方法的流程图。
如图6所示,该硬件设备的调试方法可以包括如下步骤:
步骤S20,可以通过图5所示的调试终端与设置在云端上的至少一个云端设备建立通信关系,其中,调试终端使用本地安装的远程访问客户端启动远程访问上述云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功。此处需要说明的是,上述响应信息可以是针对云端设备响应调试终端的发送的握手信号或心跳信号,而生成的反馈信号。
本申请上述步骤S20中的调试终端可以是发起远程访问的计算机终端或移动终端,该调试终端安装有浏览器,在调试终端对设置在云端的云端设备进行调试之前,需要对进行调试的设备作为目标机型部署在云端,且需要调试终端与云端设备建立通信关系。
此处需要说明的是,上述调试终端可以通过本地浏览器远程访问云端部署的云端设备。
步骤S22,可以利用图5所示的调试终端基于浏览器引擎提供的调试协议发送调试命令至云端设备。
本申请上述步骤S22中的浏览器引擎可以是一种Web浏览器引擎WebKit,网页应用软件WebApp可以运行在WebKit之上。WebKit提供了调试协议(Inspector protocol),基于WebKit Inspector protocol就可以实现在自制的调试终端Client上调试WebKit上面运行的网页应用软件WebApp。
优选的,上述示例中,在执行步骤S20调试终端与设置在云端上的至少一个云端设备建立通信关系之后,可以通过云端设备提供的应用软件列表,选择任意一个或多个应用软件,并启动浏览器引擎生成调试命令。
步骤S24,可以通过图5所示的调试终端来接收云端设备响应调试命令而生成的调试结果。
本申请上述方案提供了一种云装置,部署在云端的各个目标机型为云端设备,由于调试终端与设置在云端上的至少一个云端设备建立通信关系,因此,开发人员可以通过调试终端上的普通浏览器里访问并操控云端上的设备,而且可以通过调试终端上浏览器引擎提供的调试协议来时远程调试云端设备上的应用软件WebApp,从而解决了现有技术无法远程调试设置在云端的设备,导致开发资源缺失或者利用率低的技术问题,进而为开发人员提供了完善且充足的开发资源,并提高了开发资源的利用率。
由此可知,通过本申请提供的方案可以在云端统一部署开发者需要用到的设备,在解决了开发者没有设备调试的难题的同时,可以提高设备的利用率,减少设备闲置带来的浪费。而且由于上述方案调制终端与云端设备是通过互联网访问,因此,调试终端上的PC浏览器就可以使用互联网访问云端设备,随时随地完成调试公共,降低了调试应用的门槛。
优选地,本申请上述实施例中的步骤S20实现的调试终端与设置在云服务器上的至少一个云端设备建立通信关系的步骤可以包括如下实施方案:
步骤S201,在调试终端上安装远程访问客户端。
结合图3可知,本申请上述步骤中的远程访问客户端可以是VNC Client。
步骤S203,调试终端通过远程访问客户端发送访问请求。该步骤S203中的调试终端可以通过提供一个连接控件来接收用户输入的远程连接指令,从而触发远程访问客户端生成并发送访问请求。
步骤S205,远程访问客户端根据访问请求与云端上的端口服务器建立通信关系。
结合图3可知,本申请上述步骤中的端口服务器可以是一个计算机PC服务器,同样部署在云端,该端口服务器提供了端口映射功能。
步骤S207,远程访问客户端使用端口服务器提供的远程访问端口访问到对应的云端设备,使得调试终端与云端设备建立通信关系,其中,在端口服务器与云端设备连接之后,将云端设备上安装的远程访问服务器的远程访问端口映射到端口服务器上。
结合图3可知,本申请上述步骤中的端口服务器与云端设备可以通过USB接口进行连接,其中,云端设备上安装的远程访问服务器可以是VNC Server,而远程访问端口即VNCServer提供的端口映射到端口服务器上。
综上分析可知,如图3所示,本申请上述步骤S201至步骤207提供的方案中,通过在调试终端和云端设备上部署一种用于远程桌面访问的软件VNC来实现调试终端和云端设备之间的远程通信,该远程桌面访问软件VNC包括VNC Server和VNC Client,其中,安装了VNCClient的调试终端可以远程访问部署有VNC Server的云端设备的桌面,一种可选的实现方案如下:首先,内置了VNC Server的云端设备通过USB接口与端口服务器(可以是PC服务器)建立连接;然后,通过端口映射的方法,将云端设备上的VNC Server的远程访问端口映射到上述PC服务器上;最后,当用户启动调试终端的PC浏览器上安装的VNC Client插件实现远程访问云端设备的桌面时,会远程访问端口服务器,通过读取端口服务器中暴露的映射端口访问到云端设备上的VNC Server,从而实现了基于VNC的功能成功实现调试终端远程访问云端设备。
优选地,本申请上述实施例中的步骤S22实现的调试终端基于浏览器引擎提供的调试协议发送调试命令至云端设备的步骤可以包括如下实施方案:
步骤S221,运行调试终端上安装的浏览器引擎调试客户端。
结合图4可知,本申请上述实施例中,由于主流的云端设备上的网页应用软件WebApp都可以运行在浏览器引擎WebKit之上,浏览器引擎WebKit用于提供调试协议(Inspector protocol),因此,可以在调试终端上安装浏览器引擎调试客户端,使得调试终端支持WebKit Inspector protocol,调试终端基于WebKit Inspector protocol就可以实现在自制的浏览器引擎调试客户端Client上调试WebKit上面运行的网页应用软件WebApp。
步骤S223,调试终端基于浏览器引擎提供的调试协议发送调试命令。
步骤S225,在浏览器引擎调试客户端与云端上的端口服务器建立通信关系之后,浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备,其中,在端口服务器与云端设备连接之后,将云端设备上安装的调试代理软件的调试端口映射到端口服务器上。
结合图4可知,本申请上述实施例中的调试代理软件可以是部署在云端设备上的Developer Agent,在云端设备使用USB接口与端口服务器建立连接关系之后,云端设备可以采用USB端口映射的方式将调试代理软件Developer Agent的网络端口映射到端口服务器(可以是PC服务器)上,从而使得调试终端可以通过本地PC浏览器中的浏览器引擎调试客户端(即WebKit调试客户端)利用WebSocket的网络协议实时地与云端设备上的DeveloperAgent保持通信,发送调试命令到云端设备,最终达到远程调试云端设备的效果。
优选地,在执行步骤S225浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备之前,还可以执行如下步骤:
步骤S224,在云端设备上安装调试代理软件,其中,调试代理软件用于将调试命令转发给调试终端上运行的应用软件,并将应用软件响应调试命令生成的调试结果通过端口服务器反馈给云端设备。
本申请上述步骤S224中的调试代理软件可以是部署在云端设备上的DeveloperAgent,该调试代理软件用于建立云端设备(例如移动终端)中应用程序WebApp与远端的调试终端IDE之间的网络连接,传递WebKit调试指令。具体的,可以作为一种装置实现将外部传来的基于WebKit Inspector protocol的调试命令发送给云端设备上运行的网页应用软件WebApp,然后再将WebApp响应调试命令后的调试结果反馈给外部的端口服务器,最终反馈给调试终端,从而起着外部调试终端与内部云端设备上的WebApp的连接桥梁的作用。
综上分析可知,如图4所示,本申请上述步骤S221至步骤224提供的方案中,通过在云端设备中部署一个用于将调试指令转发给云端设备上运行的WebApp的装置DeveloperAgent,然后基于远程桌面访问类似的原理实现远程调试的功能。一种可选的实现方案如下:首先,部署了Developer Agent的云端设备通过USB接口与端口服务器(可以是PC服务器)建立连接;然后,通过端口映射的方法,将云端设备上的调试代理软件Developer Agent的调试端口映射到上述PC服务器上;最后,当用户启动调试终端的PC浏览器上的浏览器引擎调试客户端(即WebKit调试客户端)采用WebKit调试协议来实现远程发送调试云端设备的应用软件时,会远程访问端口服务器,通过读取端口服务器中暴露的调试端口将调试指令发送到云端设备上的,从而实现了基于浏览器引擎的功能成功实现调试终端远程调试云端设备。
此处还需要说明的是,在图3和图4所提供的实施例中,端口服务器可以用于保存远程访问端口列表和调试端口列表,远程访问端口列表用于保存每个云端设备上安装的远程访问服务器的远程访问端口,调试端口列表用于保存每个云端设备上安装的调试代理软件的调试端口。
由此可知,本申请提供了一种基于VNC远程桌面协议将云端统一部署的真实机器暴露在互联网上,有管理性地提供给调试终端的用户远程访问,再通过WebSocket网络调试协议连接本地调试终端的PC端浏览器中的WebIDE和云端的设备,基于WebKit调试协议进行远程调试云端设备中的WebApp。
下面就以通过调试终端上的浏览器执行调试部署在云端上的云端设备的WebApp为例对上述图1至图6所示的实施例进行详细描述:
步骤A,在调试终端和云端设备上分别部署VNC Client和VNC Server。
步骤B,在云端设备上部署Developer Agent。
步骤D,在调试终端打开开发者平台,在工具中选择应用调试功能,在点击了调试功能界面上的“连接远程”按钮之后,调试终端通过部署的VNC Client发送远程访问请求。
步骤E,调试终端通过访问端口服务器,从端口服务器上读取记录的远程访问端口来访问到部署了VNC Server的云端设备。
此处需要说明的是,内置了VNC Server的云端设备通过USB接口与端口服务器建立连接之后,会通过端口映射的方法,将云端设备上的VNC Server的远程访问端口映射到上述端口服务器上。
步骤F,在调试终端盒云端设备完成远程访问连接之后,调试终端在本地提供的远程设备的应用列表中选择需要调试的应用软件。例如,可以通过点击应用列表中的应用软件的启动调试控件来实现选中功能。
步骤G,调试终端使用本地浏览器打开调试窗口,并使用浏览器引擎WebKit来发送调试命令。
步骤H,端口服务器在接收到调试命令之后,从端口服务器上读取记录的调试端口来调试部署了调试代理软件Developer Agent的云端设备。
此处需要说明的是,云端设备可以采用USB端口映射的方式将调试代理软件Developer Agent的网络端口映射到端口服务器上。
步骤I,使用读取的调试端口,端口服务器将调试终端发送的调试命令转发给该调试端口对应的云端设备上的WebApp,生成调试结果。
步骤J,云端设备将调试WebApp生成的调试结果通过端口服务器返回给调试终端。
由此可知,本申请上述实施例提供的方案,具备如下优点:
1)统一部署,云端设备利用率提高。
通过云端统一部署开发者需要用到的设备,解决开发者者没有设备调试的难题,并且可以提高设备的利用率,减少设备闲置带来的浪费。
2)互联网访问,随时随地调试云端设备。
通过PC浏览器就能互联网访问云端设备,随时随地调试,降低应用门槛
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在调试终端上运行。
图7是根据本法实施例三的硬件设备的调试装置的结构示意图。
如图7所示,该硬件设备的调试装置可以包括:远程通信模块70、调试模块72和接收模块74。
其中,远程通信模块70,用于调试终端与设置在云端上的至少一个云端设备建立通信关系,其中,调试终端使用本地安装的远程访问客户端启动远程访问上述云端上的至少一个云端设备,在接收到云端设备的响应信息之后,调试终端与云端设备创建通信关系成功。此处需要说明的是,上述响应信息可以是针对云端设备响应调试终端的发送的握手信号或心跳信号,而生成的反馈信号;调试模块72,用于基于浏览器引擎提供的调试协议发送调试命令至云端设备;接收模块74,用于接收云端设备响应调试命令而生成的调试结果。
本申请上述方案提供了一种云装置,部署在云端的各个目标机型为云端设备,由于调试终端与设置在云端上的至少一个云端设备建立通信关系,因此,开发人员可以通过调试终端上的普通浏览器里访问并操控云端上的设备,而且可以通过调试终端上浏览器引擎提供的调试协议来时远程调试云端设备上的应用软件WebApp,从而解决了现有技术无法远程调试设置在云端的设备,导致开发资源缺失或者利用率低的技术问题,进而为开发人员提供了完善且充足的开发资源,并提高了开发资源的利用率。
由此可知,通过本申请提供的方案可以在云端统一部署开发者需要用到的设备,在解决了开发者没有设备调试的难题的同时,可以提高设备的利用率,减少设备闲置带来的浪费。而且由于上述方案调制终端与云端设备是通过互联网访问,因此,调试终端上的PC浏览器就可以使用互联网访问云端设备,随时随地完成调试公共,降低了调试应用的门槛。
此处需要说明的是,上述远程通信模块70、调试模块72和接收模块74对应于实施例一中的步骤S20至步骤S24,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的调试终端10中。
优选地,如图8所示,本申请上述实施例中的远程通信模块70可以包括:第一安装模块701、发送模块703、建立模块705、远程访问模块707。
其中,第一安装模块701,用于安装远程访问客户端;发送模块703,用于通过远程访问客户端发送访问请求;建立模块705,用于远程访问客户端根据访问请求与云端上的端口服务器建立通信关系;远程访问模块707,用于远程访问客户端使用端口服务器提供的远程访问端口访问到对应的云端设备,使得调试终端与云端设备建立通信关系,其中,在端口服务器与云端设备连接之后,将云端设备上安装的远程访问服务器的远程访问端口映射到端口服务器上。
此处需要说明的是,上述第一安装模块701、发送模块703、建立模块705、远程访问模块707对应于实施例一中的步骤S201至步骤S207,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的调试终端10中。
优选地,如图9所示,本申请上述实施例中的调试模块72可以包括:运行模块721和调试命令发送模块723。
其中,运行模块721,用于运行调试终端上安装的浏览器引擎调试客户端;发送模块703还用于基于浏览器引擎提供的调试协议发送调试命令;调试命令发送模块723,用于在浏览器引擎调试客户端与云端上的端口服务器建立通信关系之后,浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备,其中,在端口服务器与云端设备连接之后,将云端设备上安装的调试代理软件的调试端口映射到端口服务器上。
此处需要说明的是,上述运行模块721和调试命令发送模块723,以及发送模块703对应于实施例一中的步骤S221至步骤S225,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的调试终端10中。
优选地,在执行调试命令发送模块723中的浏览器引擎调试客户端使用端口服务器提供的调试端口发送调试命令到对应的云端设备之前,装置还可以执行如下功能模块:第二安装模块,用于在云端设备上安装调试代理软件,其中,调试代理软件用于将调试命令转发给调试终端上运行的应用软件,并将应用软件响应调试命令生成的调试结果通过端口服务器反馈给云端设备。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的调试终端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。