首页 / 调试方法及装置

调试方法及装置无效专利 发明

技术领域

[0001] 本发明涉及信息技术领域,尤其涉及一种调试方法及装置。

相关背景技术

[0002] 随着信息技术的发展,越来越多的程序或应用等代码被开发出来,通过在电子设备(如手机、平板电脑或可穿戴式设备)等上执行,来实现特定的功能。但是不同类型的电子设备采用的操作系统类型不同,或者即便采用相同的操作系统,但是操作系统已经被改动过了,存在很多细节上的差异。例如,安卓(Android)手机,很多厂商的手机都使用为安卓操作系统,但是都根据手机本身进行操作系统的修改,这样就导致虽然是同样的操作系统,但是操作系统依然存在差异。且不同产生通过增加安卓系统的相应功能,会产生很多碎片化的代码。这样的话,新开发出的程序或应用等代码,在调试时需要在不同的设备进行调制。在现有技术中在调试时,调试人员需要将对应的实体设备连接到综合开发环境(Integrated Development Environment,IDE),然后将目标代码安装到实体设备上,然后再进行后续调试。

具体实施方式

[0047] 以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
[0048] 如图1所示,本实施例提供一种远程调试方法,应用于调试平台中,包括:
[0049] 步骤S110:接收远程调试端发送的调试请求;
[0050] 步骤S120:基于所述调试请求,从所述调试平台中选择目标调试设备;
[0051] 步骤S130:接收所述远程调试端发送的目标代码;
[0052] 步骤S140:控制所述目标调试设备安装并运行所述目标代码;
[0053] 步骤S150:采集所述目标调试设备的显示界面数据;
[0054] 步骤S160:将所述显示界面数据发送给所述远程调试端,其中,所述显示界面数据,用于显示在所述远程调试端,为所述远程调试端的远程控制界面;
[0055] 步骤S170:接收所述远程调试端从所述远程控制界面采集的操作指令;其中,所述操作指令由所述目标调试设备通过运行所述目标代码响应。
[0056] 本实施例所述远程调试方法为应用于调试平台中的方法。所述调试平台包括调试服务器和备选调试设备。所述备选调试设备为可安装并运行所述目标代码的设备,例如,手机、平板电脑或笔记本电脑等各种为所述目标代码发布之后的运行环境的设备。所述调试服务器,为与所述调试设备连接的设备,所述调试服务器可以与调试设备之间建立有连接,也可以通过个人电脑PC等中转设备,与所述调试设备建立连接。
[0057] 图2A所示为所述测试平台的一种架构示意图;图2B所示为所述测试平台的另一种架构视图。所述调试服务器根据其实现的功能,又可以分为多种不同类型的调试服务器。例如,所述调试服务器可包括:请求接收及资源调度的调度服务器,参与调试命令中转等信息的调试服务器等。
[0058] 所述目标代码为需要调试的代码。所述代码可为各种类型的代码,例如,java代码或C语言代码等。
[0059] 在本实施例中远程调试端,与测试平台之间可以通过户联网连接。在本实施例中,所述测试平台可为多个远程测试端所共用。这样调试人员不用找到专门的设备手动连接到测试端上,可以利用网络侧的调试平台上连接的调试设备进行调试;一方面对于调试方简化了代码调试过程,提升了调试效率;对于调试平台端来说,提升调试设备的有效使用率。
[0060] 在有些实施例中,所述步骤S120可包括:
[0061] 步骤S121:基于所述调试请求,向所述远程调试端发送调试界面;其中,所述调试界面显示有备选调试设备;
[0062] 步骤S122:接收作用于所述调试界面的选择操作;
[0063] 步骤S123:根据所述选择操作,从所述备选调试设备中选择出所述目标调试设备。
[0064] 在本实施例中调试平台在接收到调试请求之后,会向远程测试端发送调试界面,这里调试界面包括多个可供进行调试的设备的信息。如图3所示。这样的话,若远程调试端的用户接收到所述调试界面之后显示,这样用户就可以知道当前调试平台提供哪些备选调试设备,从而方便调试人员选择进行所述目标代码的目标调试设备。
[0065] 在一些实施例中,所述步骤S120还可包括:
[0066] 根据所述调试请求中携带的设备参数,从调试平台中查找是否有与所述设备参数匹配的调试设备,若找到匹配的调试设备,则将与该设备参数匹配的调试设备作为所述目标调试设备。例如,在所述调试请求中,携带目标调试设备的品牌参数、型号参数、操作系统的运行版本等各种参数。这样所述调试平台在接收到调试请求之后,直接可根据调试请求选择出合适的目标调试设备。
[0067] 在一些实施例中,所述步骤S110,包括:
[0068] 利用业务请求通道接收所述远程调试端发送的调试请求;
[0069] 所述方法还包括:
[0070] 在接收所述目标代码之前,与所述远程调试端建立调试桥通道;
[0071] 所述步骤S130可包括:
[0072] 利用所述调试桥通道,接收所述目标代码。
[0073] 在本实施例中所述调试请求为通过业务请求通道发送的。在本实施例中所述业务请求通道可供所述调试请求的发送。通常,所述业务请求通道可为公开传输通道,可以方便不同远程调试端从各种公开途径获得。
[0074] 在本实施例中在接收到测试请求之后,所述方法还可包括:
[0075] 确定是否响应所述调试请求。
[0076] 所述确定是否响应所述调试请求,包括以下至少之一:
[0077] 确定远程调试端是否为有调试权限;
[0078] 确定所述远程调试端当前是否满足调试安全性要求。
[0079] 所述定远程调试端是否为有调试权限,包括:
[0080] 判断所述远程调试端使用的调试账号是否有效,
[0081] 判断所述调试请求对应的调试类型是否为所述调试账号对应的调试范围内;
[0082] 判断所述远程调试端使用的调试账号是否为合法账号;
[0083] 判断所述远程调试端使用的调试账号的账号余额是否足以支付本次调试请求对应的调试账单;
[0084] 若上述判断均为是,则认为有调试权限。
[0085] 所述确定所述远程调试端当前是否满足调试安全性要求,包括:
[0086] 指示所述远程调试端提供远程调试端的预定参数;
[0087] 根据所述预定参数判断所述远程调试端是否安全。
[0088] 例如,所述预定参数可为运行参数,例如,所述远程调试端内的防火墙或安全软件运行产生的监控参数;所述预定参数还可包括所述远程调试端的安全等级参数;例如,所述安全软件的版本参数等。
[0089] 若所述预定参数为表示安全的参数,则认为所述远程调试端满足所述调试安全性要求。
[0090] 通过上述权限的鉴权和是否满足安全性要求的确定,一方面避免调试平台被滥用,另一方面可以减少远程调试端自身的安全性不够导致的测试平台的安全风险。
[0091] 在本实施例中还会建立调试桥通道,在本实施例中所述调试桥通道可用于传输调试命令和/或目标代码。
[0092] 在本实施例中所述调试桥通道与所述业务请求通道可为同一种传输通道,也可以是不同的传输通道。例如,所述调试桥通道可为传输隧道。再例如,所述调试桥通道的安全等级高于所述业务请求通道的安全等级,以确保目标代码在未发布之前被泄漏的问题,提升目标代码的安全性。在本实施例中所述调试桥通道为临时建立的传输通道,在调试完毕之后,会拆毁的传输通道。所述调试桥通道可为加密传输通道。所述调试桥通道为非公开的传输通道。非公开的传输通道,在没有发送调试请求的情况下,在公开文献中将查找不到的传输通道。
[0093] 在本实施例中所述业务请求通道可为不同远程调试端所共享的传输通道,而所述调试桥通道可为每一个远程调试端与调试平台之间的专用通道,不同的远程调试端应不同的调试桥通道,同一个远程调试端不同的目标代码的测试请求对应的也可能是不同的测试桥通道。
[0094] 此外,在本实施例中将所述业务请求通道和所述调试桥通道的隔离,一方面实现了数据隔离,
[0095] 为各种远程测试端可供使用的目标代码调试的调试设备,在调试平台连接了各种可进行调试的调试设备。
[0096] 在一些实施例中,所述方法还包括:
[0097] 利用所述调试桥通道,从所述远程调试端接收调试命令;其中,所述调试命令包括安装命令;
[0098] 所述步骤S140可包括:
[0099] 根据所述安装命令,控制所述目标调试设备安装并运行所述目标代码。
[0100] 在本实施例中所述远程调试端可以通过所述调试桥通道,向所述调试平台发送各种调试指令,例如,所述安装指令。当所述调试平台接收到所述安装指令之后,会根据所述安装指令安装所述目标代码,这样的话,所述目标代码就可以在所述目标调试设备中运行了。
[0101] 在本实施例中为了方便远程测试端的控制,所述方法还包括:
[0102] 与所述远程调试端建立图像和事件通道;
[0103] 所述步骤S160可包括:
[0104] 利用所述图像和事件通道,将所述显示界面数据发送给所述远程调试端。
[0105] 所述步骤S170可包括:从所述图像和事件通道接收所述操作指令。
[0106] 在本实施例中为了方便所述显示界面的发送,在本实施例中会利用所述图像和事件通道传输所述显示界面数据,这样的话,所述显示界面数据不会占用所述调试桥通道和/或所述业务请求通道的带宽进行数据传输。
[0107] 这种分传输通道的数据传输,这样调试平台和/或远程调试端就可以根据传输通道的不同,确定出当前接收到的数据是什么类型的数据,从而可以减少利用同一个传输通道传输在数据中增加的数据类型的标识,减少信令开销。
[0108] 这里的操作指令,可为作用于所述远程控制界面的鼠标操作、触控操作和/或语音操作等。这些操作都是模拟所述目标代码运行在用户设备中的用户输入操作。这些操作指令的输入,可以控制目标调试设备利用所述目标代码响应所述操作指令,从而测试目标代码呈现的结果是否为目标代码的开发人员想要的结果。
[0109] 在一些实施例中,所述方法还包括:
[0110] 利用业务请求通道接收查询请求;
[0111] 基于所述查询请求,利用所述业务请求通道向所述远程测试端发送备选调试设备或所述目标调试设备的设备信息。
[0112] 在本实施例中所述业务请求通道,还会用于传输查询请求,这里的查询请求用于查询备选调试设备的硬件参数、软件参数以及状态参数。
[0113] 所述硬件参数可包括设备型号,设备生产厂商、设备品牌,设备内各个部件的部件型号等参数。例如,部件型号可包括中央处理器(CPU)的型号参数、屏幕尺寸、屏幕分辨率、摄像头个数、摄像头的采集精度等各种信息。
[0114] 所述软件信息可包括设备内运行的操作系统的版本、当前安装的应用以及应用版本等信息。
[0115] 所述状态信息可包括当前CPU的负载状况、剩余内存容量等。
[0116] 总之所述硬件参数可用于确定对应的备选调试设备是否支持目标代码的运行,所述软件参数可用于判断是否与目标代码兼容;所述状态参数可用于指示当前状态下,对应的备选调试设备是否可以运行所述目标代码。
[0117] 通过这些设备信息的返回,方便测试人员从备选调试设备中选择出目标调试设备。
[0118] 总之,本实施例提供了一种应用于测试平台中的远程测试方法,远程测试端可以借由测试平台上连接的测试设备,进行目标代码的远程测试,就在测试过程中,测试人员找齐所有的调试设备对目标代码进行测试,简化了测试步骤,提升了测试效率,还提升了专用于调试的调试设备的有效使用率。
[0119] 如图3所示,本实施例提供一种远程调试方法,应用于远程调试端,所述远程调试端上设置有综合开发环境IDE,包括:
[0120] 步骤S210:利用安装在所述IDE环境中的远程调试插件,向调试平台发送调试请求;其中,所述调试请求用于所述调试平台确定目标调试设备;
[0121] 步骤S220:向所述调试平台发送目标代码,其中,所述目标代码用于安装在所述目标调试设备,并由所述目标调试设备运行;
[0122] 步骤S230:接收所述目标调试设备运行所述目标代码产生的显示界面数据;
[0123] 步骤S240:基于所述显示界面参数显示远程控制界面;
[0124] 步骤S250:检测作用于所述远程控制界面上的用户输入;
[0125] 步骤S260:基于所述用户输入,向所述调试平台发送操作指令,其中,所述操作指令用于所述目标调试设备通过运行所述目标代码相应所述操作指令。
[0126] 在本实施例中所述方法为应用于远程调试端中的方法。
[0127] 在进行远程调试之前,所述远程调试端需要安装远程调试插件,这里的远程调试插件,又可以称为远程调试客户端,可以用于与调试平台进行对接。
[0128] 在步骤S210中将利用安装IDE中的远程调试插件,向调试平台发送调试请求。这样的话,调试平台就知道当前远程调试插件,有调试需求。在本实施中,所述调试请求可用于所述调试平台直接或间接确定所述目标调试设备。若直接确定所述目标调试设备,则所述调试请求中可以携带有目标调试设备的参数。若间接确定所述目标调试设备,则需要在调试请求发送之后基于调试平台返回的信息的后续交互,确定所述目标调试设备。
[0129] 在步骤S220中,为了进行目标代码的调试,在本实施例中会将所述目标代码发送给调试平台,由调试平台安装到目标调试设备中,并由目标调试设备进行运行,这样的话,就方便后续调试过程中,根据目标代码在目标调试设备中的调试状况,进行目标代码的调试。
[0130] 目标调试设备在运行时,会产生对应的显示界面,用于产生所述显示界面的数据可称之为显示界面数据,利用所述显示界面数据远程调试端,可以模拟或重建所述目标调试设备中的显示界面。
[0131] 在本实施例中将根据所述显示界面数据形成远程控制界面。在远程控制界面上可以采集用户输入,基于用户输入向调试平台发送操作指令。
[0132] 例如,当前远程调试界面上显示某一个对话框,该对话框中显示“确定”控件等;若所述用户操作为点击所述“确定”控件的用户输入,则可以直接给予所述对话框的显示发送控制目标调试设备执行预定操作的操作指令。当然这里的操作指令,也可以为表明用户点击了所述“确定”控件的信息,这些信息相当于操作指令,目标调试设备接收到该信息之后,会执行对应的操作指令。这样的话,就调试人员不用自行找到调试的实体设备,插拔实体调试设备的情况下,利用测试平台连接的调试设备,实现远程调试,提升调试效率、简化调试流程并提升调试设备的有效利用率。
[0133] 在一些实施例中,所述方法还包括:
[0134] 接收基于所述调试请求返回的调试界面;其中,所述调试界面显示有备选调试设备;
[0135] 检测作用于所述调试界面的用户输入;
[0136] 根据所述用户输入向所述调试平台发送选择操作,其中,所述选择操作用于所述调试平台从所述备选调试设备中选择出所述目标调试设备。
[0137] 在本实施例中所述调试界面的显示,方便远程控制端基于调试人员的用户输入,向调试平台发送选择操作,方便从调试平台中选择出满足当前目标代码调试的目标调试设备。
[0138] 在一些实施例中,所述S110可包括:利用业务请求通道向所述调试平台发送所述调试请求。
[0139] 在本实施例中所述远程调试端与调试平台之间建立有就业务请求通道和调试桥通道。所述调试请求通过所述业务请求通道发送给所述调试平台。
[0140] 所述方法还包括:在发送所述调试请求之后,与所述调试平台建立调试桥通道;在本实施例中所述远程调试端会在发送了所述业务请求之后,会与调试平台会建立调试桥通道。在本实施例中所述调试桥通道与所述业务请求通道属于不同的传输通道。当所述调试桥通道建立之后,所述步骤S220可包括:利用所述调试桥通道向所述调试平台发送目标代码。
[0141] 在本实施例中所述目标代码是通过调试桥通道发送,可以与调试请求分开发送。在本实施例中所述业务请求通道可公开传输通道,所述调试桥通道为非公开传输通道或安全传输通道,可以确保目标代码的传输安全性,减少目标代码的泄露和被篡改。
[0142] 在一些实施例中,所述方法还包括:
[0143] 利用所述调试桥通道向所述调试平台发送调试命令,其中,所述调试命令包括安装命令,所述安装命令用于指示所述目标调试设备安装所述目标代码。
[0144] 在本实施例中所述调试桥通道还用于发送调试命令,所述调试命令包括指示目标调试设备安装目标代码,方便目标代码在目标调试设备中的运行。
[0145] 在一些实施例中,所述方法还包括:与所述调试平台建立图像和事件通道;
[0146] 所述步骤S230可包括:
[0147] 从所述图像和事件通道,接收所述显示界面数据。
[0148] 在本实施例中所述远程调试端还会与调试平台建立图像和事件通道,该通道可可以用于显示界面数据局的传输,实现与调试命令和调试请求分通道传输。
[0149] 在一些实施例中,所述方法还包括:
[0150] 在显示所述远程控制界面的同时,显示代码编写界面。
[0151] 在本实施例中所述远程调试端,同时显示远程控制界面和代码编写界面,这样方便调试人员,在调试的同时改写目标代码,方便目标代码的调试。
[0152] 如图4所示,本实施例提供一种远程调试装置,应用于调试平台中,包括所述第一接收单元110、选择单元120、控制单元130、采集单元140及第一发送单元150;
[0153] 所述第一接收单元110,用于接收远程调试端发送的调试请求;
[0154] 所述选择单元120,用于基于所述调试请求,从所述调试平台中选择目标调试设备;
[0155] 所述第一接收单元110,用于接收所述远程调试端发送的目标代码;
[0156] 所述控制单元130,用于控制所述目标调试设备安装并运行所述目标代码;
[0157] 所述采集单元140,用于采集所述目标调试设备的显示界面数据;
[0158] 所述第一发送单元150,用于将所述显示界面数据发送给所述远程调试端,其中,所述显示界面数据,用于显示在所述远程调试端,为所述远程调试端的远程控制界面;
[0159] 所述第一接收单元110,用于接收所述远程调试端从所述远程控制界面采集的操作指令;其中,所述操作指令由所述目标调试设备通过运行所述目标代码响应。
[0160] 本实施例提供的远程调试装置,为应用于调试平台中的信息处理装置。
[0161] 所述调试平台可以对应于一台服务器,也可以是由多台服务器连接而成的机群。
[0162] 所述第一接收单元110和第一发送单元150均可以对应于调试平台的通信接口,该通信接口可用于与远程调试端进行信息交互,例如接收所述调试请求,向所述远程调试端发送显示界面数据等。
[0163] 所述选择单元120、所述控制单元130及所述采集单元140都对应于调试平台内服务器内的处理器或处理电路。所述处理器可包括中央处理器、微处理器、数字信号处理器、应用处理器或可编程阵列等各种处理器。所述处理电路可包括专用集成电路。
[0164] 所述处理器或处理电路,可通过预定代码的执行,实现上述选择单元120、所述控制单元130及所述采集单元140的功能。
[0165] 当然,在具体实现时,所述安装大暖130和采集单元140都可对应于与目标调试设备通信的通信接口,能够将所述目标代码和安装指令发送给目标调试设备中,从目标调试设备捕获的目标调试设备的显示界面。
[0166] 总之,本实施例提供的远程调试装置,应用于调试平台,方便远程调试端,利用调试平台上连接的实体设备,进行调试,这样调试人员在进行目标代码调试时,就不用自行找调试设备,再利用数据线插接调试设备,简化了调试步骤,提升了调试效率及实现了调试设备的共享,提升了调试设备的有效使用率。
[0167] 在一些实施例中,所述选择单元120,用于基于所述调试请求,向所述远程调试端发送调试界面;其中,所述调试界面显示有备选调试设备;
[0168] 所述第一接收单元110,用于接收作用于所述调试界面的选择操作;
[0169] 所述选择单元120,具体用于根据所述选择操作,从所述备选调试设备中选择出所述目标调试设备。
[0170] 在本实施例中所述第一接收单元110还被复用接收选择操作,根据选择操作从多个备选设备中选出所述目标调试设备。
[0171] 在一些实施例中,所述第一接收单元110,具体用于利用业务请求通道接收所述远程调试端发送的调试请求;
[0172] 所述第一接收单元110,还用于在接收所述目标代码之前,与所述远程调试端建立调试桥通道;利用所述调试桥通道,接收所述目标代码。
[0173] 在本实施例中所述第一接收单元,具体用于通过业务请求通道接收调试请求,并在接收所述目标代码之前,与远程调试端建立调试桥通道,利用调试桥通道接收目标代码,时间了调试请求和目标代码的分开发送,能够确保目标代码的安全性,同时实现不同类信息的分开传输,可以更好的实现数据的分别管理。
[0174] 在一些实施例中,所述第一接收单元110,具体用于利用所述调试桥通道,从所述远程调试端接收调试命令;其中,所述调试命令包括安装命令;
[0175] 所述控制单元130,具体用于根据所述安装命令,控制所述目标调试设备安装并运行所述目标代码。
[0176] 在本实施例中所述控制单元130可以对应于通信接口,通过安装命令的下发,控制所述目标调试设备的目标代码的安装及运行,这样方便就知道目标代码在目标调试设备的运行状况等信息。
[0177] 在一些实施例中,所述第一接收单元110,还用于与所述远程调试端建立图像和事件通道;利用所述图像和事件通道,将所述显示界面数据发送给所述远程调试端;从所述图像和事件通道接收所述操作指令。
[0178] 在本实施例中所述第一接收单元110,还将与所述远程调试端建立图像和事件通道,利用图像和事件通道,将显示界面数据发送给远程调试端,并利用图像和事件通道接收到操作指令,这样在调试过程中检测目标代码运行的操作都通过图像和事件通道进行传输,显然与调试请求及调试命令分开传输了,一方面实现了数据的分开传输和管理,另一方面可以利用不同传输通道进行不同安全等级等数据传输。
[0179] 在一些实施例中,所述第一接收单元110,还用于利用业务请求通道接收查询请求;所述第一发送单元150,还用于基于所述查询请求,利用所述业务请求通道向所述远程测试端发送备选调试设备或所述目标调试设备的设备信息。
[0180] 在本实施例中所述第一接收单元110和所述第一发送单元150,会利用业务请求通道,进行目标代码通信之前的数据交互,例如,所述查询请求和设备信息的交互。
[0181] 如图5所示,本实施例提供一种远程调试装置,应用于远程调试端,所述远程调试端上设置有综合开发环境IDE,包括:第二发送单元210、第二接收单元220、显示单元230及检测单元240;
[0182] 所述第二发送单元210,用于利用安装在所述IDE环境中的远程调试插件,向调试平台发送调试请求;其中,所述调试请求用于所述调试平台确定目标调试设备;
[0183] 所述第二发送单元210,用于向所述调试平台发送目标代码,其中,所述目标代码用于安装在所述目标调试设备,并由所述目标调试设备运行;
[0184] 所述第二接收单元220,用于接收所述目标调试设备运行所述目标代码产生的显示界面数据;
[0185] 所述显示单元230,用于基于所述显示界面参数显示远程控制界面;
[0186] 所述检测单元240,用于检测作用于所述远程控制界面上的用户输入;
[0187] 所述第二发送单元210,用于基于所述用户输入,向所述调试平台发送操作指令,其中,所述操作指令用于所述目标调试设备通过运行所述目标代码相应所述操作指令。
[0188] 本实施例提供一种远程调试装置,应用远程调试端中。所述远程调试端可对应于各种远程终端,例如,台式电脑等。
[0189] 所述第二发送单元210及第二接收单元220可对应于通信接口,可用于调试平台进行各种信息交互。
[0190] 所述显示单元230可对应于显示屏,所述显示屏可包括液晶显示屏、电子墨水显示屏、投影显示屏及有机发光二极管OLED显示屏。所述显示屏可以显示各种信息。
[0191] 所述检测单元240可对应于各种人机交互接口,可用于采集用户输入,例如,可采集调试人员的各种调试输入及远程控制界面上的操作。所述检测单元240可具体对应于键盘、鼠标或触控板等各种人机交互接口设备。
[0192] 在本实施例中所述远程调试端,可通过与调试平台的信息交互,能够利用连接到调试平台上的调试设备,进行目标代码的调试,这样在调试的过程中可提升调试效率,实现调试设备的共享及调试设备的有效使用率提升。
[0193] 在一些实施例中,所述第二接收单元220,还用于接收基于所述调试请求返回的调试界面;其中,所述调试界面显示有备选调试设备;
[0194] 所述检测单元240,还用于检测作用于所述调试界面的用户输入;
[0195] 所述第二发送单元210,用于根据所述用户输入向所述调试平台发送选择操作,其中,所述选择操作用于所述调试平台从所述备选调试设备中选择出所述目标调试设备。
[0196] 在本实施例中所述第二接收单元220还接收调试界面,并由检测单元240检测作用于调试界面的用户输入.。最终第二发送单元210会将选择操作发送给调试平台,方便调试平台选择合适的目标调试设备。
[0197] 在一些实施例中,所述第二发送单元210,具体用于利用业务请求通道向所述调试平台发送所述调试请求;
[0198] 所述装置还包括:
[0199] 第一建立单元,用于在发送所述调试请求之后,与所述调试平台建立调试桥通道;
[0200] 所述第二发送单元210,具体用于利用所述调试桥通道向所述调试平台发送目标代码。
[0201] 所述第一建立单元,同样可对应于通信接口,可与调试平台建立调试桥通道,第二发送单元210通过调试桥通道向调试平台发送目标代码。
[0202] 在还有些实施例中,所述第二发送单元210,还用于利用所述调试桥通道向所述调试平台发送调试命令,其中,所述调试命令包括安装命令,所述安装命令用于指示所述目标调试设备安装所述目标代码。
[0203] 在本实施例中所述调试桥通道还用于发送调试命令,这里的调试命令至少包括安装命令。
[0204] 在一些实施例中,所述装置还包括:
[0205] 第二建立单元,用于与所述调试平台建立图像和事件通道;
[0206] 所述第一接收单元220,具体用于从所述图像和事件通道,接收所述显示界面数据。
[0207] 第二建立单元与第一建立单元类似,同样可对应于通信接口,能够与调试平台建立图像和事件通道。所述第一接收单元220可通过图像和事件通道可,接收显示界面数据,这里的显示界面数据为目标调试设备执行目标代码产生的显示界面的显示数据。
[0208] 在还有一些实施例中,所述显示单元230,具体用于在显示所述远程控制界面的同时,显示代码编写界面。
[0209] 以下结合上述任意实施例给出两个示例:
[0210] 示例一:
[0211] 本示例以安卓(Android)代码调试为例,提供一种调试方法。本示例首先,提供一种远程调试插件,该插件直接嵌入在开发工具中,筛选后一键操作即可使用需要的远程连接的调试设备,提供的(Android Debug Bridge,ADB)通道,不仅可以进行应用的安装、卸载和分析,还可进行调试设备中数据的查询和修改。在代码开发中,伴随代码修改可以随时使用远程设备调试,打断点、文件查看、堆栈信息,甚至可以获取内存分析时的镜像文件、应用无响应是生成的跟踪(trace)文件等。所述镜像文件可包括dumheap文件,所述heap dump文件是一个二进制文件,它保存了某一时刻Java虚拟机(JVM)堆中对象使用情况。HeapDump文件是指定时刻的Java堆栈的快照。
[0212] 本插件工具可以安装在开发人员常用的IDE中,包括但不限于Eclipse和Android Studio。具有以下三个方面的特点:
[0213] 第一、无缝嵌入开发环境中,在IDE中成功安装插件后,需要调试时只需要点击图标,登录后即选即用,使用步骤简单方便。
[0214] 第二、选择需要调试的设备(例如手机)后,可通过插件中提供的“置顶”功能将手机操作页置于所有窗口最前,使代码编辑页面或者调试页面与手机画面在同一屏幕。这样的话,不同于使用实体设备,需要用通用串行总线(USB)连接手机,并且调试过程中开发人员总在手机屏幕和开发工具间频繁切换视线,也不需要像网页(Web)端的远程控制功能需要经常在网页和IDE之间转换,使开发中使用调试设备更快捷。所述IDE是Integrated Development Environment的缩写,是集程序编辑、编译、调试和图形界面于一体的集成开发环境。所述IDE可利用安卓集成开发工具(Android Studio)和java程序的集成开发工具(Eclipse)等工具进行调试。远程调试是通过网络连接并调试云端的调试设备,可以操作远程设备的界面,并且能够访问远程设备内部空间,进行实时的调试。
[0215] 图6所示为本示例提供一种远程调试系统,包括:
[0216] 远程调试端,安装有远程调试插件;
[0217] 调试平台,可与远程调试端之间建立ADB通道、业务请求通道及图像和事件通道。所述ADB通道可用于ADB通信,所述业务请求通道可用于业务请求通信,所述图像和事件通道可用于图像和事件通信。
[0218] 所述远程调试插件包括图形界面模块、通信模块和辅助功能模块。所述图形界面模块,可进行图像显示。所述通信模块,可用于与调试平台建立上述几种传输通道。
[0219] 所述调试平台可包括ADB服务器和后台服务器。所述后台服务器可以直接连接调试设备,也可以通过中转设备与调试设备连接。所述中转设备可为各种个人电脑(PC)等设备。
[0220] 图形界面模块,主要显示有登录页、设备列表页和设备操作页,实现信息的展示和用户交互功能。所述设备列表页可用于显示各种可选择的备选调试设备;所述设备操作页可以用于显示目标调试设备的操作页面。这里的图形界面模块可对应于前述的显示单元。
[0221] 所述通信模块,可通过ADB通信与云测试平台的ADB服务器进行数据传输,并通过对数据向与PC连接的手机转发,为插件使用云端调试设备的ADB命令和调试提供通路。这里的通信模块对应于前述的第二发送单元和第二接收单元。
[0222] 所述通信模块,可通过业务请求通信向后台服务器发送超文本传输协议(Http)请求,实现设备列表和设备状态的查询、申请调试和退出调试以及续期和用户反馈等功能。
[0223] 所述通信模块,可通过图像和事件通道,建立与后台服务器的框架(例如,java的开源框架,netty)通道,请求和接收云调试设备的图像后通过界面显示,并向服务器发送用户的点击、滑动和键盘等交互操作。
[0224] 所述通信模块,分别与调试平台之间建立业务请求通信和图像和事件通道。所述通信模块与ADB服务器之间建立ADB通道。
[0225] 辅助功能模块,中有高级消息队列(Advanced Message queuing,AMQ消息接收子模块和帐号信息管理子模块。后台服务器可通过AMQ向插件发送后台消息和升级信息等,使用户在使用插件过程中能够实时接收到平台的维护升级等各类通告消息。帐号信息子模块将保存用户登录后帐号相关信息,用于与服务器业务通讯时的帐号校验以及使用扣费等逻辑处理。整个插件使用Java语言开发,具有良好的跨平台性,可在各种操作系统(例如,微软Windows和苹果Mac OS系统)上的Eclipse和Android Studio两种开发工具中使用。
[0226] 点击安装后显示在IDE工具栏的插件图标,在登录界面进行登录操作,经过帐号和权限的校验后进入手机列表页。选择空闲手机后申请调试,插件开始与云测试平台的后台Server以及ADB Server进行通信建立,通道建立后不间断地进行手机图像、操作事件以及ADB数据的传输。调试完毕关闭操作页面即可回到列表页选择其他设备使用。
[0227] 设备列表页中显示有:通过与后台服务器的Http请求可以获取远程设备列表,包含手机型号、系统版本、分辨率、上市时间以及Top排行等信息,也可获取每台手机的状态是否可用;并且提供不同维度的筛选和关键字搜索,可以方便地选择需要的设备。
[0228] 为开发人员使用云测试平台上的海量设备提供了快捷的方案。通过本插件调试远程设备与用户在PC连接实体手机并无太大差异,在IDE中安装后一键使用的过程比使用实体设备和网页端的远程控制功能更方便。开发人员不再需要本地修改代码、编译打包应用后再到Web端进行安装和测试,直接在IDE中编辑、编译然后在插件中选择手机进行调试,简化了适配性开发的流程,而且缩减了开发人员和公司购置以及维护设备的时间与经费。
[0229] 在用本方案之前各个云测试平台的用户群体大多是测试人员,而开发人员能够获取到的比较基础的截图和日志信息,很多时候并不足以帮助他们定位和解决问题。插件调试远程设备时通过ADB通道不仅可以获取到完整的日志信息,而且可以得到应用发生崩溃(Crash)或安卓无响应ANR时的跟踪(trace)文件和详细的堆栈信息,甚至可以内存快照,分析应用的内存使用情况帮助解决内存溢出问题等。所以,插件也是云测试平台连接开发人员,拓展用户群体和提高用户粘性的有效方案。
[0230] 目前在插件界面部分使用了Java通用图形界面(GUI)编写,所有设备信息的查询和拉取相关的操作都通过与后台服务器通信完成。当前PC的客户端应用比较常用到的例如CEF等网络(Web)和原生混合开发(Native)方案,虽然可以与云测试平台公用一套网页界面。
[0231] 如图7所示,本示例还提供一种插件的使用方法,包括:
[0232] 步骤S1:点击插件图标开始;
[0233] 步骤S2:判断登录是否成功,若成功进入步骤S2,若失败进入步骤S11;这里的判断登录是否成功,可包括判断使用调试平台的账号是否为调试平台分配的账号,账号和密码是否匹配。
[0234] 步骤S3:判断账号是否有权限,若成功进入步骤S4,若否进入步骤S11;这里的判断账号是否有权限,包括:判断调试平台为该账号分配的权限或该账号购买的权限,是否能够进行请求调试。
[0235] 步骤S4:显示设备列表页;
[0236] 步骤S5:选择调试设备;
[0237] 步骤S6:判断选择的调试设备的状态是否可用,若是进入步骤S7,若否则返回步骤S4;
[0238] 步骤S7:建立ADB通道;
[0239] 步骤S8:建立图像和事件通道;
[0240] 步骤S9:显示设备操作页;
[0241] 步骤S10:调试结束,并退出调试;
[0242] 步骤S11:提示并退出插件。
[0243] 图8为本示例提供的一种调试界面的显示效果示意图,在图8中以手机为例,显示有多态手机的设备信息以及是否可用的状态。
[0244] 图9为本示例提供的一种调试设备的详细信息的显示示意图。
[0245] 示例二:
[0246] 如图10所示,本示例提供一种远程调试装置的一个可选的硬件结构示意图,包括处理器11、输入/输出接口13(例如显示屏、触摸屏、扬声器),存储介质14以及网络接口12,组件可以经系统总线15连接通信。相应地,存储介质14中均存储有用于执行本发明实施例记载的远程调试方法可执行指令。图10中示出的各硬件模块可根据需要部分实施、全部实施或实施其他的硬件模块,各类型硬件模块的数量可以为一个或多个,各硬件模块可以在同一地理位置实施,或者分布在不同的地理位置实施,可以用于执行上述图2或图3或图10所示的远程调试方法的至少之一。
[0247] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0248] 上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0249] 另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0250] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0251] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页 第1页 第2页 第3页