CN104967585B - 一种远程调试移动终端的方法和装置 - Google Patents
一种远程调试移动终端的方法和装置 Download PDFInfo
- Publication number
- CN104967585B CN104967585B CN201410151422.9A CN201410151422A CN104967585B CN 104967585 B CN104967585 B CN 104967585B CN 201410151422 A CN201410151422 A CN 201410151422A CN 104967585 B CN104967585 B CN 104967585B
- Authority
- CN
- China
- Prior art keywords
- mobile terminal
- server
- connection identifier
- data channel
- usb interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种远程调试移动终端的方法和装置,以创造较好的调试环境,使得远程调试正常、顺利进行。所述方法包括:识别插入服务器的USB接口上的移动终端;建立套接字端口与USB接口的映射关系;通过映射关系所得用户数据通道,将套接字端口上的数据转发至USB接口以及将USB接口上的数据转发至套接字端口。一方面,由于移动终端是插在服务器的USB接口上,这种方法连接更可靠,调试环境更稳定;另一方面,对用户而言,移动终端是“插入”到用户的PC机上,用户可以使用各种能够在PC机上使用的工具对远在服务器一侧的移动终端进行调试,为用户对移动终端进行调试提供了很大的便利,使得远程调试变得易于操作。
Description
技术领域
本发明涉及移动通信领域,具体涉及一种远程调试移动终端的方法和装置。
背景技术
所谓远程调试(Remote Debugging),就是通过运行在A机器上的调试(debug)客户端去调试一个运行在远程B机器上的应用程序,例如,通过运行在个人电脑(PersongalComputer,PC)上的debug客户端去调试一个运行在移动终端(例如,智能手机)上的应用程序,该移动终端不是直接插在PC上。工作中,程序开发人员常常需要将程序部署在服务器上(有时联调受对方源IP限制,或者应用程序有时必须运行在特定机器上),而源代码在本机,此时,程序开发人员一般习惯通过日志调试,迫不得已时,可能会在服务器上运行一个代理来解决源IP限制的问题,从而在本机的集成开发环境(Integrated DevelopmentEnvironment,IDE)中调试。然而,无论怎样,远程调试仍然是各种调试方式中比较重要的一种调试方式。
现有技术提供的一种远程调试移动终端的方法是:将移动终端通过无线方式连接至PC机上,在连接时,移动终端与PC机连接方式采用TCP方式;移动终端启动5555端口,通过将该端口暴露给最终用户以实现远程调试。
然而,上述现有技术提供的远程调试移动终端的方法中,移动终端是通过无线方式,例如,通过WiFi连接至PC机上,这种远程调试方法的缺陷在于:一方面,在进行远程调试时需要使用WiFi模块进行网络方面的模拟测试(例如,改变网速和丢包率等),这会对远程调试产生影响;另一方面,多台移动终端接入WiFi同时进行大数据量传输时,无线连接不稳定,传输速度时快时慢,影响功能的正常使用。
发明内容
本发明实施例提供一种远程调试移动终端的方法和装置,以创造较好的调试环境,使得远程调试正常、顺利进行。
本发明实施例提供一种远程调试移动终端的方法,所述方法包括:
识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立所述套接字端口与所述USB接口的映射关系;
通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。
本发明另一实施例提供一种远程调试移动终端的装置,所述装置包括:
识别模块,用于识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立模块,用于建立所述套接字端口与所述USB接口的映射关系;
转发模块,用于通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。
从上述本发明实施例可知,移动终端是直接插在服务器的USB接口上,数据的转发,即,用户从PC机一侧远程调试移动终端是通过映射关系所得用户数据通道进行。一方面,由于移动终端是插在服务器的USB接口上,相对于现有技术的WiFi这种无线连接方式而言,本发明这种方法连接更可靠,调试环境更稳定;另一方面,由于服务器通与PC机建立了TCP连接,而套接字端口与USB接口存在映射关系,对用户而言,移动终端是“插入”到用户的PC机上,用户可以使用各种能够在PC机上使用的工具对远在服务器一侧的移动终端进行调试,为用户对移动终端进行调试提供了很大的便利,使得远程调试变得易于操作。
附图说明
图1是本发明实施例提供的远程调试移动终端的方法的基本流程示意图;
图2是本发明实施例提供的服务器对插入服务器的USB接口上的Android移动终端鉴权流程示意图;
图3是本发明实施例提供的Android移动终端是插入到服务器后用户在PC机一侧可以看到的Android移动终端的用户界面示意图;
图4是本发明实施例提供的建立服务器与移动终端之间的私有数据通道流程示意图;
图5是本发明实施例提供的移动终端上的逻辑模块1通过所建立的私有数据通道与服务器上的逻辑模块2连接示意图;
图6是本发明实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图7是本发明实施例提供的一个AdbHooker进程模块与一个Android移动终端一一映射示意图;
图8是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图9是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图10-a是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图10-b是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图10-c是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图11-a是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图11-b是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图;
图11-c是本发明另一实施例提供的远程调试移动终端的装置基本逻辑结构示意图。
具体实施方式
本发明实施例提供一种远程调试移动终端的方法,所述方法包括:识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;建立所述套接字端口与所述USB接口的映射关系;通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。本发明实施例还提供相应的远程调试移动终端的装置。以下分别进行详细说明。
本发明实施例的远程调试移动终端的方法可应用于采用客户端/服务器(Client/Server,C/S)架构的系统中的服务器,其执行主体可以是服务器或者其中的功能模块,例如,AdbHooker进程模块;移动终端可以是操作系统为Android的移动终端,例如,操作系统为Android的智能手机。以下以移动终端是Android移动终端为例,来说明本发明实施例提供的远程调试移动终端的方法,其基本流程可参考图1,主要包括步骤S101至步骤S103,详细说明如下:
S101,识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接。
具体地,AdbHooker进程模块可以调用adb驱动层方法,遍历当前插入服务器的Android移动终端,并获取Android移动终端的序列号,识别出所要连接的Android移动终端的序列号时,则保存该Android移动终端的通用串行总线(Universal Serial Bus,USB)句柄,打开输入和输出,准备鉴权。
在本发明实施例中,服务器通过套接字(Socket)端口与个人电脑(PersonalComputer,PC)机建立传输控制协议(Transmission Control Protocol,TCP)连接,具体地,是用户用于调试的PC机上的Adbh进程通过Socket端口与服务器上的AdbHooker进程建立TCP连接,如此,用户使用Adb,通过该TCP连接,可以将调试需要用到的命令从PC机传输至服务器。
现有技术提供的远程调试移动终端的方法中,当一个Android移动终端接入到PC后,Android移动终端上会弹出授权提示框,问询用户是否使用该PC对当前接入的Android移动终端进行调试,只有确认使用该PC对当前接入的Android移动终端进行调试后,PC才可以与Android移动终端连接。这就是所谓的调试白名单机制,该机制对远程调试而言存在一定的弊端,这是因为,Android移动终端并不在用户身边,而是在某个实验室中,用户在很多情况下是没有办法或者不是很方便到实验室(例如,需要繁杂的授权手续才能进入实验室)去确认,从而导致用户无法将Android移动终端连接到PC。
鉴于上述现有技术提供的远程调试Android移动终端的方法存在的弊端,在本发明实施例中,在识别出插入服务器的USB接口上的Android移动终端之后,还包括对所述插入服务器的USB接口上的Android移动终端鉴权,鉴权流程如附图2所示,包括步骤S201至步骤S209:
S201,服务器向Android移动终端发送CONN。
尽管是AdbHooker进程模块向Android移动终端发送的CONN即连接请求,但在Android移动终端看来,该连接请求是来自于用户那一侧的PC机。
S202,Android移动终端生成Token。
S203,Android移动终端向服务器发送Token。
Android移动终端向服务器发送令牌(Token)的目的在于要求服务器使用该令牌提供密钥。
S204,服务器使用令牌将密钥签名。
S205,服务器向Android移动终端发送密钥。
服务器向Android移动终端发送的密钥是采用之前Android移动终端向服务器发送的令牌进行签名的密钥。
S206,Android移动终端向服务器请求发送新的密钥。
若Android移动终端在本端没有发现能与步骤S205发送过来的密钥相匹配的密钥,则请求服务器发送新的密钥。
S207,服务器生成新的密钥。
服务器根据Android移动终端发送的请求,重新生成新的密钥。
S208,服务器请求Android移动终端授权。
S209,Android移动终端向服务器返回该Android移动终端的设备信息。
Android移动终端在本端发现能够与新的密钥相匹配的密钥后,即接受连接请求进行连接,并向服务器返回其设备信息。
一旦完成对插入服务器的USB接口上的Android移动终端鉴权,则可以有效避免上述现有技术提供的远程调试Android移动终端的方法中调试白名单机制存在的弊端,即,在AdbHooker进程模块与Android移动终端连接时已经完成了对Android移动终端的鉴权,当PC发出连接请求CONN时,AdbHooker进程模块直接向PC返回该连接请求CONN的响应和Android移动终端的设备信息,如此,用户的PC可以直接与Android移动终端连接成功,从而解决现有技术调试白名单机制存在的问题。
S102,建立套接字端口与USB接口的映射关系。
作为本发明一个实施例,建立套接字端口与USB接口的映射关系包括如下步骤S1021至步骤S1023:
S1021,启动套接字端口建立与PC机的连接。
在本发明实施例中,AdbHooker进程模块启动一个套接字端口,等待用户从PC机一侧连接所述套接字端口,例如,用户从PC机一侧发送“adb connect地址:端口”这一命令建立PC与服务器的连接。
S1022,接收PC机发送过来的设备连接命令。
在服务器与PC之间的连接建立之后,用户使用PC机侧的adb向服务器发送设备连接命令,服务器接收PC机发送过来的设备连接命令,该设备连接命令表明用户欲将PC机连接至Android移动终端。
S1023,将Android移动终端的设备信息发送至PC机。
如前所述,服务器之前已经完成对Android移动终端进行了鉴权。在接收到PC机发送过来的设备连接命令后,服务器可以将Android移动终端的设备信息发送至PC机。一旦PC机收到服务器发送过来的Android移动终端的设备信息,用户即认为PC机与该Android移动终端连接成功,此时便建立了该套接字端口与USB接口的映射关系。
S103,通过映射关系所得用户数据通道,将套接字端口上的数据转发至USB接口以及将USB接口上的数据转发至套接字端口。
套接字端口与USB接口的映射关系的建立,意味着PC机与服务器之间的用户数据通道建立,则后续只需要将PC机发送过来的数据(包括adb命令行)直接通过USB接口发送至Android移动终端,也可以将从USB接口收到的数据(除私有数据通道上的消息外)发送至PC机;这些数据均从用户数据通道传输。对用户而言,此时的Android移动终端是“插入”到当前正在操作的PC机上,用户可以看到如附图3示例的Android移动终端的用户界面并进行相关的操作,例如,可以使用adb命令操作该Android移动终端,也可以使用Eclipse、MonkeyRunner等工具调测该Android移动终端上的应用。
用户在对Android移动终端进行远程调试时,可能还有其他需求,例如,用户可能希望能看到Android移动终端的屏幕图像,此时就要将Android移动终端的屏幕图像通过服务器传送至PC机,显示给用户。由于传输图像时,数据量较大,因此需要在服务器与Android移动终端之间建立私有数据通道,建立服务器与Android移动终端之间的私有数据通道流程如附图4所示。在附图4示例的流程中,OPEN、REDY、WRITE和CLOSE等命令,其参数local_id用于对命令、数据等的发送者或/和产生者进行标识,而remote_id用于对命令、数据等的接收者或/和处理者进行标识,以下详细说明附图4示例的流程,主要包括步骤S401至步骤S405:
S401,服务器向Android移动终端发送OPEN(local_id,remote_id,cmd)命令。
服务器向Android移动终端发送的OPEN命令中,其参数local_id除了用于对服务器与Android移动终端之间建立的私有数据通道进行标识外,还用于对OPEN命令的发送者或/和产生者即服务器进行标识,remote_id用于对该OPEN命令的接收者或/和处理者即Android移动终端进行标识,当然,在服务器向Android移动终端初次发送OPEN命令时,remote_id的值为0,cmd是OPEN命令中某个操作的具体执行动作。
S402,Android移动终端向服务器返回READY(local_id,remote_id)响应消息。
Android移动终端向服务器返回的READY这一响应消息,其参数local_id用于对READY响应消息的发送者或/和产生者即Android移动终端进行标识,remote_id用于对READY命令的接收者或/和处理者即服务器进行标识标识,根据前述对参数local_id和remote_id的统一定义,此时READY响应消息中参数remote_id的值应该等于OPEN命令中参数local_id的值。
S403,服务器向Android移动终端发送WRITE(local_id,remote_id,data)命令。
服务器向Android移动终端发送的WRITE(local_id,remote_id,data)命令中,其参数local_id用于对WRITE命令的发送者或/和产生者即服务器进行标识,参数remote_id用于对WRITE命令的接收者或/和处理者即Android移动终端进行标识,并且,根据前述对参数local_id和remote_id的统一定义,此时WRITE命令中参数local_id的值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数remote_id的值相等,此时WRITE命令中参数remote_id的值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数local_id的值相等。
S404,Android移动终端向服务器返回READY(local_id,remote_id)响应消息。
此步骤中,Android移动终端向服务器返回的READY(local_id,remote_id)响应消息,其参数local_id和remote_id的含义与前述步骤S402中Android移动终端向服务器返回的READY(local_id,remote_id)响应消息的参数local_id和remote_id的含义分别相同,只不过此步骤返回的响应消息是对服务器向Android移动终端发送的WRITE命令的响应,因此,其参数的含义不做赘述。
当然,Android移动终端与服务器之间写数据是双向的,即Android移动终端也可以向服务器写数据,服务器也可以向Android移动终端返回响应消息,如步骤S’403和步骤S’404:
S’403,Android移动终端向服务器发送WRITE(local_id,remote_id,data)命令。
Android移动终端向服务器发送的WRITE命令中,其参数local_id用于对WRITE命令的发送者或/和产生者即Android移动终端进行标识,参数remote_id用于对WRITE命令的接收者或/和处理者即服务器进行标识,并且,根据前述对参数local_id和remote_id的统一定义,此时WRITE命令中参数local_id值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数local_id的值相等,WRITE命令中参数remote_id值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数remote_id的值相等。
S’404,服务器向Android移动终端返回READY(local_id,remote_id)响应消息。
服务器向Android移动终端返回的READY响应消息中,其参数local_id用于对READY响应消息的发送者或/和产生者即服务器进行标识,参数remote_id用于对READY响应消息的接收者或/和处理者即Android移动终端进行标识,并且,根据前述对参数local_id和remote_id的统一定义,此时READY响应消息中参数local_id的值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数local_id的值相等,此时READY响应消息中参数remote_id的值应当与紧接OPEN命令之后Android移动终端向服务器返回的READY响应消息中参数remote_id的值相等。
S405,服务器向Android移动终端发送CLOSE(local_id,remote_id)命令。
服务器向Android移动终端发送的CLOSE(local_id,remote_id)命令,其参数local_id和remote_id的含义与前述步骤S401中服务器向Android移动终端发送的OPEN命令的参数local_id和remote_id的含义分别相同,因此,其参数的含义不做赘述。
附图5示出了Android移动终端上的逻辑模块1通过所建立的私有数据通道与服务器上的逻辑模块2连接示意图。
由于PC机与Android移动终端之间的用户数据通道以及服务器与Android移动终端之间的私有数据通道都通过USB接口,为了区分这两种通道,即区分USB接口上的数据来自哪里以及发送至哪里,在本发明实施例中,对私有数据通道和用户数据通道采用连接标识进行标识,例如,私有数据通道采用第一连接标识进行标识,用户数据通道采用第二连接标识进行标识,其中,第一连接标识和第二连接标识均使用数字表示。
在本发明实施例中,用于表示第一连接标识的数字远大于用于表示第二连接标识的数字,这种“远大于”体现为当第一连接标识一旦确定使用一个固定的数字表示,其大小应该考虑到,在实际应用中,若用于表示第二连接标识的数字会随着用户数据通道的数量的增多而变大,但无论怎样变大,其大小不会达到或超过用于表示第一连接标识的数字的大小,这种方式就可以避免第一连接标识(使用local_id表示)的值与第二连接标识(使用local_id表示)的值相等,从而有效地将私有数据通道与用户数据通道(两者均可用local_id表示)区别开来。这是因为,用于对用户数据通道进行标识的第二连接标识(local_id)的值从0开始,每次新建一个用户数据通道时,第二连接标识的值都会递增。由于建立用户数据通道并不是一个频繁的动作,实际应用中用于对用户数据通道进行标识的第二连接标识的值不可能达到非常大,因此,只要用于对私有数据通道进行标识的第一连接标识(local_id)的值从一个非常大的数开始,例如,local_id=0x06000000,则可以将私有数据通道与用户数据通道区别开来。
除了上述方法,本发明实施例还提供一种方法将私有数据通道与用户数据通道区别开来,即,在建立所述服务器与所述Android移动终端之间的私有数据通道之后,根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识,将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。如此,当服务器收到的数据带有第三连接标识时,服务器根据上述映射关系便能获知该数据来自与Android移动终端之间建立的私有数据通道,当服务器收到的数据带有第四连接标识时,服务器根据上述映射关系便能获知该数据来自服务器与PC机之间建立的用户数据通道。
从上述本发明实施例提供的远程调试Android移动终端的方法可知,Android移动终端是直接插在服务器的USB接口上,数据的转发,即,用户从PC机一侧远程调试Android移动终端是通过映射关系所得用户数据通道进行。一方面,由于Android移动终端是插在服务器的USB接口上,相对于现有技术的WiFi这种无线连接方式而言,本发明这种方法连接更可靠,调试环境更稳定;另一方面,由于服务器通与PC机建立了TCP连接,而套接字端口与USB接口存在映射关系,对用户而言,Android移动终端是“插入”到用户的PC机上,用户可以使用各种能够在PC机上使用的工具对远在服务器一侧的Android移动终端进行调试,为用户对Android移动终端进行调试提供了很大的便利,使得远程调试变得易于操作。
下面对用于执行上述远程调试Android移动终端的方法的本发明实施例的远程调试Android移动终端的装置进行说明,其基本逻辑结构参考图6。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图6示例的远程调试Android移动终端的装置,该装置可以是远程调试Android移动终端的服务器或者其中的功能模块,例如,AdbHooker进程模块。附图6示例的远程调试Android移动终端的装置主要包括识别模块601、建立模块602和转发模块603,各模块详细说明如下:
识别模块601,用于识别插入服务器的通用串行总线USB接口上的Android移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立模块602,用于建立所述套接字端口与所述USB接口的映射关系;
转发模块603,用于通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。
需要说明的是,以上附图6示例的远程调试Android移动终端的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述远程调试Android移动终端的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的识别模块,可以是具有执行前述识别插入服务器的通用串行总线USB接口上的Android移动终端的硬件,例如识别器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的转发模块,可以是通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口功能的硬件,例如转发器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图6示例的远程调试Android移动终端的装置中,识别模块601的识别Android移动终端、建立模块602的建立映射关系和转发模块603的转发数据均由AdbHooker进程模块执行。
需要说明的是,在附图6示例的远程调试Android移动终端的装置中,一个AdbHooker进程模块与一个Android移动终端一一映射,即AdbHooker进程模块采用多进程设计,每个AdbHooker进程模块只连接一个Android移动终端,如附图7所示。在附图7示例的架构中,adbmgr负责管理插入至服务器上的Android移动终端,当Android移动终端插入服务器后,adbmgr最先获知,然后adbmgr启动一个AdbHooker进程模块去与这个Android移动终端相联,完成真正业务功能。一方面,当AdbHooker进程模块出现异常或非正常退出时,adbmgr会重新启动一个AdbHooker进程以进行容错处理;另一方面,adbmgr监控服务器上插入的Android移动终端,当新插入一个Android移动终端时则启动一个新的AdbHooker进程,并将Android移动终端的序列号作为参数传递,AdbHooker进程模块启动后则与指定序列号的Android移动终端相连。
附图7示例的架构,一方面可以充分利用多核CPU的性能,另一方面,在异常发生的情况下Android移动终端之间互不影响,并且有利于错误的恢复。
附图6示例的远程调试Android移动终端的装置还可以包括鉴权模块801,如附图8所示本发明另一实施例提供的远程调试Android移动终端的装置。鉴权模块801用于在识别模块识别插入服务器的通用串行总线USB接口上的Android移动终端后,对所述插入服务器的USB接口上的Android移动终端鉴权。
附图8示例的建立模块602可以包括鉴权模块801可以包括启动单元901、接收单元902和发送单元903,如附图9所示本发明另一实施例提供的远程调试Android移动终端的装置,其中:
启动单元901,用于启动所述套接字端口建立与所述PC机的连接;
接收单元902,用于接收所述PC机发送过来的设备连接命令;
发送单元903,用于将所述Android移动终端的设备信息发送至所述PC机。
附图6、附图8或附图9示例的远程调试Android移动终端的装置还可以包括私有数据通道建立模块1001,如附图10-a至附图10-c任一示例所示的远程调试Android移动终端的装置。私有数据通道建立模块1001用于建立所述服务器与所述Android移动终端之间的私有数据通道。
在附图10-a至附图10-c任一示例所示的远程调试Android移动终端的装置中,私有数据通道采用第一连接标识进行标识,所述用户数据通道采用第二连接标识进行标识,所述第一连接标识和所述第二连接标识均使用数字表示,用于表示所述第一连接标识的数字远大于用于表示所述第二连接标识的数字。
附图10-a至附图10-c任一示例所示的远程调试Android移动终端的装置还可以包括连接标识重生成模块1101和映射模块1102,如附图11-a至附图11-c任一示例所示的远程调试Android移动终端的装置,其中:
连接标识重生成模块1101,用于在建立所述服务器与所述Android移动终端之间的私有数据通道后,根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识;
映射模块1102,用于将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。
本发明实施例还给出一种远程调试移动终端的服务器,该远程调试移动终端的服务器可以用于实施上述实施例中提供的远程调试移动终端的方法方法。具体来讲:远程调试移动终端的服务器可以包括有一个或一个以上计算机可读存储介质的存储器、一个或者一个以上处理核心的处理器等部件。本领域技术人员可以理解,上述存储器结构并不构成对远程调试移动终端的服务器的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据远程调试移动终端的服务器的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
尽管未示出,远程调试移动终端的服务器还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立所述套接字端口与所述USB接口的映射关系;
通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述识别移动终端、建立映射关系和转发数据均由AdbHooker进程模块执行,一个所述AdbHooker进程模块与一个所述Android移动终端一一映射。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述远程调试移动终端的服务器的存储器中,还包含以下指令:
对所述插入服务器的USB接口上的Android移动终端鉴权。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述远程调试Android移动终端的服务器的存储器中,还包含以下指令:
启动所述套接字端口建立与所述PC机的连接;
接收所述PC机发送过来的设备连接命令;
将所述Android移动终端的设备信息发送至所述PC机。
假设上述为第四种可能的实施方式,则在第一种至第四种任意一种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述远程调试移动终端的服务器的存储器中,还包含以下指令:
建立所述服务器与所述Android移动终端之间的私有数据通道。
假设上述为第五种可能的实施方式,则在第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,私有数据通道采用第一连接标识进行标识,所述用户数据通道采用第二连接标识进行标识,所述第一连接标识和所述第二连接标识均使用数字表示,用于表示所述第一连接标识的数字远大于用于表示所述第二连接标识的数字。
假设上述为第五种可能的实施方式,则在第五种可能的实施方式作为基础而提供的第七种可能的实施方式中,所述远程调试移动终端的服务器的存储器中,还包含以下指令:
根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识;
将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。
作为另一方面,本发明再一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入远程调试移动终端的服务器中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行一个远程调试移动终端的方法,所述方法包括:
识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立所述套接字端口与所述USB接口的映射关系;
通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述识别移动终端、建立映射关系和转发数据均由AdbHooker进程模块执行,一个所述AdbHooker进程模块与一个所述Android移动终端一一映射。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述识别插入服务器的通用串行总线USB接口上的移动终端之后,还包括:对所述插入服务器的USB接口上的Android移动终端鉴权。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述建立所述套接字端口与所述USB接口的映射关系,包括:
启动所述套接字端口建立与所述PC机的连接;
接收所述PC机发送过来的设备连接命令;
将所述Android移动终端的设备信息发送至所述PC机。
假设上述为第四种可能的实施方式,则在第一种至第四种任意一种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述建立所述套接字端口与所述USB接口的映射关系之后,还包括:建立所述服务器与所述Android移动终端之间的私有数据通道。
假设上述为第五种可能的实施方式,则在第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,所述私有数据通道采用第一连接标识进行标识,所述用户数据通道采用第二连接标识进行标识,所述第一连接标识和所述第二连接标识均使用数字表示,用于表示所述第一连接标识的数字远大于用于表示所述第二连接标识的数字。
假设上述为第五种可能的实施方式,则在第五种可能的实施方式作为基础而提供的第七种可能的实施方式中,所述建立所述服务器与所述Android移动终端之间的私有数据通道之后,还包括:
根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识;
将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的远程调试移动终端的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种远程调试移动终端的方法,其特征在于,所述方法包括:
识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立所述套接字端口与所述USB接口的映射关系;
通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口;
其中,在所述建立所述套接字端口与所述USB接口的映射关系之后,建立所述服务器与所述移动终端之间的私有数据通道,所述私有数据通道采用第一连接标识进行标识,所述用户数据通道采用第二连接标识进行标识,所述第一连接标识和所述第二连接标识均使用数字表示,所述用于表示所述第一连接标识的数字远大于所述用于表示所述第二连接标识的数字。
2.根据权利要求1所述的方法,其特征在于,所述移动终端为Android移动终端,所述识别移动终端、建立映射关系和转发数据均由AdbHooker进程模块执行,一个所述AdbHooker进程模块与一个所述Android移动终端一一映射。
3.根据权利要求2所述的方法,其特征在于,所述识别插入服务器的通用串行总线USB接口上的移动终端之后,还包括:
对所述插入服务器的USB接口上的Android移动终端鉴权。
4.根据权利要求2所述的方法,其特征在于,所述建立所述套接字端口与所述USB接口的映射关系,包括:
启动所述套接字端口建立与所述PC机的连接;
接收所述PC机发送过来的设备连接命令;
将所述Android移动终端的设备信息发送至所述PC机。
5.根据权利要求1所述的方法,其特征在于,所述建立所述服务器与所述移动终端之间的私有数据通道之后,还包括:
根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识;
将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。
6.一种远程调试移动终端的装置,其特征在于,所述装置包括:
识别模块,用于识别插入服务器的通用串行总线USB接口上的移动终端,所述服务器通过套接字端口与个人电脑PC机建立传输控制协议TCP连接;
建立模块,用于建立所述套接字端口与所述USB接口的映射关系;
转发模块,用于通过所述映射关系所得用户数据通道,将所述套接字端口上的数据转
发至所述USB接口以及将所述USB接口上的数据转发至所述套接字端口;
其中,所述装置还包括:私有数据通道建立模块,用于建立所述服务器与所述移动终端之间的私有数据通道,所述私有数据通道采用第一连接标识进行标识,所述用户数据通道采用第二连接标识进行标识,所述第一连接标识和所述第二连接标识均使用数字表示,所述用于表示所述第一连接标识的数字远大于所述用于表示所述第二连接标识的数字。
7.根据权利要求6所述的装置,其特征在于,所述移动终端为Android移动终端,所述识别模块的识别移动终端、建立模块的建立映射关系和转发模块的转发数据均由AdbHooker进程模块执行,一个所述AdbHooker进程模块与一个所述Android移动终端一一映射。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
鉴权模块,用于在识别模块识别插入服务器的通用串行总线USB接口上的移动终端后,对所述插入服务器的USB接口上的Android移动终端鉴权。
9.根据权利要求7所述的装置,其特征在于,所述建立模块包括:
启动单元,用于启动所述套接字端口建立与所述PC机的连接;
接收单元,用于接收所述PC机发送过来的设备连接命令;
发送单元,用于将所述Android移动终端的设备信息发送至所述PC机。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
连接标识重生成模块,用于在建立所述服务器与所述移动终端之间的私有数据通道后,根据建立所述私有数据通道和所述用户数据通道时的建立请求的来源,重新生成相应的连接标识;
映射模块,用于将所述重新生成的与所述私有数据通道相应的连接标识映射成第三连接标识,将所述重新生成的与所述用户数据通道相应的连接标识映射成第四连接标识。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151422.9A CN104967585B (zh) | 2014-04-15 | 2014-04-15 | 一种远程调试移动终端的方法和装置 |
PCT/CN2015/076323 WO2015158219A1 (en) | 2014-04-15 | 2015-04-10 | Remote debugging method and apparatus for mobile terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151422.9A CN104967585B (zh) | 2014-04-15 | 2014-04-15 | 一种远程调试移动终端的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967585A CN104967585A (zh) | 2015-10-07 |
CN104967585B true CN104967585B (zh) | 2018-07-20 |
Family
ID=54221531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410151422.9A Active CN104967585B (zh) | 2014-04-15 | 2014-04-15 | 一种远程调试移动终端的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104967585B (zh) |
WO (1) | WO2015158219A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708489B (zh) * | 2015-11-17 | 2020-01-17 | 杭州海康威视数字技术股份有限公司 | 设备的调试方法及系统 |
CN107026764B (zh) * | 2016-02-02 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 一种远程调试方法、设备、服务器及系统 |
CN105868109B (zh) * | 2016-03-28 | 2019-03-05 | 北京奇虎科技有限公司 | 一种改进的移动端应用测试方法和系统 |
CN106250455B (zh) * | 2016-07-27 | 2020-02-11 | 北京奇虎科技有限公司 | 移动终端文件管理方法和系统 |
CN106383785B (zh) * | 2016-09-21 | 2018-11-27 | 网易(杭州)网络有限公司 | 移动应用的调试方法及装置 |
CN108628683B (zh) * | 2017-03-20 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 数据传输方法和装置 |
CN107329868A (zh) * | 2017-07-07 | 2017-11-07 | 阔地教育科技有限公司 | 终端控制方法、存储设备、终端控制装置及系统 |
CN109413010B (zh) * | 2017-08-18 | 2021-01-05 | 深圳兆日科技股份有限公司 | 终端的认证方法、装置和系统 |
CN109842550A (zh) * | 2017-11-28 | 2019-06-04 | 中国电信股份有限公司 | 远程调试系统、方法、装置和计算机可读存储介质 |
CN109189629B (zh) * | 2018-08-14 | 2022-04-12 | 福建天泉教育科技有限公司 | 基于usb设备实现终端远程控制的方法、存储介质 |
WO2021003694A1 (en) * | 2019-07-10 | 2021-01-14 | Micro Focus Llc | Device debugging connection control and maintenance |
CN112671814B (zh) * | 2019-10-15 | 2022-04-12 | 北京奇艺世纪科技有限公司 | 一种跨平台的设备开发方法、装置及系统 |
CN111459840A (zh) * | 2020-04-26 | 2020-07-28 | 恩亿科(北京)数据科技有限公司 | 一种进程的调试方法及装置 |
CN112084537B (zh) * | 2020-09-02 | 2023-09-08 | 英博超算(南京)科技有限公司 | 一种jtag调试系统 |
CN112306874A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种软件的远程维护系统、方法、装置及存储介质 |
CN112583893B (zh) * | 2020-11-19 | 2024-04-30 | 银捷尼科(福建)科技有限公司 | 一种Android终端统一通道通信方法及终端 |
CN112486392A (zh) * | 2020-12-02 | 2021-03-12 | 广州朗国电子科技有限公司 | 一种安卓主板参数配置方法、系统及存储介质 |
CN112822081A (zh) * | 2021-01-08 | 2021-05-18 | 广州视源电子科技股份有限公司 | 调试数据的传输方法和装置 |
CN112968889B (zh) * | 2021-02-08 | 2022-10-21 | 深圳市慧为智能科技股份有限公司 | 主机权限管理方法、终端、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780334A (zh) * | 2004-11-22 | 2006-05-31 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端机电话连接服务的远程调试装置和其方法 |
CN1779644A (zh) * | 2004-11-22 | 2006-05-31 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端数据的远程下载及pc-同步化装置和方法 |
CN103299285A (zh) * | 2010-11-29 | 2013-09-11 | 美思系统有限公司 | 连接到usb外围设备的主机设备及其操作方法 |
CN103383669A (zh) * | 2012-05-02 | 2013-11-06 | 三星电子株式会社 | 用于识别通用串行总线主机的方法及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253882B (zh) * | 2004-12-31 | 2014-11-26 | 英特尔公司 | 远程记录机制 |
US9064049B2 (en) * | 2010-12-14 | 2015-06-23 | Microsoft Technology Licensing, Llc | Remote debugging of server side code without blocking or high-level privileges |
CN102438116A (zh) * | 2011-08-17 | 2012-05-02 | 中国科学院光电技术研究所 | 一种基于嵌入式Linux系统的高速图像记录装置 |
US9609020B2 (en) * | 2012-01-06 | 2017-03-28 | Optio Labs, Inc. | Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines |
US9251039B2 (en) * | 2012-02-17 | 2016-02-02 | Microsoft Technology Licensing, Llc | Remote debugging as a service |
-
2014
- 2014-04-15 CN CN201410151422.9A patent/CN104967585B/zh active Active
-
2015
- 2015-04-10 WO PCT/CN2015/076323 patent/WO2015158219A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780334A (zh) * | 2004-11-22 | 2006-05-31 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端机电话连接服务的远程调试装置和其方法 |
CN1779644A (zh) * | 2004-11-22 | 2006-05-31 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端数据的远程下载及pc-同步化装置和方法 |
CN103299285A (zh) * | 2010-11-29 | 2013-09-11 | 美思系统有限公司 | 连接到usb外围设备的主机设备及其操作方法 |
CN103383669A (zh) * | 2012-05-02 | 2013-11-06 | 三星电子株式会社 | 用于识别通用串行总线主机的方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104967585A (zh) | 2015-10-07 |
WO2015158219A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967585B (zh) | 一种远程调试移动终端的方法和装置 | |
CN107463499B (zh) | Adb远程连接方法、装置、设备及存储介质 | |
US11119839B2 (en) | Remote debugging and management | |
CN109088820B (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN105338550B (zh) | 一种用于无线网络的连接的管理方法和装置 | |
CN104468368A (zh) | 配置bgp邻居的方法及装置 | |
CN109743244A (zh) | 一种基于sdn与nfv技术实现高速互联互通的系统和方法 | |
CN109379742A (zh) | 一种无线局域网的接入方法、装置和存储介质 | |
CN106506515A (zh) | 一种认证方法和装置 | |
CN108494607A (zh) | 基于容器的大二层网络架构的设计方法及系统 | |
US20170300403A1 (en) | Recordation of user interface events for script generation | |
CN106850554B (zh) | 双系统定向连接的方法和装置 | |
JP7098711B2 (ja) | 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム | |
CN104426715A (zh) | 一种分布式测试工具控制方法 | |
JP7437409B2 (ja) | 設定装置、通信システム、設定方法、及びプログラム | |
CN109933411B (zh) | 一种在线修改虚拟机内部配置系统及方法 | |
KR20150088462A (ko) | 클라우드 환경에서 네트워크 장치의 연동 방법 및 장치 | |
CN108234174A (zh) | 虚拟网络功能的管理方法和装置 | |
CN115604070A (zh) | 基于mctp协议的消息传输方法、装置、设备及介质 | |
CN113656152B (zh) | 基于容器云环境的本地模拟方法、系统、介质和电子设备 | |
CN114510323A (zh) | 在容器中运行虚机的网络优化实现方法 | |
WO2021051936A1 (zh) | 软件定义网络sdn网络构建方法及装置 | |
CN107819707B (zh) | 数据处理的方法、装置、物理机、虚拟交换机与系统 | |
JP2009278317A (ja) | ネットワークドライバ、該ネットワークドライバが組み込まれたコンピュータ及びサーバ | |
CN113742424A (zh) | 基于rpa的自然资源一体化跨网动态表单数据同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |