移动应用的调试方法及装置与流程

文档序号:16075404发布日期:2018-11-27 21:01阅读:303来源:国知局

本发明涉及互联网领域,具体而言,涉及一种移动应用的调试方法及装置。



背景技术:

相关技术在移动终端游戏的开发过程中,由于移动终端环境的局限性,在移动终端上难以像在固定终端,例如:个人计算机(PC),上运行应用客户端(例如:游戏应用、支付应用、交友应用)一样,通过开启一个调试窗口查看应用客户端运行过程中的调试日志和执行调试指令,因此,在移动终端上调试应用客户端始终是游戏开发过程中亟待解决的难题。以游戏应用为例,目前,常见的手游调试方式包括以下几种:

方式一、在游戏服务器上搭建一个超文本传输协议(HTTP)服务器模块,再由用户终端提供一个web调试界面。通过在用户终端开启浏览器输入网址打开网页调试界面,并在网页上向游戏服务器发送HTTP请求来调试应用客户端相应玩家的信息,即,当前登录设备上与应用客户端的玩家账号对应的存储于服务器上的各种数据,例如:游戏角色的等级、经验、装备、道具物品等游戏数据。当玩家账号对应的服务器游戏数据发生变化时,游戏逻辑会将相关变化同步到应用客户端,从而间接达到调试应用客户端内玩家游戏对象的目的。

方式二、在调试版应用客户端内增加一层用户界面(UI)调试界面,即,在应用客户端的UI界面上再挂接一层UI界面,该UI界面内包含的均是与调试应用客户端相关的一些UI控件,其可以包括但不限于:输入调试指令编辑框、调试日志显示框以及一些指令执行快捷按钮。该UI调试界面通常可以设计成限缩在应用客户端一旁的侧边栏,在需要使用时可以弹出来,而不需要使用时可以缩回去,以此减少对游戏本身UI界面的干扰。在UI调试界面创建完成后,便可以直接在UI调试界面上执行调试指令,其相应的调试结果也会直接在应用客户端上执行,调试信息也会在UI调试界面上查看。

方式三、直接复用应用客户端的聊天模块,在聊天模块内输入调试指令信息便可直接在应用客户端内执行,并在聊天频道内显示调试信息。

上述几种调试应用客户端的方式虽然都能够达到调试应用客户端的目的,但是却存在如下缺陷:

(1)对于方式一而言,使用服务器搭建HTTP服务的方式,其实质调试的内容是服务端的玩家数据,如果需要调试客户端信息则还需要额外借助游戏服与应用客户端之间的通信,易增加调试流程的操作复杂度,另外,还会造成调试代码与发布代码容易耦合而污染发布代码。例如:如果需要获取应用客户端上的调试日志,则需要向游戏服务器发送HTTP请求,再由游戏服务器向应用客户端发送请求消息以获取应用客户端的调试日志。而在正常情况下,游戏正式发布时游戏服务器和应用客户端之间的通信相关的通信逻辑并没有这样的通信需求,因此,采用此种方式去调试应用客户端,就需要额外在游戏服务器和应用客户端之间的通信协议上加上获取应用客户端调试日志的协议,其实质在于:将调试需求所需的逻辑耦合在游戏服务器与应用客户端之间的通信逻辑代码中,不利于正式外放的发布代码与调试相关的代码分离,容易污染正式发布游戏代码。

(2)对于方式二和方式三而言,在应用客户端额外增加一个UI调试界面以及借助聊天模块进行调试都存在移动终端上指令编辑不方便的问题,而且增加UI调试界面容易干扰游戏的正常操作,而借助聊天模块则容易干扰游戏的正常聊天功能。

目前,移动终端游戏的开发环境绝大部分都支持跨平台开发,即移动应用客户端既存在PC上运行的游戏版本,也存在安卓、IOS平台运行的版本。而在PC上运行应用客户端时通常会提供一个与应用客户端互相独立运行的调试窗口,以便于在调试窗口上执行调试信息又不影响应用客户端的正常使用操作。但是,在移动终端上运行的应用客户端版本并不支持启动调试窗口进行调试。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种移动应用的调试方法及装置,以至少解决相关技术中由于受到移动终端使用环境的限制,在对移动终端上运行的应用客户端进行调试时的数据处理的能力有限且处理效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种移动应用的调试方法,包括:在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接;通过无线网络连接在功能组件与应用客户端之间进行数据交互,其中,功能组件用于执行用户对应用客户端的调试。

可选地,在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接包括:根据功能组件的标识信息和/或用户终端的标识信息向功能组件发送当前连接的全部应用客户端信息,其中,当前连接的全部应用客户端信息包括:每个应用客户端的标识信息、每个应用客户端所在的移动终端的标识信息以及每个应用客户端是否已经处于绑定状态;或者,每个应用客户端的标识信息和每个应用客户端是否已经处于绑定状态;接收来自于功能组件的绑定请求消息,其中,绑定请求消息中携带有移动终端的标识信息和/或应用客户端的标识信息;如果根据绑定请求消息确定应用客户端同时处于连接状态和未绑定状态,则在功能组件与应用客户端之间建立关联绑定关系;分别向功能组件和应用客户端发送绑定成功消息。

可选地,在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接之后,还包括:接收来自于功能组件的解除绑定请求或检测到功能组件断开无线网络连接;查找与功能组件绑定的应用客户端;解除在功能组件与应用客户端之间存在的关联绑定关系,并向当前连接的全部用户终端广播应用客户端已经被解除绑定的消息。

可选地,在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接之后,还包括:检测到应用客户端断开无线网络连接;查找与应用客户端存在绑定关系的功能组件;解除在功能组件与应用客户端之间存在的关联绑定关系,并分别向功能组件和应用客户端通知应用客户端已经被解除绑定的消息以及向当前连接的除用户终端之外的其余用户终端广播应用客户端已经被解除绑定的消息。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的调试指令,其中,调试指令用于控制应用客户端按照调试指令中包含的调试需求执行对应的调试操作;查找与功能组件绑定的应用客户端;将调试指令转发至应用客户端。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于应用客户端的调试日志,其中,调试日志是通过应用客户端在对调试日志的输出接口进行重定向后发出的;查找与应用客户端绑定的功能组件;将调试日志转发至功能组件。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的文件上传请求,其中,文件上传请求中携带有功能组件通过对用户终端本地待上传文件的文件名和文件内容进行序列化处理后得到的二进制字节流;查找与功能组件绑定的应用客户端;将文件上传请求转发至应用客户端,其中,文件上传请求中携带的二进制字节流用于使应用客户端重建用户终端本地待上传文件。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的获取文件列表请求;查找与功能组件绑定的应用客户端,并向应用客户端转发获取文件列表请求;将从应用客户端获取到的目录文件列表转发至功能组件,并接收来自于功能组件的文件下载请求,其中,文件下载请求中携带有从目录文件列表中选取的待下载文件;将文件下载请求转发至应用客户端,并接收应用客户端根据文件下载请求返回的文件下载响应,其中,文件下载响应中携带有应用客户端通过对待下载文件的文件名和文件内容进行序列化处理后得到的二进制字节流;将文件下载响应转发至功能组件,其中,文件下载响应中携带的二进制字节流用于使功能组件重建待下载文件。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的截屏请求,其中,截屏请求用于控制应用客户端调用屏幕截图接口根据屏幕信息生成截屏图像;查找与功能组件绑定的应用客户端,并将截屏请求转发至应用客户端;接收来自于应用客户端截屏响应,并将截屏响应返回至功能组件,其中,截屏响应中携带有应用客户端对存储截屏图像的文件的文件名和文件内容进行序列化处理后得到的二进制字节流,二进制字节流用于使功能组件重建存储截屏图像的文件。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的获取监控参数列表请求,其中,获取监控参数列表请求中所请求的监控参数是与运行应用客户端关联的全部性能参数中选取的;查找与功能组件绑定的应用客户端,并向应用客户端转发获取监控参数列表请求;将从应用客户端获取到的监控参数列表转发至功能组件,其中,监控参数列表中包含有与获取监控参数列表请求中所请求的监控参数对应的最新采集的数值。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的关闭监控请求,其中,关闭监控请求用于控制应用客户端取消对获取监控参数列表请求中所请求的监控参数进行监控;查找与功能组件绑定的应用客户端,并向应用客户端转发关闭监控请求。

可选地,通过功能组件与应用客户端进行数据交互包括:接收来自于功能组件的取消部分监控参数请求,其中,取消部分监控参数请求用于控制应用客户端从监控参数列表中移除与取消部分监控参数请求对应的监控参数;查找与功能组件绑定的应用客户端,并向应用客户端转发取消部分监控参数请求。

根据本发明实施例的另一方面,还提供了一种移动应用的调试装置,包括:建立模块,用于在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接;交互模块,用于通过无线网络连接在功能组件与应用客户端之间进行数据交互,其中,功能组件用于执行用户对应用客户端的调试。

可选地,建立模块包括:第一发送单元,用于根据功能组件的标识信息和/或用户终端的标识信息向功能组件发送当前连接的全部应用客户端信息,其中,当前连接的全部应用客户端信息包括:每个应用客户端的标识信息、每个应用客户端所在的移动终端的标识信息以及每个应用客户端是否已经处于绑定状态;或者,每个应用客户端的标识信息和每个应用客户端是否已经处于绑定状态;第一接收单元,用于接收来自于功能组件的绑定请求消息,其中,绑定请求消息中携带有移动终端的标识信息和/或应用客户端的标识信息;建立单元,用于如果根据绑定请求消息确定应用客户端同时处于连接状态和未绑定状态,则在功能组件与应用客户端之间建立关联绑定关系;第二发送单元,用于分别向功能组件和应用客户端发送绑定成功消息。

可选地,上述装置还包括:处理模块,用于接收来自于功能组件的解除绑定请求或检测到功能组件断开无线网络连接;查找模块,用于查找与功能组件绑定的应用客户端;解除模块,用于解除在功能组件与应用客户端之间存在的关联绑定关系,并向当前连接的全部用户终端广播应用客户端已经被解除绑定的消息。

可选地,上述装置还包括:处理模块,用于检测到应用客户端断开无线网络连接;查找模块,用于查找与应用客户端存在绑定关系的功能组件;解除模块,用于解除在功能组件与应用客户端之间存在的关联绑定关系,并分别向功能组件和应用客户端通知应用客户端已经被解除绑定的消息以及向当前连接的除用户终端之外的其余用户终端广播应用客户端已经被解除绑定的消息。

可选地,交互模块包括:第二接收单元,用于接收来自于功能组件的调试指令,其中,调试指令用于控制应用客户端按照调试指令中包含的调试需求执行对应的调试操作;第一查找单元,用于查找与功能组件绑定的应用客户端;第三发送单元,用于将调试指令转发至应用客户端。

可选地,交互模块包括:第三接收单元,用于接收来自于应用客户端的调试日志,其中,调试日志是通过应用客户端在对调试日志的输出接口进行重定向后发出的;第二查找单元,用于查找与应用客户端绑定的功能组件;第四发送单元,用于将调试日志转发至功能组件。

可选地,交互模块包括:第四接收单元,用于接收来自于功能组件的文件上传请求,其中,文件上传请求中携带有功能组件通过对用户终端本地待上传文件的文件名和文件内容进行序列化处理后得到的二进制字节流;第三查找单元,用于查找与功能组件绑定的应用客户端;第五发送单元,用于将文件上传请求转发至应用客户端,其中,文件上传请求中携带的二进制字节流用于使应用客户端重建用户终端本地待上传文件。

可选地,交互模块包括:第五接收单元,用于接收来自于功能组件的获取文件列表请求;第四查找单元,用于查找与功能组件绑定的应用客户端,并向应用客户端转发获取文件列表请求;第一处理单元,用于将从应用客户端获取到的目录文件列表转发至功能组件,并接收来自于功能组件的文件下载请求,其中,文件下载请求中携带有从目录文件列表中选取的待下载文件;第二处理单元,用于将文件下载请求转发至应用客户端,并接收应用客户端根据文件下载请求返回的文件下载响应,其中,文件下载响应中携带有应用客户端通过对待下载文件的文件名和文件内容进行序列化处理后得到的二进制字节流;第六发送单元,用于将文件下载响应转发至功能组件,其中,文件下载响应中携带的二进制字节流用于使功能组件重建待下载文件。

可选地,交互模块包括:第六接收单元,用于接收来自于功能组件的截屏请求,其中,截屏请求用于控制应用客户端调用屏幕截图接口根据屏幕信息生成截屏图像;第三处理单元,用于查找与功能组件绑定的应用客户端,并将截屏请求转发至应用客户端;第四处理单元,用于接收来自于应用客户端截屏响应,并将截屏响应返回至功能组件,其中,截屏响应中携带有应用客户端对存储截屏图像的文件的文件名和文件内容进行序列化处理后得到的二进制字节流,二进制字节流用于使功能组件重建存储截屏图像的文件。

可选地,交互模块包括:第七接收单元,用于接收来自于功能组件的获取监控参数列表请求,其中,获取监控参数列表请求中所请求的监控参数是与运行应用客户端关联的全部性能参数中选取的;第五处理单元,用于查找与功能组件绑定的应用客户端,并向应用客户端转发获取监控参数列表请求;第七发送单元,用于将从应用客户端获取到的监控参数列表转发至功能组件,其中,监控参数列表中包含有与获取监控参数列表请求中所请求的监控参数对应的最新采集的数值。

可选地,交互模块包括:第八接收单元,用于接收来自于功能组件的关闭监控请求,其中,关闭监控请求用于控制应用客户端取消对获取监控参数列表请求中所请求的监控参数进行监控;第六处理单元,用于查找与功能组件绑定的应用客户端,并向应用客户端转发关闭监控请求。

可选地,交互模块包括:第九接收单元,用于接收来自于功能组件的取消部分监控参数请求,其中,取消部分监控参数请求用于控制应用客户端从监控参数列表中移除与取消部分监控参数请求对应的监控参数;第七处理单元,用于查找与功能组件绑定的应用客户端,并向应用客户端转发取消部分监控参数请求。

在本发明实施例中,采用在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接的方式,通过无线网络连接在功能组件与应用客户端之间进行数据交互,其中,功能组件用于执行用户对应用客户端的调试,克服了在移动终端上对应用客户端的数据处理能力有限且处理效率较低的缺陷,利用在远程用户终端上启动一个功能组件与应用客户端进行通信,支持在用户终端环境下与移动终端上的应用客户端进行数据交互,充分利用了用户终端环境下对移动终端进行数据处理的便利优势,扩展了对移动终端上运行的应用客户端的数据处理能力,提高了对应用客户端进行数据处理的效率,进而解决了相关技术中由于受到移动终端使用环境的限制,在对移动终端上运行的应用客户端进行调试时的数据处理的能力有限且处理效率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的移动应用的调试方法的流程图;

图2是根据本发明优选实施例的通过用户终端的功能组件与移动终端上的应用客户端进行数据交互过程的流程图;

图3是根据本发明优选实施例的多个GMMonitor与多个GameClient同时与GMServer建立连接的拓扑结构示意图;

图4是根据本发明优选实施例的在用户终端的功能组件与移动终端的应用客户端之间进行关联绑定操作过程的流程图;

图5是根据本发明优选实施例的由用户终端的功能组件发起解除关联绑定操作过程的流程图;

图6是根据本发明优选实施例的由移动终端的应用客户端发起解除关联绑定操作过程的流程图;

图7是根据本发明优选实施例的用户终端的功能组件向移动终端的应用客户端发送调试指令执行调试过程的流程图;

图8是根据本发明优选实施例的调试过程中在用户终端的功能组件实时显示移动终端上的应用客户端产生的调试日志过程的流程图;

图9是根据本发明优选实施例的在调试过程中用户终端的功能组件将本地文件上传至移动终端的应用客户端过程的流程图;

图10是根据本发明优选实施例的在调试过程中用户终端的功能组件将移动终端的应用客户端上的文件下载到用户终端本地过程的流程图;

图11是根据本发明优选实施例的在调试过程中用户终端的功能组件将移动终端的应用客户端在当前运行过程中获取的屏幕截图下载到用户终端本地过程的流程图;

图12是根据本发明优选实施例的在调试过程中用户终端的功能组件监控移动终端的应用客户端的运行性能过程的流程图;

图13是根据本发明优选实施例的在调试过程中用户终端的功能组件取消监控移动终端的应用客户端的运行性能过程的流程图;

图14是根据本发明实施例的移动应用的调试装置的结构框图;

图15是根据本发明优选实施例的移动应用的调试装置的结构框图;

图16是根据本发明优选实施例的通过网络服务端实现数据处理功能的结构示意图;

图17是根据本发明优选实施例的用户终端的功能组件的结构示意图;

图18是根据本发明优选实施例的与用户终端的功能组件对应的应用客户端的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明实施例搭建的网络服务端主要充当交换机的角色,负责管理各个功能组件与应用客户端之间的网络连接以及数据转发。各个功能组件之间的信息交互均以网络连接与网络发包的方式来完成,网络通信协议可以采用传输控制协议(TCP)、用户数据报协议(UDP)和超文本传输协议(HTTP)等方式来实现,其中,本发明实施例中的网络通信协议为TCP协议,TCP协议是一种面向连接的,可靠的基于字节流的通信协议,采用TCP协议进行通信连接可以确保所有连接建立后的长连接特性,便于网络服务端在功能组件与应用客户端之间管理一个固定的通信连接,从而提高双方通信过程的效率。

另外,在对移动终端上应用客户端进行数据处理时,除了需要在一个IP固定的网络环境下启动一个长期运行的网络服务器之外,还需要提供一个能够对应用客户端进行数据处理操作的用户终端,其终端环境可以为台式电脑、笔记本电脑、智能手机、IPAD等,而移动终端可以为手机、平板电脑等便携式移动终端,移动终端的操作系统平台可以支持IOS或安卓系统。

在优选实施过程中,可以在后台搭建一个长期运行的服务器进程GMServer作为网络服务端,本实例的服务器运行环境是在Linux开发机上并且IP地址固定。

上述功能组件可以是一个在用户终端上运行的应用程序,程序架构包括:用于通信的网络功能组件实现代码以及用于调试操作的图形用户界面(GUI)。在本发明实施例中,需要在用户终端上启动一个应用程序进程GMMonitor作为功能组件,并允许多个GMMonitor同时运行,协同工作,来处理不同应用客户端上的数据。即,用户终端上的功能组件与移动终端属于一对一的关系,并且可以支持多个用户终端上的功能组件与多个移动终端上的应用客户端同时工作,各个功能组件与应用客户端之间呈现一一对应关系。换言之,支持多个操作人员在各自的用户终端上启动功能组件来处理不同移动终端上的应用客户端的数据,各个功能组件可以同时独立工作并且互不干扰。

以游戏应用为例,在移动终端上需要启动debug版游戏进程GameClient作为应用客户端接受处理,GameClient包含一个游戏管理员(GM)功能组件负责数据处理逻辑的开发,GM功能组件包含有应用客户端GM指令功能组件,以及与GMServer进行通信的TCP网络客户端功能组件。

GM功能组件是在应用客户端代码内负责执行一些超出游戏正常使用功能权限外的一些功能逻辑,例如:执行GM指令修改和获取各种应用客户端的游戏数据,调用应用客户端的引擎接口来获取应用客户端进程相关性能参数数据、调试日志,这些功能是在正式对外发布的应用客户端的游戏玩家使用功能内不存在的,因此,需要独立维护在一个GM组件中,而只有在debug版的应用客户端中才会包含该GM组件,用于各种调试逻辑开发。

游戏软件代码内需要额外实现网络通信功能,用于建立与功能组件之间的网络连接,以及在数据处理过程中与功能组件进行信息交互所需要的功能组件接口的实现,这些注入代码均属于调试代码,需要在上述GM组件中进行开发维护。

相比于相关技术中通常采取的将移动终端通过通用串行总线(USB)数据线连接至用户终端,继而使用用户终端的移动终端助手来操作移动终端,为了降低操作复杂度以及在操作过程为操作人员提供优质的调试体验,本发明实施例提供一种基于无线网络通信对移动终端的应用客户端进行数据处理的解决方案。通过在用户终端的功能组件与移动终端的应用客户端之间建立一个稳定的通信连接,以实现功能组件与移动终端之间的网络通信,从而实现双方的调试信息交互。

基于上述内容介绍,根据本发明实施例,提供了一种移动应用的调试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的移动应用的调试方法的流程图,该方法应用于网络服务端,如图1所示,该方法包括如下步骤:

步骤S10,在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接;

步骤S12,通过无线网络连接在功能组件与应用客户端之间进行数据交互,其中,功能组件用于执行用户对应用客户端的调试。

通过上述步骤,采用在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接的方式,通过在用于执行用户对应用客户端的调试的功能组件与应用客户端之间进行数据交互,克服了在移动终端上对应用客户端的数据处理能力有限且处理效率较低的缺陷,利用在远程用户终端上启动一个功能组件与应用客户端进行通信,支持在用户终端环境下与移动终端上的应用客户端进行数据交互,充分利用了用户终端环境下对移动终端进行数据处理的便利优势,扩展了对移动终端上运行的应用客户端的数据处理能力,提高了对应用客户端进行数据处理的效率,进而解决了相关技术中由于受到移动终端使用环境的限制,在对移动终端上运行的应用客户端进行调试时的数据处理的能力有限且处理效率较低的技术问题。

可选地,在步骤S10中,在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接可以包括以下执行步骤:

步骤S101,根据功能组件的标识信息和/或用户终端的标识信息向功能组件发送当前连接的全部应用客户端信息,其中,当前连接的全部应用客户端信息包括:每个应用客户端的标识信息、每个应用客户端所在的移动终端的标识信息以及每个应用客户端是否已经处于绑定状态;或者,每个应用客户端的标识信息和每个应用客户端是否已经处于绑定状态;

步骤S102,接收来自于功能组件的绑定请求消息,其中,绑定请求消息中携带有移动终端的标识信息和/或应用客户端的标识信息;

步骤S103,如果根据绑定请求消息确定应用客户端同时处于连接状态和未绑定状态,则在功能组件与应用客户端之间建立关联绑定关系;

步骤S104,分别向功能组件和应用客户端发送绑定成功消息。

在优选实施例中,通过搭建后台服务器统一管理用户终端的功能组件与移动终端的应用客户端之间建立的网络连接,以便于功能组件与应用客户端之间的连接管理以及功能组件与应用客户端之间的通信管理。全部功能组件和应用客户端均作为网络客户端,所有功能组件和应用客户端都通过无线网络连接网络服务端,由网络服务端进行连接管理,其具体实现过程如下:

在固定IP的网络环境下搭建一个服务器。功能组件和应用客户端内的网络功能组件均为网络客户端功能组件,双方都通过事先配置完毕的互联网协议(IP)连接到网络服务端功能组件。当应用客户端连接至网络服务端后,将应用客户端的标识信息和/或移动终端的标识信息发送至网络服务端,以便网络服务端对当前已经连接的全部应用客户端进行集中管理。当功能组件连接至网络服务端后,将功能组件的标识信息和/或用户终端的标识信息发送至网络服务端,以便网络服务端对当前已经连接的全部功能组件进行集中管理。最终,在用户终端上的功能组件和移动终端上的应用客户端启动运行后,通过应用客户端的标识信息和/或移动终端的标识信息,用户终端上的功能组件可以选择与移动终端上的应用客户端进行一对一关联绑定操作,并在双方之间建立网络通信。

上述移动终端的标识信息可以是用户自定义的,主要用于对移动终端进行区分,例如:在IOS设备中,可以采用用户自定义的设备名称作为标识信息;在安卓设备中,可以采用设备的唯一设备识别符(UDID)作为标识信息。

需要说明的是,数据处理需求可以根据操作人员的具体操作意愿来选择。数据处理人员期望对特定移动终端上的应用客户端进行数据处理,便可以通过功能组件内显示的当前已经连接至网络服务端的移动终端上的应用客户端中,根据应用客户端的标识信息和/或移动终端的标识信息选取待绑定的移动终端,并对该移动终端上的应用客户端进行数据处理。即,选择待绑定的应用客户端可以由操作人员主动通过功能组件来进行选取。

网络服务端建立所要绑定的功能组件与应用客户端之间的通信关系,并完成对双方通信网络数据包的转发。功能组件与应用客户端之间的所有数据处理行为都需要通过网络通信来实现。

为了便于功能组件启动后,可以自主选择感兴趣的应用客户端进行绑定与数据处理,为了满足功能组件可以在任何能够连接上无线网络的用户终端使用,也为了满足应用客户端可以在任何能够连接上无线网络的移动终端上接受数据处理,功能组件与应用客户端所在的互联网协议(IP)地址需要是能够支持非固定的地址,因此,功能组件与应用客户端的网络功能组件都不能作为网络服务端,其原因在于:作为网络服务端是需要提供固定IP接受网络客户端连接的,基于上述分析,本发明实施例提到的功能组件与应用客户端的网络功能组件均作为网络客户端,两者之间的通信不采用直接连接的方式实现。

此外,本发明优选实施例还支持多个功能组件与多个移动终端上的应用客户端同时工作,支持各个功能组件与应用客户端之间自由建立一对一的通信连接,由一个独立运行的服务器对功能组件与应用客户端之间的通信进行集中管理。

图2是根据本发明优选实施例的通过用户终端的功能组件与移动终端上的应用客户端进行数据交互过程的流程图。在用户终端安装GMMonitor之后,通过在PC端操作GMMonitor来实现对应用客户端的数据处理,如图2所示,该流程可以包括以下处理步骤:

步骤S202:用户终端启动GMMonitor,在功能组件启动TCP网络客户端,向GMServer发起连接,并与服务端成功建立连接之后,GMMonitor向GMServer发送用户终端的标识信息。GMServer接收到用户终端的标识信息,判定连接对象为GMMonitor,于是在功能组件连接管理器中加入GMMonitor的连接对象。GMServer向GMMonitor发送当前应用客户端连接管理器内的全部应用客户端信息,在GMMonitor接收到全部应用客户端信息后,在GUI界面上的GameClient选择绑定列表中显示所有GameClient的信息,其中,该信息内容可以包括:GameClient所在的移动终端的标识信息,GameClient是否已被绑定的信息。

步骤S204:启动移动终端上的GameClient,游戏进程的GM功能组件中的TCP网络客户端自行启动,并向GMServer发起连接。在GameClient与服务器成功建立连接之后,GameClient向GMServer发送自身的标识信息以及游戏进程所在移动终端的标识信息,其中,IOS设备可以获取手机用户自身设定的本机名称作为标识信息,安卓设备可以获取设备UDID作为标识信息。GMServer接收到应用客户端的标识信息和游戏进程所在移动终端的标识信息,在应用客户端连接管理器里加入GameCLient的连接对象,并保存游戏进程所在移动终端的标识信息。GMServer将新加入的GameCLient连接对象信息广播给所有已连接的GMMonitor,GMMonitor在接收到新加入的应用客户端信息后,会在GUI界面上的GameClient选择绑定列表中加入新应用客户端的信息。

需要说明的是,上述两个步骤没有严格的执行先后顺序,也支持多个GMMonitor与多个GameClient同时执行上述步骤。

图3是根据本发明优选实施例的多个GMMonitor与多个GameClient同时与GMServer建立连接的拓扑结构示意图。如图3所示,当任一GMMonitor/GameClient关闭进程或网络原因导致与GMServer断开网络连接时,GMServer便会从功能组件连接管理器/应用客户端连接管理器中移除相应的连接对象。如果是GameClient断开连接,则还需要将该GameClient断开连接的信息及时广播给所有GMMonitor,以便于GMMonitor在确定该GameClient断开连接后,从GameClient选择绑定列表中移除该GameClient的相关信息。

由于无线网络通信环境稳定性受限,网络连接时常容易断开,当GMMonitor/GameClient因网络问题断开与GMServer的网络连接后,GMMonitor/GameClient将按照上述步骤周期性创建新的网络连接以尝试重新与GMServer建立连接。

步骤S206:操作人员通过在GMMonitor的GameClient选择绑定列表中选取GameClient进行关联绑定操作,通过列表里显示的移动终端的标识信息判定待处理的GameClient对象。

步骤S208:当一个GMMonitor与一个GameClient之间建立绑定关系后,GMMonitor可以对GameClient执行数据处理操作。在数据处理过程中,GMMonitor对GameClient执行的数据处理操作内容可以包括但不限于以下至少之一:

(1)编辑调试指令到GameClient执行;

(2)实时在GMMonitor上查看GameClient产生的调试日志;

(3)上传用户终端资源脚本等文件至GameClient目录下;

(4)从应用客户端的用户目录中下载文件到本地用户终端;

(5)实时获取GameClient中的性能参数数据在GMMonitor上进行监控。

在优选实施过程中,图4是根据本发明优选实施例的在用户终端的功能组件与移动终端的应用客户端之间进行关联绑定操作过程的流程图。如图4所示,该流程可以包括以下处理步骤:

步骤S402:操作人员在GMMonitor的GameClient选择绑定列表里选择待处理的应用客户端,被选取的GameClient必须未被标识为已绑定,否则,GMMonitor拒绝发送绑定请求。在成功选取GameClient之后,GMMonitor向GMServer发送被选取的GameClient信息。

步骤S404:GMServer接收GMMonitor的绑定请求,获取待绑定的GameClient的信息,在应用客户端连接管理器里索引相应的连接对象。如果索引不到连接对象,说明对应的GameClient已经断开连接,进而通知GMMonitor绑定失败消息,即绑定请求失败;如果在绑定管理器里已经存在对应GameClient的绑定关系,说明GameCLient已经被其他GMMonitor抢先绑定,通知GMMonitor绑定失败消息,即绑定请求失败;除此之外,在其他正常情况下,GMServer通过绑定管理器建立GMMonitor与GameClient之间的关联绑定关系,通知GMMonitor和GameClient绑定成功消息,并广播给其余已连接的GMMonitor该GameClient已被抢先绑定的消息。

步骤S406:发起绑定请求的GMMonitor如果接收到绑定失败通知,则显示失败消息,以便GMMonitor重新发起绑定请求;如果接收到绑定成功消息,则显示绑定成功,并在GameClient选择绑定列表中标记对应的GameClient为已绑定。其余GMMonitor在接收到上述GameClient被绑定的广播消息后,再将GameClient选择绑定列表中对应的GameClient为已绑定。

可选地,在步骤S10,用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接之后,还可以包括以下执行步骤:

步骤S13,接收来自于功能组件的解除绑定请求或检测到功能组件断开无线网络连接;

步骤S14,查找与功能组件绑定的应用客户端;

步骤S15,解除在功能组件与应用客户端之间存在的关联绑定关系,并向当前连接的全部用户终端广播应用客户端已经被解除绑定的消息。

在建立完绑定关系的GMMonitor和GameClient双方如果需要解除绑定关系,则既可以由GMMonitor主动发起解除绑定请求,也可以在GMMonitor与GameClient双方的其中一方与GMServer断开网络连接之后,由GMServer主动清除双方之间的绑定关系。

图5是根据本发明优选实施例的由用户终端的功能组件发起解除关联绑定操作过程的流程图。如图5所示,该流程可以包括以下处理步骤:

步骤S502:当操作人员在绑定有GameClient的GMMonitor上执行解除绑定操作时,GMMonitor会向GMServer发送解除绑定请求。

在GMMonitor由于关闭进程或网络出现异常与GMServer断开网络连接的情况下,GMServer会检测到对应应用客户端的网络断开消息。

步骤S504:GMServer接收到GMMonitor的解除绑定请求或者检测到GMMonitor断开网络连接后,在绑定管理器中查找GMMonitor对应绑定的GameClient连接对象,以解除GMMonitor与GameClient之间的绑定关系,并将该GameClient已经解除绑定的消息广播给所有GMMonitor。

步骤S506:全部GMMonitor在接收到GMServer广播的GameClient解除绑定消息后,在GameClient选择绑定列表里将该GameClient信息设置为未绑定。

可选地,在步骤S12,用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接之后,还可以包括以下执行步骤:

步骤S16,检测到应用客户端断开无线网络连接;

步骤S17,查找与应用客户端存在绑定关系的功能组件;

步骤S18,解除在功能组件与应用客户端之间存在的关联绑定关系,并分别向功能组件和应用客户端通知应用客户端已经被解除绑定的消息以及向当前连接的除用户终端之外的其余用户终端广播应用客户端已经被解除绑定的消息。

图6是根据本发明优选实施例的由移动终端的应用客户端发起解除关联绑定操作过程的流程图。如图6所示,该流程可以包括以下处理步骤:

步骤S602:当已经绑定GMMonitor的GameClient进程关闭或网络异常导致其自身与GMServer断开网络连接时,GMServer监测到对应应用客户端的网络断开消息。

步骤S604:在GMServer检测到GameClient断开网络连接后,首先在绑定管理器中查找GameClient对应绑定的GMMonitor连接对象,其次解除GMMonitor与GameClient的绑定关系,然后分别将解除绑定消息通知给GMMonitor和GameCLient,最后将该GameClient解除绑定的消息广播给其余GMMonitor。

步骤S606:在全部GMMonitor接收到GMServer广播的GameClient解绑消息后,在GameClient选择绑定列表中将该GameClient信息设置为未绑定。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1201,接收来自于功能组件的调试指令,其中,调试指令用于控制应用客户端按照调试指令中包含的调试需求执行对应的调试操作;

步骤S1202,查找与功能组件绑定的应用客户端;

步骤S1203,将调试指令转发至应用客户端。

在优选实施例中,当移动终端上运行应用客户端时,通过在用户终端启动一个独立运行且与应用客户端通信的功能组件,可以支持操作人员在用户终端利用该功能组件对移动终端上的应用客户端进行相应的调试操作,通过利用操作人员在用户终端上进行调试操作的便捷性优势来提高调试效率,同时还通过利用用户终端的功能组件在开发过程中支持的开发工具更加全面且对程序性能限制更加宽松的特性来丰富调试功能开发内容。即,在移动终端上运行应用客户端的同时也能够在用户终端启动一个独立运行的调试窗口对应用客户端进行调试,则既不会影响移动终端上应用客户端的正常使用操作,也可以方便地在用户终端进行调试。

在用户终端的功能组件与移动终端的应用客户端建立一对一绑定关系后,可以通过功能组件编辑调试指令并发送给应用客户端,以使应用客户端执行相应的调试指令内容,最终实现调试需求。

图7是根据本发明优选实施例的用户终端的功能组件向移动终端的应用客户端发送调试指令执行调试过程的流程图。如图7所示,该流程可以包括以下处理步骤:

步骤S702:操作人员在绑定有GameClient的GMMonitor的调试指令编辑框内编辑GM调试指令,在点击发送按键后,GMMonitor将指令内容发送给GMServer。

步骤S704:GMServer接收到来自于GMMonitor的GM指令内容,通过绑定管理器查找到绑定的GameClient,并将GM调试指令转发至绑定的GameClient。

步骤S706:GameClient在接收到GM调试指令,在GM指令执行功能组件中查找相应的指令执行接口,调用指令执行接口执行对应的指令内容。

在通常情况下,GM指令的功能实现都会在GM功能组件中维护一个指令执行映射表,GM功能组件在接收到相应的指令执行请求后,便会通过指令名称去查找相应的指令执行函数,各个指令执行函数也维护在GM功能组件,指令执行函数可以调用游戏代码内支持的代码接口去执行与调试需要相关的特定操作,例如:以游戏应用为例,更改在游戏客户端内游戏角色数据(包括:经验数据、道具数据、等级数据)。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1204,接收来自于应用客户端的调试日志,其中,调试日志是通过应用客户端在对调试日志的输出接口进行重定向后发出的;

步骤S1205,查找与应用客户端绑定的功能组件;

步骤S1206,将调试日志转发至功能组件。

应用客户端的引擎层代码和脚本层代码在运行过程中调用print等标准输出接口时,都会通过标准输出stdout接口输出信息内容。当应用客户端的引擎层代码和脚本层代码运行过程中遇到错误异常时,代码运行过程中的traceback信息和错误提示都会通过错误输出stderr接口输出错误内容,这些内容都称为应用客户端运行过程中产生的调试日志。调试日志是定位游戏运行过程中发生异常的重要信息来源,所有调试日志都是通过这两个接口去获取的。

在用户终端的功能组件与移动终端的应用客户端建立一对一绑定关系后,应用客户端内实时产生的调试日志均被发送至功能组件中加以显示。

图8是根据本发明优选实施例的调试过程中在用户终端的功能组件实时显示移动终端上的应用客户端产生的调试日志过程的流程图。如图8所示,该流程可以包括以下处理步骤:

步骤S802:GameClient在接收到来自于的GMServer绑定成功消息后,GameClient可以重定向调试日志输出接口,以便每当GameClient产生调试日志,便可以调用发送接口,将调试日志内容发送给GMServer。

调试日志都是通过标准输出stdout和标准错误stderr两个接口来输出的,可以通过改变这两个接口的执行内容来修改日志输出时的相关操作。例如:原先的接口在日志输出时仅会执行在本地日志文件中写入输出的内容;而通过改变上述两个接口,可以更换为在日志输出时,既在本地日志文件中写入输出内容,又将输出内容通过网络发送到网络服务端。因此,上述重定向操作可以理解为改变日志输出时调用接口所做执行的逻辑。

步骤S804:GMServer在接收到来自于GameClient的调试日志之后,通过绑定管理器查找到绑定的GMMonitor,并将调试日志信息转发至绑定的GMMonitor。

步骤S806:GMMonitor在接收到来自于GMServer调试日志之后,在调试日志显示窗口里打印出相应的日志内容,操作人员可以在调试日志显示窗口查看相应调试日志信息。

当GameClient与GMMonitor之间取消关联绑定关系时,GameClient在接收到来自于GMServer取消关联绑定的消息后,GameClient便可以恢复重定向接口,以取消向GMServer发送调试日志。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1207,接收来自于功能组件的文件上传请求,其中,文件上传请求中携带有功能组件通过对用户终端本地待上传文件的文件名和文件内容进行序列化处理后得到的二进制字节流;

步骤S1208,查找与功能组件绑定的应用客户端;

步骤S1209,将文件上传请求转发至应用客户端,其中,文件上传请求中携带的二进制字节流用于使应用客户端重建用户终端本地待上传文件。

上述功能组件可以将所在用户终端本地的文件通过无线网络发送至应用客户端所在的移动终端上,并根据调试需求来修改应用客户端的文件数据,其主要是用来修改应用客户端的资源脚本文件。

在调试过程中经常会存在下载GameClient文件到PC本地的需求,也会存在上传PC本地文件到GameClient的需求,GameClient的应用程序目录下存在一个用户数据目录document,在GameClient运行过程中产生的文件数据、GameClient内的美术资源和代码脚本有修改需求时需要放置的patch文件都存储在该document下,调试过程中需要上传的文件或下载的文件也都存储在document下。

图9是根据本发明优选实施例的在调试过程中用户终端的功能组件将本地文件上传至移动终端的应用客户端过程的流程图。如图9所示,该流程可以包括以下处理步骤:

步骤S902:操作人员通过GMMonitor的文件上传选择框里选择用户终端本地需要上传的文件,并点击上传按钮。GMMonitor获取所选文件的路径,以二进制方式打开并读取需要上传的文件内容,将文件名与文件内容序列化为字节流通过网络数据包发包请求的方式发送给GMServer。

步骤S904:GMServer接收来自于GMMonitor的文件上传请求,通过绑定管理器查找到绑定的GameClient,转发相应文件内容到绑定的GameClient。

步骤S906:GameClient接收来自于GMServer的文件上传请求,读取网络数据包内的文件名称和文件二进制字节流,在document目录下创建文件,根据文件名称命名该文件,将二进制字节流写入该文件,以重建相应的文件。

需要说明的是,在调试过程中,从用户终端本地上传到GameClient的部分文件可以直接上传,然而,还有部分文件可以通过在GMMonitor上进行预处理(包括:打包、压缩)后才能上传到GameClient,以游戏应用为例,例如:资源脚本文件,通常游戏软件内的资源脚本文件发生变化时需要通过打patch的方式进行文件替换,即,在游戏软件的document目录下将修改后的资源脚本文件按照预定格式打包压缩为一个patch文件,供游戏进程运行过程中读取使用。

因此,在该优选实施例中,如果将用户终端本地的游戏资源脚本代码上传到GameClient下的document目录进行使用时,GMMonitor可以将资源脚本打包并压缩成patch文件的流程作为预处理过程。为此,上述将用户终端本地的游戏资源脚本文件上传到GameClient下的document目录的过程具体如下:

第一步、打开文件上传选择框,勾选待上传的资源脚本文件;

第二步、点击打包按钮,GMMonitor调用用户终端上部署的资源脚本patch打包工具将被选中的资源脚本文件打包为一个patch文件;

第三步、GMMonitor获取打包后的文件路径,以二进制方式打开并读取待上传的文件内容,将文件名与文件内容序列化为字节流通过网络包发包请求的方式发送给GMServer。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1210,接收来自于功能组件的获取文件列表请求;

步骤S1211,查找与功能组件绑定的应用客户端,并向应用客户端转发获取文件列表请求;

步骤S1212,将从应用客户端获取到的目录文件列表转发至功能组件,并接收来自于功能组件的文件下载请求,其中,文件下载请求中携带有从目录文件列表中选取的待下载文件;

步骤S1213,将文件下载请求转发至应用客户端,并接收应用客户端根据文件下载请求返回的文件下载响应,其中,文件下载响应中携带有应用客户端通过对待下载文件的文件名和文件内容进行序列化处理后得到的二进制字节流;

步骤S1214,将文件下载响应转发至功能组件,其中,文件下载响应中携带的二进制字节流用于使功能组件重建待下载文件。

上述功能组件可以通过无线网络从应用客户端所在的移动终端下载游戏日志文件到用户终端本地。

图10是根据本发明优选实施例的在调试过程中用户终端的功能组件将移动终端的应用客户端上的文件下载到用户终端本地过程的流程图。如图10所示,该流程可以包括以下处理步骤:

步骤S1002:操作人员在绑定有GameClient的GMMonitor打开文件下载选择框,GMMonitor向GMServer发送请求,获取所绑定GameClient的document目录下的文件信息列表。

步骤S1004:GMServer接收来自于GMMonitor的请求消息,通过绑定管理器查找到绑定的GameClient,并向绑定的GameClient发送获取文件列表请求。

步骤S1006:GameClient接收document目录文件列表请求,将document下所有文件的文件名列表发送给GMServer。

步骤S1008:GMServer接收到document目录文件列表,通过绑定管理器查找到绑定的GMMonitor,转发document目录文件列表至GMMonitor。

步骤S1010:GMMonitor接收到document目录文件列表后,在文件下载选择框里显示document目录文件列表,操作人员可以选择列表中相应的文件下载。在操作人员点击下载按钮后,GMMonitor向GMServer发送文件下载请求。

步骤S1012:GMServer接收来自于GMMonitor的文件下载请求,通过绑定管理器查找到绑定的GameClient,并将文件下载请求转发至绑定的GameClient。

步骤S1014:GameClient接收来自于GMServer的下载文件请求,在document下查找相应的文件,以二进制形式打开并读取文件的内容,将文件名与文件内容序列化为字节流通过网络包发包请求发送给GMServer。

步骤S1016:GMServer接收到下载文件内容信息,通过绑定管理器查找到绑定的GMMonitor,转发文件内容信息给绑定的GMMonitor。

步骤S1018:GMMonitor接收来自于GMServer的待下载文件内容信息,读取网络数据包内的文件名和文件二进制字节流,在用户终端本地下载目录下创建文件,根据文件名命名文件,将二进制字节流写入文件,重建相应的文件。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1215,接收来自于功能组件的截屏请求,其中,截屏请求用于控制应用客户端调用屏幕截图接口根据屏幕信息生成截屏图像;

步骤S1216,查找与功能组件绑定的应用客户端,并将截屏请求转发至应用客户端;

步骤S1217,接收来自于应用客户端截屏响应,并将截屏响应返回至功能组件,其中,截屏响应中携带有应用客户端对存储截屏图像的文件的文件名和文件内容进行序列化处理后得到的二进制字节流,二进制字节流用于使功能组件重建存储截屏图像的文件。

上述功能组件可以通过无线网络从应用客户端所在的移动终端下载屏幕截屏图像到用户终端本地。

图11是根据本发明优选实施例的在调试过程中用户终端的功能组件将移动终端的应用客户端在当前运行过程中获取的屏幕截图下载到用户终端本地过程的流程图。如图11所示,该流程可以包括以下处理步骤:

步骤S1102:操作人员在绑定有GameClient的GMMonitor点击屏幕截屏按钮,GMMonitor向GMServer发送屏幕截屏请求。

步骤S1104:GMServer接收来自于GMMonitor的屏幕截屏请求,通过绑定管理器查找到绑定的GameClient,发送屏幕截屏请求给绑定的GameClient。

步骤S1106:GameClient接收到屏幕截屏请求,调用屏幕截图接口,将屏幕信息生成图像,保存在document下,以二进制形式打开并读取文件的内容,再将文件名与文件内容序列化为字节流通过网络数据包发包请求发送至GMServer。

步骤S1108:GMServer接收到截屏图像内容信息,通过绑定管理器查找到绑定的GMMonitor,转发文件内容信息给绑定的GMMonitor。

步骤S1110:GMMonitor接收来自于GMServer的截屏图像内容信息,读取网络数据包内的文件名和文件二进制字节流,在用户终端本地下载目录下创建文件,根据文件名命名文件,将二进制字节流写入文件,重建相应的文件,然后调用用户终端图像显示程序显示图像。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1218,接收来自于功能组件的获取监控参数列表请求,其中,获取监控参数列表请求中所请求的监控参数是与运行应用客户端关联的全部性能参数中选取的;

步骤S1219,查找与功能组件绑定的应用客户端,并向应用客户端转发获取监控参数列表请求;

步骤S1220,将从应用客户端获取到的监控参数列表转发至功能组件,其中,监控参数列表中包含有与获取监控参数列表请求中所请求的监控参数对应的最新采集的数值。

上述功能组件可以启动一个性能参数监控界面,在选择需要监控的性能参数之后,向应用客户端发送监控参数请求,以获取应用进程运行过程中相对应的性能参数,以游戏应用为例,其可以包括但不限于:帧率、内存占用率、游戏渲染面片数、游戏渲染贴图数,应用客户端在接收到监控参数请求后,实时向功能组件发送与监控参数请求对应的性能参数的监控结果,功能组件在接收到相应的监控结果后在调试窗口UI界面内进行实时展示,其展示方式可以包括但不限于:实时绘制曲线图、打印参数数据,从而实现对应用进程的性能参数实时监控。

图12是根据本发明优选实施例的在调试过程中用户终端的功能组件监控移动终端的应用客户端的运行性能过程的流程图。在调试过程中,操作人员可以选择GameClient上相应的性能参数,并实时在GMMonitor的监控界面上显示,用来实时监控GameClient,以获取GameClient性能参数。如图12所示,该流程可以包括以下处理步骤:

步骤S1202:操作人员在绑定有GameClient的GMMonitor上打开性能参数监控界面,其中,性能参数监控界面可以包括:性能参数选择列表和曲线绘制界面,在性能参数选择列表中勾选需要监控的性能参数类型,然后GMMonitor便会发送被勾选参数列表信息至GMServer,请求对勾选参数进行监控。

步骤S1204:GMServer接收到监控参数列表请求,通过绑定管理器查找到绑定的GameClient,转发监控参数列表至GameClient。

步骤S1206:GameClient接收到监控参数列表请求,需要维护一个监控列表,将参数请求列表的参数添加至监控列表。当监控列表不为空时,便开启采集定时器,周期性地调用性能参数采集接口采集监控列表内的各个性能参数的数值,以便将性能参数数值列表发送至GMServer。

步骤S1208:GMServer接收到GameClient反馈的性能参数数值列表后,通过绑定管理器查找到绑定的GMMonitor,然后将性能参数数值列表发送至GMMonitor。

步骤S1210:GMMonitor在接收到性能参数数值列表后,按照性能参数监控界面内将性能参数数值列表内数值对应的各个性能参数类型在曲线图表界面内进行显示,曲线图表界面内的每一个性能参数类型都将对应一条性能参数曲线。通过在对应性能参数曲线图上增加绘制数值点,并刷新坐标位置,将该数值点所在位置设置为当前监控参数坐标位置,以实现对应用客户端的性能参数实时监控。

该优选实施例采用python的matlablib库实现相应的图表绘制功能,matlablib可以调用绘制曲线接口,将所有性能参数类型及参数数值以二维数组方式作为参数传入便可以绘制出对应的曲线,使用便捷,各个性能参数曲线颜色标记还能够自动区分。

在监控性能参数过程中,如果需要增加一些性能参数的监控,则可以在监控界面的参数选择列表内继续勾选新增的性能参数,随后GMMonitor便会发送新勾选的性能参数列表请求至GameClient。而GameClient在接收到新增的性能参数请求后,会更新监控列表,加入新增请求的性能参数,下次通过采集定时器采集性能参数时便会增加采集新增的性能参数。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1221,接收来自于功能组件的关闭监控请求,其中,关闭监控请求用于控制应用客户端取消对获取监控参数列表请求中所请求的监控参数进行监控;

步骤S1222,查找与功能组件绑定的应用客户端,并向应用客户端转发关闭监控请求。

可选地,在步骤S12中,通过功能组件与应用客户端进行数据交互可以包括以下执行步骤:

步骤S1223,接收来自于功能组件的取消部分监控参数请求,其中,取消部分监控参数请求用于控制应用客户端从监控参数列表中移除与取消部分监控参数请求对应的监控参数;

步骤S1224,查找与功能组件绑定的应用客户端,并向应用客户端转发取消部分监控参数请求。

图13是根据本发明优选实施例的在调试过程中用户终端的功能组件取消监控移动终端的应用客户端的运行性能过程的流程图。如图13所示,该流程可以包括以下处理步骤:

步骤S1302:操作人员在绑定有GameClient的GMMonitor上,如果希望取消全部性能参数的监控,则可以选择关闭监控界面,继而GMMonitor会向GMServer发送关闭监控的请求;如果希望取消部分已监控的性能参数,则可以在监控界面的参数选择列表内取消勾选对应的性能参数,继而GMMonitor会向GMServer发送待取消监控的性能参数列表。

步骤S1304:GMServer在接收到来自于GMMonitor的关闭监控或取消部分性能参数监控请求后,通过绑定管理器查找到绑定的GameClient,将对应的取消监控的操作请求发送至绑定的GameClient。

步骤S1306:GameClient如果接收到关闭监控请求,则将性能参数采集功能组件内的监控列表清空,并停止采集定时器,停止继续采集性能参数;如果接收到取消部分性能参数监控请求,则需要更新监控列表,将监控列表里对应的性能参数移除,下次采集定时器采集性能参数时便不会再采集被取消的性能参数,如果监控列表为空,则没有采集需求,同样需要关闭采集定时器,停止采集性能参数。

当GameClient在开启监控采集性能参数过程中接收到解除绑定消息或GameClient检测到与GMServer之间断开网络连接时,则GameClient将不再发送性能参数,清空监控列表并关闭采集定时器。

根据本发明实施例,还提供了一种移动应用的调试装置的实施例。图14是根据本发明实施例的移动应用的调试装置的结构框图。如图14所示,该装置可以包括:建立模块10,用于在用户终端设置的功能组件与移动终端上运行的应用客户端之间建立无线网络连接;交互模块20,用于通过无线网络连接在功能组件与应用客户端之间进行数据交互,其中,功能组件用于执行用户对应用客户端的调试。

可选地,建立模块10可以包括:第一发送单元(图中未示出),用于根据功能组件的标识信息和/或用户终端的标识信息向功能组件发送当前连接的全部应用客户端信息,其中,当前连接的全部应用客户端信息包括:每个应用客户端的标识信息、每个应用客户端所在的移动终端的标识信息以及每个应用客户端是否已经处于绑定状态;或者,每个应用客户端的标识信息和每个应用客户端是否已经处于绑定状态;第一接收单元(图中未示出),用于接收来自于功能组件的绑定请求消息,其中,绑定请求消息中携带有移动终端的标识信息和/或应用客户端的标识信息;建立单元(图中未示出),用于如果根据绑定请求消息确定应用客户端同时处于连接状态和未绑定状态,则在功能组件与应用客户端之间建立关联绑定关系;第二发送单元(图中未示出),用于分别向功能组件和应用客户端发送绑定成功消息。

可选地,图15是根据本发明优选实施例的移动应用的调试装置的结构框图。如图15所示,上述装置还可以包括:处理模块30,用于接收来自于功能组件的解除绑定请求或检测到功能组件断开无线网络连接;查找模块40,用于查找与功能组件绑定的应用客户端;解除模块50,用于解除在功能组件与应用客户端之间存在的关联绑定关系,并向当前连接的全部用户终端广播应用客户端已经被解除绑定的消息。

可选地,处理模块30,用于检测到应用客户端断开无线网络连接;查找模块40,用于查找与应用客户端存在绑定关系的功能组件;解除模块50,用于解除在功能组件与应用客户端之间存在的关联绑定关系,并分别向功能组件和应用客户端通知应用客户端已经被解除绑定的消息以及向当前连接的除用户终端之外的其余用户终端广播应用客户端已经被解除绑定的消息。

可选地,交互模块20可以包括:第二接收单元(图中未示出),用于接收来自于功能组件的调试指令,其中,调试指令用于控制应用客户端按照调试指令中包含的调试需求执行对应的调试操作;第一查找单元(图中未示出),用于查找与功能组件绑定的应用客户端;第三发送单元(图中未示出),用于将调试指令转发至应用客户端。

可选地,交互模块20可以包括:第三接收单元(图中未示出),用于接收来自于应用客户端的调试日志,其中,调试日志是通过应用客户端在对调试日志的输出接口进行重定向后发出的;第二查找单元(图中未示出),用于查找与应用客户端绑定的功能组件;第四发送单元(图中未示出),用于将调试日志转发至功能组件。

可选地,交互模块20可以包括:第四接收单元(图中未示出),用于接收来自于功能组件的文件上传请求,其中,文件上传请求中携带有功能组件通过对用户终端本地待上传文件的文件名和文件内容进行序列化处理后得到的二进制字节流;第三查找单元(图中未示出),用于查找与功能组件绑定的应用客户端;第五发送单元(图中未示出),用于将文件上传请求转发至应用客户端,其中,文件上传请求中携带的二进制字节流用于使应用客户端重建用户终端本地待上传文件。

可选地,交互模块20可以包括:第五接收单元(图中未示出),用于接收来自于功能组件的获取文件列表请求;第四查找单元(图中未示出),用于查找与功能组件绑定的应用客户端,并向应用客户端转发获取文件列表请求;第一处理单元(图中未示出),用于将从应用客户端获取到的目录文件列表转发至功能组件,并接收来自于功能组件的文件下载请求,其中,文件下载请求中携带有从目录文件列表中选取的待下载文件;第二处理单元(图中未示出),用于将文件下载请求转发至应用客户端,并接收应用客户端根据文件下载请求返回的文件下载响应,其中,文件下载响应中携带有应用客户端通过对待下载文件的文件名和文件内容进行序列化处理后得到的二进制字节流;第六发送单元(图中未示出),用于将文件下载响应转发至功能组件,其中,文件下载响应中携带的二进制字节流用于使功能组件重建待下载文件。

可选地,交互模块20可以包括:第六接收单元(图中未示出),用于接收来自于功能组件的截屏请求,其中,截屏请求用于控制应用客户端调用屏幕截图接口根据屏幕信息生成截屏图像;第三处理单元(图中未示出),用于查找与功能组件绑定的应用客户端,并将截屏请求转发至应用客户端;第四处理单元(图中未示出),用于接收来自于应用客户端截屏响应,并将截屏响应返回至功能组件,其中,截屏响应中携带有应用客户端对存储截屏图像的文件的文件名和文件内容进行序列化处理后得到的二进制字节流,二进制字节流用于使功能组件重建存储截屏图像的文件。

可选地,交互模块20可以包括:第七接收单元(图中未示出),用于接收来自于功能组件的获取监控参数列表请求,其中,获取监控参数列表请求中所请求的监控参数是与运行应用客户端关联的全部性能参数中选取的;第五处理单元(图中未示出),用于查找与功能组件绑定的应用客户端,并向应用客户端转发获取监控参数列表请求;第七发送单元(图中未示出),用于将从应用客户端获取到的监控参数列表转发至功能组件,其中,监控参数列表中包含有与获取监控参数列表请求中所请求的监控参数对应的最新采集的数值。

可选地,交互模块20可以包括:第八接收单元(图中未示出),用于接收来自于功能组件的关闭监控请求,其中,关闭监控请求用于控制应用客户端取消对获取监控参数列表请求中所请求的监控参数进行监控;第六处理单元(图中未示出),用于查找与功能组件绑定的应用客户端,并向应用客户端转发关闭监控请求。

可选地,交互模块20可以包括:第九接收单元(图中未示出),用于接收来自于功能组件的取消部分监控参数请求,其中,取消部分监控参数请求用于控制应用客户端从监控参数列表中移除与取消部分监控参数请求对应的监控参数;第七处理单元(图中未示出),用于查找与功能组件绑定的应用客户端,并向应用客户端转发取消部分监控参数请求。

下面将结合图16至图18所示的优选实施方式对上述优选实施过程做进一步地描述。

图16是根据本发明优选实施例的通过网络服务端实现数据处理功能的结构示意图。如图16所示,GMServer进程只需在后台运行,而无需GUI界面,在该优选实施例中采用python语言来实现。GMServer由TCP网络服务端,功能组件连接管理器,绑定管理器以及应用客户端连接管理器组成,其中,TCP网络服务端由网络管理组件,消息处理组件,发包处理组件组成。上述各个组成部分的具体功能如下:

(1)网络管理组件的主要功能如下:

1)负责TCP服务器侦听客户端的套接字(socket)连接,其中,侦听的IP地址和端口是固定的;

2)负责TCP服务器周期性轮循各个连接网络客户端socket的收包缓存获取网络收包并塞进收包队列中;

3)负责从发包队列中获取待发送至各个连接客户端的网络数据包,并通过socket的发包接口进行发送。

(2)消息处理组件负责从网络管理组件的收包队列中获取各个客户端的网络数据包进行解析,根据消息协议号查找对应的消息处理函数,并调用对应的消息处理函数处理每个连接客户端的网络请求内容。

(3)发包处理组件负责将TCP服务器需要发送至各个网络连接客户端的消息内容序列化为网络数据包,并塞入网络发送队列中,等待网络管理器组件将网络数据包发送至连接客户端。

在全部GMMonitor和GameClient与GMServer建立连接完毕后,均需要向GMServer发送自身的标识信息。在GMServer接收到标识信息后,便会创建对应的ClientObj,其中,ClientObj封装有连接客户端的所有信息,包括:身份信息、连接socket信息、发包队列、收包队列。所有GMMonitor的ClientObj都由功能组件管理器进行管理;所有GameClient的ClientObj都由应用客户端连接管理器进行管理。

当一个GMMonitor与一个GameClient建立关联绑定关系之后,绑定管理器将GMMonitor的ClientObj与GameClient的ClientObj建立一个映射关系;当一个GMMonitor与一个GameClient解除关联绑定关系后,绑定管理器还需要将对应的映射关系加以清除。

当GMMonitor或GameClient与GMServer断开连接之后,功能组件连接管理器和应用客户端连接管理器便会清理相应的ClientObj对象,如果绑定管理器内包含对应的映射关系,则绑定管理器还会解除该映射关系。

图17是根据本发明优选实施例的用户终端的功能组件的结构示意图。如图17所示,GMMonitor部署在用户终端上,可以利用任何用户终端支持的应用程序开发语言来加以实现,本实例使用python+pyqt语言进行脚本语言开发,并通过py2exe工具打包成应用程序。

GMMonitor的程序架构需要包含一个GUI操作界面,该GUI操作界面所实现的功能可以包括:调试指令编辑框、调试日志显示框、性能参数监控界面、文件上传选择框、文件下载选择框和GameClient绑定选择框,其中,操作人员通过调试指令编辑框编辑调试指令发送到GameClient执行,通过调试日志显示框查看GameClient产生的调试日志,通过性能参数监控界面操作选择性能参数类型监控GameClient的性能参数,通过文件上传选择框选择将本地用户终端的文件上传至GameClient用户数据目录下,通过文件下载选择框选择GameClient上的文件下载到用户终端本地以及通过GameClient绑定选择框选择GameClient进行关联绑定操作。

GMMonitor的程序架构还需要包含一个TCP网络客户端功能组件,该功能组件可以包括:网络管理组件、消息处理组件和发包处理组件。在GMMonitor启动后,TCP网络客户端功能组件便会自行启动。上述各个组件的具体实现功能如下:

(1)网络管理组件的主要功能如下:

1)负责TCP网络客户端创建socket向GMServer发起连接,其中所要连接的IP地址与端口都是预先配置完成的,与GMServer的侦听IP地址与端口一致;

2)负责TCP客户端周期性轮循socket的收包缓存获取从GMServer接收到的网络数据包,并塞进收包队列中;

3)负责从发包队列中获取将待发送至GMServer的网络数据包,并通过socket的发包接口进行发送。

(2)消息处理组件负责从网络管理组件的收包队列中获取接收到的网络数据包进行解析,根据消息协议号查找对应的消息处理函数,并调用对应的消息处理函数处理相应的消息内容。

(3)发包处理组件负责将TCP网络客户端需要发送给各个网络连接客户端的消息内容序列化为网络数据包,并塞入网络发送队列中,以等待网络管理组件发送给GMServer。

图18是根据本发明优选实施例的与用户终端的功能组件对应的应用客户端的结构示意图。如图18所示,GameClient在GM功能组件内需要搭建一个TCP网络客户端组件,游戏代码的业务逻辑通常都是脚本化来实现的,其中,python为常用的游戏脚本代码开发语言,python提供开源的网络库可以实现TCP网络组件。该优选实施例搭建的TCP网络客户端组件便是采用python网络库实现的,其组件可以包括:网络管理组件、消息处理组件和发包处理组件;在GameClient启动后TCP网络客户端组件便会自行启动。上述各个组件的具体实现功能如下:

(1)网络管理组件的主要功能如下:

1)负责TCP网络客户端创建socket向GMServer发起连接,其中,所要连接的IP地址与端口都是预先配置完成的,与GMServer的侦听IP地址与端口保持一致;

2)负责TCP客户端周期性轮循socket的收包缓存获取从GMServer接收到的网络数据包,并塞进收包队列中;

3)负责从发包队列内获取将要发送至GMServer的网络数据包,并通过socket的发包接口进行发送。

(2)消息处理组件负责从网络管理组件的收包队列中获取接收到的网络数据包进行解析,根据消息协议号查找对应的消息处理函数,并调用对应的消息处理函数处理相应的消息内容。

在优选实施过程中,GameClient接收到的消息处理包括以下三种:

第一种、调用GM指令执行组件执行相应的GM指令内容;

第二种、调用性能参数采集组件采集游戏运行过程的性能参数;

第三种、调用I/O组件在移动终端上进行文件读写。

(3)发包处理组件负责将TCP网络客户端将要发送至各个网络连接客户端的消息内容序列化为网络数据包,并塞入网络发送队列中,以等待网络管理组件发送至GMServer。

在GameClient与GMMonitor建立关联绑定关系后,每当GameClient的调试日志输出组件输出日志内容,便可以通过发包处理组件将日志内容通过网络发包发送至GMServer。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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