远程调试方法、计算机设备、存储装置和远程调试系统与流程

文档序号:21637673发布日期:2020-07-29 02:48阅读:221来源:国知局
远程调试方法、计算机设备、存储装置和远程调试系统与流程

本申请涉及远程程序调试技术领域,特别是涉及一种远程调试方法、计算机设备、存储装置和远程调试系统。



背景技术:

移动端产品研发经常会遇到应用程序上线后,在客户使用测试手机或者特点的环境下出现故障,尤其是安卓应用程序。随着安卓手机生产厂商的增多,安卓手机碎片化日益严重,很难保证应用程序在上线前在所有机型上测试通过。

而一旦应用程序异常,让调试人员去现场调试异常程序,费时费力,若多个设备的应用程序发生异常状况,对调试人员来说更显得无力。现行通常进行远程调试,进行远程调试时常需要用户配合对远程设备进行操作以配合调试,而时常由于远程设备的附近没有配合的人员且又需要即刻对异常应用程序进行修复,将导致异常应用程序不能得到及时修复。



技术实现要素:

本申请主要提供一种远程调试方法、计算机设备、存储装置和远程调试系统,以解决远程调试时需要远程设备附近的人员配合对远程设备进行操作以修复故障程序的问题。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种远程调试方法。该远程调试方法包括:远程设备与调试设备通信连接;远程设备开放权限给调试设备,其中调试设备依据权限对远程设备的故障程序进行调试,并形成程序修复信息;远程设备传输屏显信息给调试设备,其中调试设备依据屏显信息对故障程序进行操作,并形成操作指令;远程设备获取调试设备传输的程序修复信息和操作指令,并基于程序修复信息和操作指令对故障程序进行修复。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种远程调试方法。该远程调试方法包括:调试设备与远程设备通信连接;调试设备获取远程设备的权限;调试设备依据权限对远程设备的故障程序进行调试,以形成程序修复信息;调试设备依据远程设备传输的屏显信息对故障程序进行操作,并形成操作指令;调试设备传输程序修复信息和操作指令给远程设备,以对远程设备的故障程序进行修复。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机设备。该计算机设备包括处理器和存储器,处理器耦接存储器,存储器用于存储程序,处理器用于执行程序以实现如上述的远程调试方法。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种存储装置。该存储装置存储有程序,程序被执行时能够实现如上述的远程调试方法。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种远程调试系统。远程调试系统包括调试设备、远程设备、p2p服务器和中继服务器,调试设备通过p2p服务器或中继服务器与远程设备通信连接,远程设备能够实现如权利要求1至6任一项所述的远程调试方法,调试设备能够实现如权利要求7至11任一项所述的远程调试方法。

本申请的有益效果是:区别于现有技术的情况,本申请公开了一种远程调试方法、计算机设备、存储装置和远程调试系统。通过远程设备与调试设备建立通信连接,并开放权限给调试设备,以便于调试设备对远程设备的故障程序进行调试,并形成程序修复信息,同时远程设备传输屏显信息给调试设备,调试设备依据屏显信息对故障程序进行操作,并形成操作指令,远程设备获取该程序修复信息和操作指令,以使得远程设备在执行程序修复信息对故障程序进行修复时,能够确保远程设备对故障程序的修复动作给予及时的支持与配合,使得对故障程序的调试得以顺利地完成,从而无需远程设备附近的人员辅助操作即可完成对远程设备的故障程序的修复。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:

图1是本申请提供的远程调试方法一实施例的流程示意图;

图2是图1远程调试方法中步骤s13的流程示意图;

图3是图2中步骤s132的流程示意图;

图4是图1远程调试方法中步骤s14的流程示意图;

图5是本申请提供的另一远程调试方法一实施例的流程示意图;

图6是图5远程调试方法中步骤s23的流程示意图;

图7是图5远程调试方法中步骤s24的流程示意图;

图8是本申请提供的计算机设备一实施例的结构示意图;

图9是本申请提供的存储装置一实施例的结构示意图;

图10是本申请提供的远程调试系统一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。

请参阅图1,图1是本申请提供的一种远程调试方法的流程示意图,本实施例中,该远程调试方法基于远程设备的一端,该远程调试方法包括:

s11:远程设备与调试设备通信连接。

远程设备可以是手机、平板电脑或电子手表等可以运行应用程序的计算机设备,调试设备可以是台式电脑、平板电脑等可以运行调试程序的计算机设备。

通常远程设备和调试设备运行在不同的网络中,并且远程设备和调试设备彼此还处于异地,因而远程设备和调试设备难以实现端对端地有线通信连接。

远程设备通常运行在外网环境中,例如远程设备为手机,手机与环境中的基站通信。调试人员通常在内网环境中工作,调试设备也通常运行在内网环境中,例如调试设备为个人电脑,其与公司的局域网络通信。进而通常远程设备和调试设备运行在不同的网络中,远程设备与调试设备需要建立跨网通信以实现跨网调试。

本实施例中,远程设备与调试设备通过p2p服务器或中继服务器通信连接。具体地,远程设备中包括有第一p2p代理站点(p2pproxy),第一p2p代理站点可与p2p服务器(p2pserver)建立连接,从而远程设备可通过第一p2p代理站点与p2p服务器之间进行数据传输。调试设备中包括有第二p2p代理站点,第二p2p代理站点可与p2p服务器建立连接,从而调试设备可通过第二p2p代理站点与p2p服务器之间进行数据传输。

具体地,第一p2p代理站点通过p2p穿网操作与第二p2p代理站点进行通讯,如果穿网成功,第一p2p代理站点与第二p2p代理站点能直接进行数据传输,即调试设备与远程设备可进行p2p直连而直接进行数据传输。如果穿网失败,即远程设备与调试设备p2p直连失败,第一p2p代理站点与第二p2p代理站点不能直接进行数据传输,需要通过中继服务器进行数据转发,即调试设备与远程设备通过中继服务器进行通信进而间接进行数据传输。

需要说明的是,第一p2p代理站点和第二p2p代理站点为程序代码。

远程设备开机后,启动第一p2p代理站点,并通过第一p2p代理站点将向该远程设备注册到p2p服务器中,p2p服务器生成该远程设备的唯一身份标识,该身份标识可以是一段字符编号或二维码,或者该身份标识包括字符编号和与该字符编号关联的二维码。

进一步地,远程设备还检测判断是否注册成功,若注册不成功,则提示用户重启远程设备以修复注册不成功的故障,并再次通过第一p2p代理站点向p2p服务器进行注册。

该远程设备的身份标识可被调试设备的第二p2p代理站点识别并通过p2p服务器或中继服务器与第一p2p代理站点进行通信连接,即远程设备和调试设备通过p2p服务器或中继服务器建立的数据传输通道。

进一步地,第一p2p代理站点和第二p2p代理站点之间还进行p2p打洞和p2p穿透,使得调试设备直接穿网到远程设备所在的网络而进行p2p直连,从而极大地提高了远程设备和调试设备之间的数据传输速度和数据传输能力。

s12:远程设备开放权限给调试设备,其中调试设备依据权限对远程设备的故障程序进行调试,并形成程序修复信息。

远程设备和调试设备通过p2p服务器或中继服务器建立数据传输通道后,调试设备将获取远程设备的一些信息及权限,从而便于对远程设备上的故障程序进行调试。

远程设备开放权限给调试设备,该权限可以是系统运行权限或者普通用户权限,该权限不同于root权限,即远程设备无需开放root权限即可接受调试设备的调试操作。其中,调试设备依据权限可对远程设备的故障程序进行调试,并形成程序修复信息。

具体地,远程设备运行命令守护线程(cmddameon),命令守护线程获取远程设备的系统运行权限,并开放远程设备的系统运行权限给调试设备,其中调试设备中的开发工具依据系统运行权限对故障程序进行远程断点调试,进而获取故障程序相关故障信息,并据此形成程序修复信息,之后调试设备将程序修复信息传输给远程设备,以完成远程设备中故障程序的修复。

s13:远程设备传输屏显信息给调试设备,其中调试设备依据屏显信息对故障程序进行操作,并形成操作指令。

调试设备获取了远程设备的权限后,进一步获取远程设备的屏显信息,以辅助对故障程序进行修复。

屏显信息为远程设备的操作界面信息,当远程设备无人操作时,一些对故障程序进行调试的指令无法得到执行。例如,远程设备的操作界面显示询问是否允许将程序修复信息加载至故障程序中或者是否允许对故障程序进行修改等内容,需要用户去确认授权但没有用户对远程设备的屏幕进行操作,进而使得调试设备对远程设备的调试修复无法进行下去。

因而,远程设备还传输屏显信息给调试设备,调试人员控制调试设备依据屏显信息对故障程序进行操作,并形成操作指令,以在后续将该操作指令传输给远程设备,进而辅助调试故障程序。

具体地,步骤s13可分成如下步骤执行。参阅图2,图2是步骤s13的流程示意图。

s131:远程设备的第一图像捕捉线程采集远程设备的屏显信息。

调试设备获取了远程设备的系统运行权限后,运行远程设备的命令守护线程,并指示命令守护线程开启远程设备的第一图像捕捉线程,远程设备的第一图像捕捉线程采集远程设备的屏显信息。

s132:传输屏显信息给调试设备。

远程设备的命令守护线程进一步响应调试设备的调试命令,以传输屏显信息给调试设备。

步骤s132可进一步详细化。参阅图3,图3是步骤s132的流程示意图。

s134:响应调试设备的调试命令。

当调试设备需要获取远程设备的屏显信息时,给远程设备传送响应的调试指令,远程设备接收调试命令后,响应调试设备的调试命令,将采集屏显信息进行编码和压缩,准备向调试设备传输该屏显信息。

s135:确定远程设备与调试设备的p2p直连是否成功。

第一p2p代理站点和第二p2p代理站点之间还进行p2p打洞和p2p穿透尝试,以便于调试设备直接穿网到远程设备所在的网络,从而提高远程设备和调试设备之间的数据传输速度和数据传输能力。

第一p2p代理站点和第二p2p代理站点启用p2p穿透后,时刻确认远程设备与调试设备的p2p直连是否成功。p2p直连成功,执行步骤s136。p2p直连不成功,执行步骤s137。

s136:若是,通过p2p直连向调试设备发送屏显信息。

p2p穿透成功,则远程设备与调试设备建立了p2p直连通信,实现了跨网通信连接,因而远程设备直接将打包的屏显信息传输给调试设备,而不用通过中继服务器向调试设备转发屏显信息。

s137:若否,发送屏显信息至中继服务器,由中继服务器转发屏显信息至调试设备。

p2p穿透不成功,则远程设备与调试设备无法实现跨网直接通信连接。远程设备的第一p2p代理站点与p2p服务器建立有数据通道,则远程设备将打包的屏显信息通过该数据通道传输给中继服务器。同时中继服务器与调试设备的第二p2p代理站点建立有数据通道,中继服务器通过该数据通道转发屏显信息给至调试设备。

s14:远程设备获取调试设备传输的程序修复信息和操作指令,并基于程序修复信息和操作指令对故障程序进行修复。

远程设备开放权限和传输屏显信息给调试设备后,调试设备据此形成对故障程序的程序修复信息和对屏显信息的操作指令,并将该程序修复信息和操作指令编码压缩传输给远程设备。

远程设备获取该程序修复信息和操作指令,并基于程序修复信息和操作指令对故障程序进行修复。

具体地,步骤s14可分成如下步骤执行。参阅图4,图4是步骤s14的流程示意图。

s141:对远程设备执行操作指令,以辅助调试故障程序。

调试设备上显示屏显信息,调试人员控制调试设备对屏显信息进行操作,同时调试设备将对屏显信息的操作动作记录成操作指令,该操作指令可用于对远程设备的操作界面执行调试人员所做的动作,例如点击确认图标、返回桌面等,以在后续对故障程序进行修复时,确保远程设备对故障程序的修复动作给予及时的支持与配合,使得对故障程序的调试得以顺利地进行下去。

s142:执行程序修复信息,以修复故障程序。

远程设备获取程序修复信息后,执行该程序修复信息,以对故障程序的进行调试,例如更换故障程序内的故障代码、给故障程序打补丁等,以实现修复故障程序。

请参阅图5,图5是本申请提供的一种远程调试方法的流程示意图,本实施例中,该远程调试方法基于调试设备的一端,该远程调试方法包括:

s21:调试设备与远程设备通信连接。

调试设备包括第二p2p代理站点,调试设备启动第二p2p代理站点,之后第二p2p代理站点确认调试设备内是否存储有该远程设备的身份标识,第二p2p代理读取身份标识并解析,从而通过p2p服务器或中继服务器与远程设备的第一p2p代理站点建立数据传输通道。

具体地,调试设备确认是否存有该远程设备的身份标识。若是,则调试设备的第二p2p代理站点识别该身份标识,以与远程设备进行通信连接。若否,则调试设备的第二p2p代理站点接受输入的身份标识,以与对应的远程设备进行通信连接。

具体而言,调试设备和远程设备均优先通过p2p服务器进行打洞穿网,建立p2p直连数据传输通道。若p2p直连失败,则调试设备通过中继服务器与远程设备建立数据传输通道,从而实现彼此之间的数据交互。

第一p2p代理站点和第二p2p代理站点之间优先进行p2p打洞和p2p穿透,使得调试设备直接穿网到远程设备所在的网络,即调试设备与远程设备之间建立p2p直连,从而极大地提高了远程设备和调试设备之间的数据传输速度和数据传输能力。

s22:调试设备获取远程设备的权限。

远程设备开放权限给调试设备,调试设备获取该远程设备的权限,从而调试设备可以在权限内对远程设备执行一些操作。

s23:调试设备依据权限对远程设备的故障程序进行调试,以形成程序修复信息。

调试设备与远程设备通信连接后,则调试设备开始对远程设备的故障程序进行调试。

具体地,参阅图6,图6是步骤s23的流程示意图。

s231:启动调试设备的开发工具。

启动调试设备的开发工具ide(integrateddevelopmentenvironment,集成开发环境),如eclipse、androidstudio等。

s232:开发工具依据远程设备的系统运行权限对故障程序进行远程断点调试,以形成程序修复信息。

开发工具启动命令执行服务器(cmdserver),命令执行服务器在远程设备的系统运行权限内对故障程序进行远程断点调试,获取故障程序的相关故障信息,并据此形成程序修复信息,以便于后续将程序修复信息传输给远程设备。

s24:调试设备依据远程设备传输的屏显信息对故障程序进行操作,并形成操作指令。

远程设备传输屏显信息给调试设备,调试人员控制调试设备依据屏显信息对故障程序进行操作,并形成操作指令。

具体地,参阅图7,图7是步骤s24的流程示意图。

s241:依据屏显信息对故障程序的调试动作进行辅助。

调试人员从调试设备上读取远程设备的屏显信息,并依据屏显信息的请求对该屏显信息执行相应的操作,以辅助远程设备对故障程序的修复动作给予及时的支持与配合,使得对故障程序的调试得以顺利地进行下去。

s242:调试设备的第二图像捕捉线程记录将对屏显信息的操作动作记录成操作指令。

调试设备的第二图像捕捉线程录入调试人员对屏显信息的操作动作,并记录成远程设备可以读取的操作指令。

s25:调试设备传输程序修复信息和操作指令给远程设备,以对远程设备的故障程序进行修复。

具体地,调试设备的命令服务器获取程序修复信息和操作指令,并对程序修复信息和操作指令进行编码压缩,进而将打包后的程序修复信息和操作指令传输给远程设备。

在调试设备向远程设备传输程序修复信息和操作指令之前,调试设备还确认调试设备与远程设备的p2p直连是否成功。若p2p直连成功,则远程设备与调试设备建立了p2p直连通信,命令服务器可直接传输程序修复信息和操作指令给远程设备。若p2p直连不成功,命令执行服务器传输程序修复信息和操作指令给中继服务器,由中继服务器转发程序修复信息和操作指令至远程设备。

基于此,本申请还提供一种计算机设备100,请参阅图8,图8是本申请计算机设备一实施例的结构示意图,该实施方式中,计算机设备100包括处理器110和存储器120,处理器110耦接存储器120,存储器120用于存储程序,处理器110用于执行程序以实现上述任一实施例的远程调试方法。

计算机设备100可以是编解码器。处理器110还可以称为cpu(centralprocessingunit,中央处理单元)。处理器110可以是一种集成电路芯片,具有信号的处理能力。处理器110还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器110可以是微处理器或者该处理器也可以是任何常规的处理器等。

基于此,本申请还提供一种存储装置200,请参阅图9,图9是本申请提供的存储装置一实施例的结构示意图,该实施方式中,存储装置200存储有程序210,程序210被执行时能够实现上述任一实施例的远程调试方法。

其中,该程序210可以以软件产品的形式存储在上述存储装置200中,包括若干指令用以使得一个设备或处理器执行本申请各个实施方式方法的全部或部分步骤。

存储装置200是计算机存储器中用于存储某种不连续物理量的媒体。而前述的具有存储功能的存储装置200包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序210代码的介质。

基于此,本申请还提供一种远程调试系统300,请参阅图10,图10是本申请提供的远程调试系统一实施例的结构示意图,该远程调试系统300包括调试设备310和远程设备320,调试设备310与远程设备320通信连接,远程设备320能够实现如图1至图4任一所示的远程调试方法,调试设备310能够实现如图5至图7任一所示的远程调试方法。

区别于现有技术的情况,本申请公开了一种远程调试方法、计算机设备、存储装置和远程调试系统。通过远程设备与调试设备建立通信连接,并开放权限给调试设备,以便于调试设备对远程设备的故障程序进行调试,并形成程序修复信息,同时远程设备传输屏显信息给调试设备,调试设备依据屏显信息对故障程序进行操作,并形成操作指令,远程设备获取该程序修复信息和操作指令,以使得远程设备在执行程序修复信息对故障程序进行修复时,能够确保远程设备对故障程序的修复动作给予及时的支持与配合,使得对故障程序的调试得以顺利地完成,从而无需远程设备附近的人员辅助操作即可完成对远程设备的故障程序的修复。

在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。

以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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