CN108845946B - 一种终端、调试系统以及终端调试方法 - Google Patents
一种终端、调试系统以及终端调试方法 Download PDFInfo
- Publication number
- CN108845946B CN108845946B CN201810712946.9A CN201810712946A CN108845946B CN 108845946 B CN108845946 B CN 108845946B CN 201810712946 A CN201810712946 A CN 201810712946A CN 108845946 B CN108845946 B CN 108845946B
- Authority
- CN
- China
- Prior art keywords
- debugging
- communication protocol
- sub
- port
- command
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种终端、调试系统以及终端调试方法。该终端包括第一子设备和第二子设备,第一子设备和第二子设备分别独立运行一操作系统,第二子设备通过总线与第一子设备连接,第一子设备适于连接到一调试装置,其中,第一子设备具有第一调试服务端和第一守护进程,第二子设备具有第二守护进程;第一守护进程适于通过第一通信协议端口接收调试装置发来的第一命令,以使调试装置能够对第一子设备进行调试;第一调试服务端适于通过第二通信协议端口接收调试装置发来的第二命令,且与第二守护进程连接,以将第二命令转发给第二守护进程,使调试装置能够对第二子设备进行调试。本发明的终端所包括的第一子设备和第二子设备能够被方便地调试。
Description
技术领域
本发明主要涉及电子终端的调试,尤其涉及对具有两个子设备的终端的调试。
背景技术
在对智能终端进行调试时,经常需要将智能终端连接至个人计算机(PersonalComputer,PC),然后调试人员通过PC对智能终端进行ADB(Android Debug Bridge)调试等其他操作。在现有技术中,主要是通过通用串行总线(Universal Serial Bus,USB)、有线连接或Wi-Fi(Wireless Fidelity)无线连接来实现智能终端同PC的连接,从而在对智能终端进行ADB调试时,能够通过PC对智能终端进行控制,并能够在PC和智能终端之间进行数据传输。
现有的双屏双系统POS终端作为一种智能终端其包含主屏设备和副屏设备,主屏设备和副屏设备有各自独立的硬件板,运行各自的操作系统。操作系统通常为安卓(Android)操作系统。主屏设备和副屏设备之间通过USB连接,且主屏设备作为USB的主设备,副屏设备作为USB的从设备。另外,副屏设备通常不具有网络模块,外部网络无法直接访问副屏设备。在对双屏双系统POS终端进行调试时,PC与该POS终端的连接关系如图1所示。为对上述的双屏双系统POS终端进行调试,现有技术通常采用如下几种方法,但各有缺点:
1、当PC通过USB连接主屏设备进行调试时,主屏设备作为USB从设备,将会导致主屏设备断开与副屏设备之间的USB通信,PC也就无法获取到副屏设备的任何信息。这是由于Android操作系统的USB端口只能做主设备或者从设备,无法同时既做主设备又做从设备,而主屏设备和副屏设备USB通信需要主屏设备作为USB主设备,副屏设备作为USB从设备,当主屏设备变为USB从设备时,必然会断开与副屏设备的USB连接。
2、当PC通过Wi-Fi无线连接主屏设备进行调试时,由于副屏设备没有Wi-Fi模块,PC无法直接与副屏设备进行无线通信,PC也就无法获取到副屏设备的任何信息。
3、当PC通过Wi-Fi无线连接主屏设备进行调试时,若需要获取副屏设备的信息,需要通过USB接口来实现,并且需要在主屏设备和副屏设备开发一套自定义的通讯协议来获取信息。这种做法要求开发者按照自定义的通讯协议接口来使用,不够通用,开发难度大。
发明内容
本发明要解决的技术问题是提供一种终端、调试系统以及终端调试方法,该终端所包括的第一子设备和第二子设备能够被方便地调试。
为解决上述技术问题,本发明的一方面提供了一种终端,包括第一子设备和第二子设备,所述第一子设备和所述第二子设备分别独立运行一操作系统,所述第二子设备通过总线与所述第一子设备连接,所述第一子设备适于连接到一调试装置,其中,所述第一子设备具有第一通信协议端口、第二通信协议端口、第一调试服务端和第一守护进程,所述第二子设备具有第二守护进程;所述第一守护进程适于通过所述第一通信协议端口接收所述调试装置发来的第一命令,以使所述调试装置能够对所述第一子设备进行调试;所述第一调试服务端适于通过所述第二通信协议端口接收所述调试装置发来的第二命令,且与所述第二守护进程连接,以将所述第二命令转发给所述第二守护进程,使所述调试装置能够对所述第二子设备进行调试。
在本发明的一实施例中,所述调试装置包括第二调试客户端和第二调试服务端,所述第二调试客户端适于接收开发人员输入的调试命令,并将所述调试命令发送给所述第二调试服务端,所述第二调试服务端适于根据所述调试命令产生所述第一命令和/或所述第二命令。
在本发明的一实施例中,所述第一守护进程适于通过所述第一通信协议端口与所述第二调试服务端连接。
在本发明的一实施例中,所述第一调试服务端适于通过所述第二通信协议端口与所述第二调试服务端连接。
在本发明的一实施例中,所述调试装置还包括第五通信协议端口,所述第二调试服务端通过所述第五通信协议端口接收所述调试命令。
在本发明的一实施例中,所述第一通信协议端口为第一TCP端口,所述第二通信协议端口为第二TCP端口,所述第一TCP端口不同于所述第二TCP端口。
在本发明的一实施例中,所述第一通信协议端口和所述第二通信协议端口为有线网络连接中两个不同的通信协议端口或无线网络连接中两个不同的通信协议端口。
在本发明的一实施例中,所述第二通信协议端口不同于所述第一调试服务端与对应的第一调试客户端之间的通信协议端口。
在本发明的一实施例中,所述第一守护进程执行所述第一命令,和/或所述第二守护进程执行所述第二命令。
本发明的另一方面提供了一种调试系统,包括:调试装置,适于对一终端进行调制,包括第二调试客户端和第二调试服务端,所述第二调试客户端适于接收开发人员输入的调试命令,并将所述调试命令发送给所述第二调试服务端,所述第二调试服务端适于根据所述调试命令产生第一命令和/或第二命令;所述终端,包括第一子设备和第二子设备,所述第一子设备和所述第二子设备分别独立运行一操作系统,所述第二子设备通过总线与所述第一子设备连接,所述第一子设备适于连接到一调试装置,其中,所述第一子设备具有第一通信协议端口、第二通信协议端口、第一调试服务端和第一守护进程,所述第二子设备具有第二守护进程;所述第一守护进程适于通过所述第一通信协议端口接收所述调试装置发来的所述第一命令,以使所述调试装置能够对所述第一子设备进行调试;所述第一调试服务端适于通过所述第二通信协议端口接收所述调试装置发来的所述第二命令,且与所述第二守护进程连接,以将所述第二命令转发给所述第二守护进程,使所述调试装置能够对所述第二子设备进行调试。
在本发明的一实施例中,所述第一守护进程适于通过所述第一通信协议端口与所述第二调试服务端连接。
在本发明的一实施例中,所述第一调试服务端适于通过所述第二通信协议端口与所述第二调试服务端连接。
在本发明的一实施例中,所述调试装置还包括第五通信协议端口,所述第二调试服务端通过所述第五通信协议端口接收所述调试命令。
在本发明的一实施例中,所述第一通信协议端口为第一TCP端口,所述第二通信协议端口为第二TCP端口,所述第一TCP端口不同于所述第二TCP端口。
在本发明的一实施例中,所述第一通信协议端口和所述第二通信协议端口为有线网络连接中两个不同的通信协议端口或无线网络连接中两个不同的通信协议端口。
在本发明的一实施例中,所述第二通信协议端口不同于所述第一调试服务端与对应的第一调试客户端之间的通信协议端口。
在本发明的一实施例中,所述第一守护进程执行所述第一命令,和/或所述第二守护进程执行所述第二命令。
本发明的又一方面提供了一种终端调试方法,适于在调试装置中执行,以对上述的终端进行调试,所述方法包括:接收输入的所述第一子设备的IP地址及端口号,所述端口号与所述第一通信协议端口或所述第二通信协议端口关联;若所述端口号与所述第一通信协议端口关联,则建立与所述第一子设备的调试连接;以及若所述端口号与所述第二通信协议端口关联,则建立与所述第二子设备的调试连接。
与现有技术相比,本发明具有以下优点:
本发明的终端的第一子设备具有第一网络端口和第二网络端口,并且第一子设备能够将第一网络端口接收到的命令转发至终端的第二子设备。这样,同一调试装置可以同时连接第一子设备和第二子设备进行调试,降低了开发人员对终端的调试难度。另外,对本发明的终端进行调试时是使用网络连接第一子设备,规避了第一子设备的总线端口不能同时作为主设备和从设备的缺陷。
附图说明
图1是PC与双屏双系统POS终端的连接关系示意图。
图2是本发明一些实施例的调试系统的示意图。
图3是本发明一些实施例的第一子设备的示例性硬件和/或软件组件的示意图。
图4是本发明一些实施例的第一通信平台的框图。
图5是本发明一些实施例的第二子设备的示例性硬件和/或软件组件的示意图。
图6是本发明一些实施例的第二通信平台的框图。
图7是本发明一些实施例的对第一子设备和第二子设备进行调试的命令的传递示意图。
图8是本发明另一些实施例的对第一子设备和第二子设备进行调试的命令的传递示意图。
图9是本发明一些实施例的对运行Android操作系统的第一子设备和第二子设备进行调试的命令的传递示意图。
图10是本发明一些实施例的终端调试方法的基本流程图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
图2是本发明一些实施例的调试系统1的示意图。参考图2所示,调试系统1可以包括终端10和调试装置20。调试装置20可以对终端10进行调试。
终端10可以包括第一子设备11和第二子设备12,第一子设备11和第二子设备12可以通过总线连接,并且第一子设备11作为主设备,第二子设备12作为从设备。所述总线可以例如包括通用串行总线(Universal Serial Bus,USB)、串行外设接口总线(SerialPeripheral Interface Bus,SPI Bus)、I2C(Inter-Integrated Circuit)总线等,或其任意组合。优选地,所述总线为USB。第一子设备11和第二子设备12可以分别独立运行一操作系统。所述操作系统可以包括Windows、Linux、Unix、iOS、Android、Windows Phone、WindowsMobile等,优选地为Android。在一些实施例中,终端10可以为POS终端,第一子设备11可以为POS终端的主屏设备,第二子设备12可以为POS终端的副屏设备。
图3是本发明一些实施例的第一子设备11的示例性硬件和/或软件组件的示意图。参考图3所示,第一子设备11可以包括第一通信平台110、中央处理器(CPU)140、内存160和存储器190。在一些实施例中,第一子设备11还可以包括显示器120、图形处理器(GPU)130和输入/输出150中的一种或多种。在一些实施例中,第一子设备11还可以包括任何其它合适的组件,包括但不限于系统总线或控制器(图中未示出)。在一些实施例中,操作系统170(例如,Windows、Linux、Unix、iOS、Android、Windows Phone、Windows Mobile等)和至少一个应用180可以从存储器190加载到内存160中,以便由中央处理器140执行。应用180可以包括用于接收命令的程序、用于执行接收到的命令的程序、用于转发接收到的命令的程序等。可以理解,可以在一个应用中集成这些程序中的任意多个,也可以由多个应用分别单独实现这些程序。
第一通信平台110可以用于与调试装置20和/或第二子设备12进行相互通信。图4是本发明一些实施例的第一通信平台110的框图。参考图4所示,第一通信平台110可以包括有线通信模块111、无线通信模块112和总线模块113。有线通信模块111、无线通信模块112可以适于与调试装置20进行有线通信和/或无线通信。所述有线连接可以包括电缆、光缆、电话线等,或其任何组合。所述无线连接可以包括蓝牙、Wi-Fi、WiMax、WLAN、ZigBee、移动网络(例如,2G、3G、4G、5G)等,或其组合。总线模块113可以适于与第二子设备12进行总线通信。所述总线可以是USB、SPI总线、I2C总线等,或其任意组合。
显示器120可以用于显示用户交互界面,例如操作系统170、应用180的用户界面。显示器120可以例如包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、曲面屏幕、电视设备、阴极射线管(CRT)、数码管等,或其组合。
图形处理器130可以用于根据操作系统170和/或应用180的请求进行相应的图形处理,以便于在显示器120上显示交互界面。
中央处理器140可以用于根据操作系统170和/或应用180的请求进行相应的数据处理。中央处理器140可以例如包括精简指令集(RISC)处理器(例如X86处理器、X64处理器)、先进精简指令集(ARM)处理器、专用集成电路(ASIC)等。
输入/输出150可以用于用户的输入,操作结果的输出等。输入/输出150可以例如包括按键、触控板、触摸屏、扫码设备、打印机等。
可以理解,显示器120和输入/输出150可以集成在一个硬件模块中,例如带触摸输入的显示屏,其中的显示部分可以对应于显示器120,触摸输入部分可以对应于输入/输出150。
内存160可以用于暂存操作系统170和/或应用180的计算机指令和/或数据。内存160可以包括动态RAM(DRAM)、双倍数据传输率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)与无电容RAM(Z-RAM)等。
存储器190可以用于存储操作系统170和/或应用180的计算机指令和/或数据。存储器190可以包括磁盘、磁带、光盘、固态驱动器等。
图5是本发明一些实施例的第二子设备12的示例性硬件和/或软件组件的示意图。参考图5所示,第二子设备12可以包括第二通信平台210、中央处理器(CPU)240、内存260和存储器290。在一些实施例中,第二子设备12还可以包括显示器220、图形处理器(GPU)230和输入/输出250中的一种或多种。在一些实施例中,第二子设备12还可以包括任何其它合适的组件,包括但不限于系统总线或控制器(图中未示出)。在一些实施例中,操作系统270(例如,Windows、Linux、Unix、iOS、Android、Windows Phone、Windows Mobile等)和至少一个应用280可以从存储器290加载到内存260中,以便由中央处理器240执行。应用280可以包括用于接收由第一子设备11转发来的命令的程序、用于执行接收到的命令的程序等。可以理解,可以在一个应用中集成这些程序中的任意多个,也可以由多个应用分别单独实现这些程序。
第二通信平台210可以用于与第一子设备11进行相互通信。图6是本发明一些实施例的第二通信平台210的框图。参考图6所示,第二通信平台210可以包括总线模块211。第二子设备12通过总线模块211与第一子设备11进行相互通信。所述总线可以是USB、SPI总线、I2C总线等,或其任意组合。在一些实施例中,第二通信平台210还可以包括有线通信模块212和/或无线通信模块213,以用于与其他设备进行有线通信和/或无线通信。所述有线连接可以包括电缆、光缆、电话线等,或其任何组合。所述无线连接可以包括蓝牙、Wi-Fi、WiMax、WLAN、ZigBee、移动网络(例如,2G、3G、4G、5G)等,或其组合。
显示器220可以用于显示用户交互界面,例如操作系统270、应用280的用户界面。显示器220可以例如包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、曲面屏幕、电视设备、阴极射线管(CRT)、数码管等,或其组合。
图形处理器230可以用于根据操作系统270和/或应用280的请求进行相应的图形处理,以便于在显示器220上显示交互界面。
中央处理器240可以用于根据操作系统270和/或应用280的请求进行相应的数据处理。中央处理器240可以例如包括精简指令集(RISC)处理器(例如X86处理器、X64处理器)、先进精简指令集(ARM)处理器、专用集成电路(ASIC)等。
输入/输出250可以用于用户的输入,操作结果的输出等。输入/输出250可以例如包括按键、触控板、触摸屏、扫码设备、打印机等。
可以理解,显示器220和输入/输出250可以集成在一个硬件模块中,例如带触摸输入的显示屏,其中的显示部分可以对应于显示器220,触摸输入部分可以对应于输入/输出250。
内存260可以用于暂存操作系统270和/或应用280的计算机指令和/或数据。内存260可以包括动态RAM(DRAM)、双倍数据传输率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)与无电容RAM(Z-RAM)等。
存储器290可以用于存储操作系统270和/或应用280的计算机指令和/或数据。存储器290可以包括磁盘、磁带、光盘、固态驱动器等。
调试装置20可以是个人计算机、大型机、小型机、X86服务器、刀片服务器、机架服务器、塔式服务器等,或其组合,或运行于这些服务器上的程序,或这些服务器与运行于其上的程序构成的软硬件组合。所述的个人计算机可以包括桌上型个人计算机(Desktop)、膝上型个人计算机(Laptop)、平板电脑(Tablet)、掌上型电脑。调试装置20可以运行Windows、Linux、Unix、Mac、Android等操作系统。在一些实施例中,调试装置20可以在云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云、跨云、多云等,或其任何组合。
图7是本发明一些实施例的对第一子设备和第二子设备进行调试的命令的传递示意图。参考图7所示,第一子设备11可以具有第一通信协议端口11a和第二通信协议端口11b。第一通信协议端口11a和第二通信协议端口11b可以用于接收调试装置20发来的第一命令。第一子设备11可以执行第一通信协议端口11a接收的第一命令,以实现调试装置20对第一子设备11的调试。第一子设备11可以将第二通信协议端口11b接收到的第二命令转发至第二子设备12,并且第二子设备12可以执行第二命令,从而使调试装置20能够对第二子设备12进行调试。需要说明的是,所述的调试可以包括但不限于安装应用、卸载应用、复制文件(包括从终端10复制到调试装置20、从调试装置20复制到终端10)、删除文件、交互操作(包括文字编辑、点击操作、放大缩小操作等)等。第一命令、第二命令可以是实现上述调试中的一者或多者的命令。
在一些实施例中,第一子设备11可以响应第一命令,发送数据给调试装置20(图中未示出)。同样地,第二子设备12可以响应第二命令,发送数据给第一子设备11,并由第一子设备11将该数据转发给调试装置20(图中未示出)。
需要说明的是,第一通信协议端口11a和第二通信协议端口11b可以是由操作系统、驱动程序、应用等提供的逻辑端口而非物理端口。更具体地说,所述逻辑端口可以是由操作系统、驱动程序、应用等提供的消息队列,每一消息队列对应一端口号;操作系统、驱动程序、应用等可以根据有线通信模块111或无线通信模块112收到的数据包中所包含的端口号,将这些数据包分别分派到端口号所对应的消息队列中。例如,第一通信协议端口11a可以是第一TCP端口,第二通信协议端口11b可以是第二TCP端口,并且第一TCP端口不同于第二TCP端口。在一优选的实施例中,第一通信协议端口11a可以是奇数的TCP端口,第二通信协议端口11b可以是偶数的TCP端口。又例如,第一通信协议端口11a和第二通信协议端口11b可以是不同的UDP端口。可以理解,第一通信协议端口11a和第二通信协议端口11b可以为有线网络连接中两个不同的通信协议端口或无线网络连接中两个不同的通信协议端口。同样可以理解,不同网络连接中的通信协议端口是相互独立的,即有线网络连接中的通信协议端口与无线网络连接中的通信协议端口是相互独立的。
由于第一子设备11是通过通信协议端口接收调试装置20发来的命令,第一子设备11不会断开与第二子设备12的总线连接,并且第一子设备11能够将第二通信协议端口11b接收到的第二命令转发到第二子设备12,因此调试装置20可以同时连接第一子设备11和第二子设备12,以分别对第一子设备11和第二子设备12进行调试。
图8是本发明另一些实施例的对第一子设备和第二子设备进行调试的命令的传递示意图。参考图8所示,第一子设备11可以具有第一通信协议端口11a、第二通信协议端口11b、第一调试服务端11c和第一守护进程11d。第二子设备12可以具有第三通信协议端口12a和第二守护进程12b。第一子设备11可以连接到调试装置20,以接收调试装置20发出的命令。所述连接可以是有线网络连接或无线网络连接。
第一守护进程11d可以通过第一通信协议端口11a接收调试装置20发来的第一命令,以使调试装置20能够对第一子设备11进行调试。在一实施例中,可以由第一守护进程11d执行第一命令,来实现调试装置20对第一子设备11的调试。
第一调试服务端11c可以与第二守护进程12b连接,以进行数据交互。第一调试服务端11c还可以通过第二通信协议端口11b接收调试装置20发来的第二命令,并将第二命令转发给第二守护进程12b,以使调试装置20能够对第二子设备12进行调试。在一实施例中,可以由第二守护进程12b执行第二命令,来实现调试装置20对第二子设备12的调试。
在一实施例中,第一调试服务端11c可以通过第三通信协议端口12a与第二守护进程12b连接。此时,第二守护进程12b可以通过第三通信协议端口12a接收第一调试服务端11c转发来的第二命令。另外,第二守护进程12b可以响应第二命令,发送数据给第一子设备11,并由第一子设备11将该数据转发给调试装置20(图中未示出)。
在一些实施例中,第一子设备11还可以具有第一调试客户端11e。第一调试客户端11e可以通过第四通信协议端口11f将命令发送给第一调试服务端11c。第四通信协议端口11f与第二通信协议端口11b不同。也就是说,第二通信协议端口11b不同于第一调试服务端11c与对应的第一调试客户端11e之间的通信协议端口。
在一些实施例中,调试装置20可以包括第二调试客户端21和第二调试服务端22。第二调试客户端21可以接收开发人员输入的调试命令,并将调试命令发送给第二调试服务端22。第二调试服务端22可以根据调试命令产生第一命令和/或第二命令。
在一更具体的实施例中,调试装置20还可以包括第五通信协议端口23。第二调试服务端22可以通过第五通信协议端口23接收第二调试客户端21发来的调试命令。换个角度说,第二调试客户端21可以通过第五通信协议端口23将调试命令发送给第二调试服务端22。
相应地,第一守护进程11d可以通过第一通信协议端口11a与第二调试服务端22连接,以接收第一命令。第一调试服务端11c可以通过第二通信协议端口11b与第二调试服务端22连接,以接收第二命令。
图9是本发明一些实施例的对运行Android操作系统的第一子设备和第二子设备进行调试的命令的传递示意图。参考图9所示,对运行Android操作系统的第一子设备和第二子设备进行调试是通过Android调试桥接器(Android Debug Bridge,ADB)来实现的。
ADB采用了客户端-服务器模型。当启动ADB客户端(ADB Client)时,ADB客户端首先检测ADB服务端(ADB Server)进程是否运行,如果没有运行,则启动ADB服务端。当ADB服务端启动时,其会绑定到本地的一通信协议端口,例如本地的TCP 5037端口,并且监听从ADB客户端发来的命令。接下来ADB服务端会与所有正在运行的模拟器或终端连接。ADB服务端通过扫描模拟器或终端的一范围内的端口,例如5555-5585之间的端口,来搜索模拟器或终端,一旦发现ADB守护进程(ADB Daemon,adbd),就通过此端口与模拟器或终端进行连接。其中,ADB客户端,是运行在开发和/或调试用的调试装置上,可以在命令行中运行ADB命令来调用ADB客户端,像ADB插件和DDMS这样的Android工具也可以调用ADB客户端。ADB服务端,是运行在开发和/或调试用的调试装置上的后台进程,用于管理ADB客户端与运行在模拟器或终端的ADB守护进程通信。ADB守护进程,运行于模拟器或终端的后台。
继续参考图9,调试装置20上运行有ADB客户端(ADB Client)21a和ADB服务端(ADBServer)22a。ADB服务端22a绑定至第五通信协议端口23,并且监听从ADB客户端21a发来的命令。第五通信协议端口23例如可以本地的TCP 5037端口。ADB服务端22a可以与第一子设备11连接。所述连接可以是有线网络连接或无线网络连接。ADB服务端22a可以将命令发送给第一子设备11的第一通信协议端口11a和第二通信协议端口11b。可以理解,第一通信协议端口11a和第二通信协议端口11b可以为第一子设备11上任意不同的TCP端口。优选地,第一通信协议端口11a可以为TCP 5555端口,第二通信协议端口11b可以为TCP 5554端口。
第一子设备11上可以运行有第一ADB服务端(ADB Server)11c1和第一ADB守护进程(adbd)11d1。第二子设备12上可以运行有第二ADB守护进程(adbd)12b1。
第一ADB守护进程11d1可以从第一通信协议端口11a接收命令,并执行其接收到的命令,从而实现调试装置20对第一子设备11的调试。
第一ADB服务端11c1可以从第二通信协议端口11b接收调试装置20发来的第二命令,并将第二命令转发给第二ADB守护进程12b1。第二ADB守护进程12b1可以执行其接收到的第二命令,从而实现调试装置20对第二子设备12的调试。在一些实施例中,第二子设备12还可以具有一通信协议端口(图中未示出),第一ADB服务端11c1可以将命令转发至该通信协议端口,第二ADB守护进程12b1可以从该通信协议端口接收转发来的命令。
图10是本发明一些实施例的终端调试方法30的基本流程图。终端调试方法30可以在调试装置20中执行,以对终端10进行调试。参考图10所示,终端调试方法30可以包括:
步骤31:接收输入的第一子设备11的IP地址及端口号;所述端口号可以与第一通信协议端口11a或第二通信协议端口11b关联
步骤32:若端口号与第一通信协议端口11a关联,则建立与第一子设备11的调试连接;
步骤33:若端口号与第二通信协议端口11b关联,则建立与第二子设备12的调试连接。
可以理解,图10所示出的各步骤之间的先后顺序并非旨在限制本发明,终端调试方法30中的各步骤的顺序是可以改变的,例如步骤33可以先于步骤32执行,又例如步骤32和步骤33可以同时执行。
在需要对如图9所示的终端10进行调试时,开发人员可以启动调试装置20上的ADB客户端21a,并在ADB客户端21a中输入第一子设备11的IP地址及端口号。与此相对应,ADB客户端21a接收开发人员输入的第一子设备11的IP地址及端口号(步骤31)。其中,开发人员输入的端口号可以包括与第一通信协议端口11a和/或第二通信协议端口11b相关联的端口号。在ADB客户端21a接收到开发人员输入的第一子设备11的IP地址及端口号后,通过第五通信协议端口23将开发人员输入的第一子设备11的IP地址及端口号传递给ADB服务端22a。ADB服务端22a根据开发人员输入的第一子设备11的IP地址及端口号确定建立与第一子设备11和/或第二子设备12的调试连接(步骤32和步骤33)。举例而言,开发人员在ADB客户端21a中输入的是第一子设备11的IP和端口号5555,则建立与第一子设备11的调试连接;开发人员在ADB客户端21a中输入的是第一子设备11的IP和端口号5554,则建立与第二子设备12的调试连接。
在一更具体的实施例中,调试装置20可以通过有线网络或无线网络连接到第一子设备11。当需要对第一子设备11进行调试时,在调试装置20启动ADB客户端21a,ADB客户端21a与ADB服务端22a进行绑定,ADB服务端22a通过adb connect与第一子设备11中的第一通信协议端口11a建立网络连接,从而建立调试装置20与第一子设备11的调试连接,以实现通过调试装置20的ADB客户端21a对第一子设备11进行调试。在一些实施例中,第一通信协议端口11a可以是第一子设备11中默认的5555端口。可以理解,第一通信协议端口11a还可以是其他通信协议端口,本发明对此并不加以限制。
在一更具的实施例中,调试装置20可以通过有线网络或无线网络连接到第一子设备11。第一子设备11和第二子设备12通过总线连接,且这二者间可以正常通信。当需要对第二子设备12进行调试时,在调试装置20启动ADB客户端21a,ADB客户端21a与ADB服务端22a进行绑定,ADB服务端22a通过adb connect与第一子设备11中的第二通信协议端口11b建立网络连接。另外,在第一子设备11中启动第一ADB服务端11c1时,第一ADB服务端11c1检测到第一子设备11与第二子设备12通过总线连接,第一ADB服务端11c1通过adb connect与第二子设备12中的第二ADB守护进程12b1建立连接。由于第一ADB服务端11c1可以被绑定至第二通信协议端口11b,这样调试装置20上的ADB客户端21a就可以通过adb connect与第一ADB服务端11c1建立网络连接,从而实现通过调试装置20上的ADB客户端21a对第二子设备12进行调试。在一些实施例中,第二通信协议端口11b可以是第一子设备11中的5554端口,并且第一ADB服务端11c1被绑定至该端口。可以理解,第二通信协议端口11b还可以是其他通信协议端口,本发明对此并不加以限制。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质、或任何上述介质的组合。计算机可读存储介质可以用于存储计算机可读程序编码,其可以包括内存和/或存储器。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”等来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±明所述的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (18)
1.一种终端,其特征在于,包括第一子设备和第二子设备,所述第一子设备和所述第二子设备分别独立运行一操作系统,所述第二子设备通过总线与所述第一子设备连接,所述第一子设备适于连接到一调试装置,其中,
所述第一子设备具有第一通信协议端口、第二通信协议端口、第一调试服务端和第一守护进程,所述第二子设备具有第二守护进程;
所述第一守护进程适于通过所述第一通信协议端口接收所述调试装置发来的第一命令,以使所述调试装置能够对所述第一子设备进行调试;
所述第一调试服务端适于通过所述第二通信协议端口接收所述调试装置发来的第二命令,且与所述第二守护进程连接,以将所述第二命令转发给所述第二守护进程,使所述调试装置能够对所述第二子设备进行调试。
2.根据权利要求1所述的终端,其特征在于,所述调试装置包括第二调试客户端和第二调试服务端,所述第二调试客户端适于接收开发人员输入的调试命令,并将所述调试命令发送给所述第二调试服务端,所述第二调试服务端适于根据所述调试命令产生所述第一命令和/或所述第二命令。
3.根据权利要求2所述的终端,其特征在于,所述第一守护进程适于通过所述第一通信协议端口与所述第二调试服务端连接。
4.根据权利要求2所述的终端,其特征在于,所述第一调试服务端适于通过所述第二通信协议端口与所述第二调试服务端连接。
5.根据权利要求2所述的终端,其特征在于,所述调试装置还包括第五通信协议端口,所述第二调试服务端通过所述第五通信协议端口接收所述调试命令。
6.根据权利要求1所述的终端,其特征在于,所述第一通信协议端口为第一TCP端口,所述第二通信协议端口为第二TCP端口,所述第一TCP端口不同于所述第二TCP端口。
7.根据权利要求1所述的终端,其特征在于,所述第一通信协议端口和所述第二通信协议端口为有线网络连接中两个不同的通信协议端口或无线网络连接中两个不同的通信协议端口。
8.根据权利要求1所述的终端,其特征在于,所述第二通信协议端口不同于所述第一调试服务端与对应的第一调试客户端之间的第四通信协议端口,所述第一调试客户端通过所述第四通信协议端口将命令发送给所述第一调试服务端。
9.根据权利要求1所述的终端,其特征在于,所述第一守护进程执行所述第一命令,和/或所述第二守护进程执行所述第二命令。
10.一种调试系统,包括:
调试装置,适于对一终端进行调制,包括第二调试客户端和第二调试服务端,所述第二调试客户端适于接收开发人员输入的调试命令,并将所述调试命令发送给所述第二调试服务端,所述第二调试服务端适于根据所述调试命令产生第一命令和/或第二命令;
所述终端,包括第一子设备和第二子设备,所述第一子设备和所述第二子设备分别独立运行一操作系统,所述第二子设备通过总线与所述第一子设备连接,所述第一子设备适于连接到一调试装置,其中,所述第一子设备具有第一通信协议端口、第二通信协议端口、第一调试服务端和第一守护进程,所述第二子设备具有第二守护进程;所述第一守护进程适于通过所述第一通信协议端口接收所述调试装置发来的所述第一命令,以使所述调试装置能够对所述第一子设备进行调试;所述第一调试服务端适于通过所述第二通信协议端口接收所述调试装置发来的所述第二命令,且与所述第二守护进程连接,以将所述第二命令转发给所述第二守护进程,使所述调试装置能够对所述第二子设备进行调试。
11.根据权利要求10所述的调试系统,其特征在于,所述第一守护进程适于通过所述第一通信协议端口与所述第二调试服务端连接。
12.根据权利要求10所述的调试系统,其特征在于,所述第一调试服务端适于通过所述第二通信协议端口与所述第二调试服务端连接。
13.根据权利要求10所述的调试系统,其特征在于,所述调试装置还包括第五通信协议端口,所述第二调试服务端通过所述第五通信协议端口接收所述调试命令。
14.根据权利要求10所述的调试系统,其特征在于,所述第一通信协议端口为第一TCP端口,所述第二通信协议端口为第二TCP端口,所述第一TCP端口不同于所述第二TCP端口。
15.根据权利要求10所述的调试系统,其特征在于,所述第一通信协议端口和所述第二通信协议端口为有线网络连接中两个不同的通信协议端口或无线网络连接中两个不同的通信协议端口。
16.根据权利要求10所述的调试系统,其特征在于,所述第二通信协议端口不同于所述第一调试服务端与对应的第一调试客户端之间的第四通信协议端口,所述第一调试客户端通过所述第四通信协议端口将命令发送给所述第一调试服务端。
17.根据权利要求10所述的调试系统,其特征在于,所述第一守护进程执行所述第一命令,和/或所述第二守护进程执行所述第二命令。
18.一种终端调试方法,适于在调试装置中执行,以对权利要求1-9任一项所述的终端进行调试,所述方法包括:
接收输入的所述第一子设备的IP地址及端口号,所述端口号与所述第一通信协议端口或所述第二通信协议端口关联;
若所述端口号与所述第一通信协议端口关联,则建立与所述第一子设备的调试连接;以及
若所述端口号与所述第二通信协议端口关联,则建立与所述第二子设备的调试连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712946.9A CN108845946B (zh) | 2018-06-29 | 2018-06-29 | 一种终端、调试系统以及终端调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712946.9A CN108845946B (zh) | 2018-06-29 | 2018-06-29 | 一种终端、调试系统以及终端调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845946A CN108845946A (zh) | 2018-11-20 |
CN108845946B true CN108845946B (zh) | 2022-02-08 |
Family
ID=64200321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810712946.9A Active CN108845946B (zh) | 2018-06-29 | 2018-06-29 | 一种终端、调试系统以及终端调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108845946B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781528B (zh) * | 2019-09-26 | 2022-03-22 | 深圳金澜汉源科技有限公司 | 协同安全操作系统和电子设备 |
CN112162919B (zh) * | 2020-09-11 | 2024-03-12 | 上海擎感智能科技有限公司 | 车载设备的调试方法、调试系统及计算机可读存储介质 |
CN114691483A (zh) * | 2020-12-30 | 2022-07-01 | 华为终端有限公司 | 一种软件调试方法、电子设备及调试系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502913A (zh) * | 2016-11-29 | 2017-03-15 | 北京元心科技有限公司 | 调试双系统移动终端的方法及装置 |
CN107026764A (zh) * | 2016-02-02 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种远程调试方法、设备、服务器及系统 |
CN107995019A (zh) * | 2016-10-27 | 2018-05-04 | 南京南瑞继保电气有限公司 | 一种基于虚拟链接的远程调试维护网络设备方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039545B2 (en) * | 2004-04-19 | 2006-05-02 | Agilent Technologies, Inc. | Apparatus, system and/or method for converting a serial test to a parallel test |
-
2018
- 2018-06-29 CN CN201810712946.9A patent/CN108845946B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107026764A (zh) * | 2016-02-02 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种远程调试方法、设备、服务器及系统 |
CN107995019A (zh) * | 2016-10-27 | 2018-05-04 | 南京南瑞继保电气有限公司 | 一种基于虚拟链接的远程调试维护网络设备方法及系统 |
CN106502913A (zh) * | 2016-11-29 | 2017-03-15 | 北京元心科技有限公司 | 调试双系统移动终端的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于移动终端的串口调试系统的设计与实现;柴亚南;《电子测试》;20160731;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108845946A (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463499B (zh) | Adb远程连接方法、装置、设备及存储介质 | |
EP3103018B1 (en) | Method for debugging computer program | |
CN108845946B (zh) | 一种终端、调试系统以及终端调试方法 | |
CA2711449C (en) | Method and apparatus for displaying video data from multiple source computers in a multi-monitor computer system | |
US9542302B2 (en) | System and method for remote debugging of an application in an image forming apparatus over a network | |
US8762544B2 (en) | Selectively communicating data of a peripheral device to plural sending computers | |
CN110275787B (zh) | 在线平台数据传输方法、装置、介质及电子设备 | |
CN111026439B (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN107181634A (zh) | 一种服务器统一管理方法和系统 | |
EP4119207A1 (en) | Vibration control method and apparatus, and electronic device and computer-readable storage medium | |
EP4209894A1 (en) | Cloud code development system, method, and apparatus, device, and storage medium | |
CN113127361B (zh) | 应用程序的开发方法、装置、电子设备和存储介质 | |
CN112131092A (zh) | 页面调试方法和装置 | |
WO2023221406A1 (zh) | 深度学习编译器的运行方法、装置及电子设备 | |
CN106648670A (zh) | 云教室同屏共控系统和方法 | |
CN108733602B (zh) | 数据处理 | |
CN114217900A (zh) | 一种远程控制方法、装置、系统、计算设备及存储介质 | |
CN114064091A (zh) | Ota升级控制方法、装置、电子设备及自动驾驶车辆 | |
WO2024148803A1 (zh) | 一种离港换飞机保护控制系统、方法、设备和存储介质 | |
CN113434384B (zh) | 一种压力测试方法和装置 | |
WO2023179395A1 (zh) | 一种数据传输系统、方法、服务系统、设备及存储介质 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN115373618B (zh) | 一种多屏显示方法、装置、车机及存储介质 | |
US20230171179A1 (en) | Method for testing pressure, electronic device and storage medium | |
CN111193717A (zh) | Ftp黑白名单控制方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 200433 Shanghai city Yangpu District Songhu Road No. 388 building 7, KIC 605 Applicant after: SHANGHAI SHANGMI SCIENCE AND TECHNOLOGY GROUP CO., LTD. Address before: 200433 Shanghai city Yangpu District Songhu Road No. 388 building 7, KIC 605 Applicant before: Shanghai traders Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |