一种多手机远程操控系统及方法与流程

文档序号:12132933阅读:360来源:国知局
一种多手机远程操控系统及方法与流程
本发明涉及手机远程操控
技术领域
,具体涉及一种多手机远程操控系统及方法。
背景技术
:在当今移动互联网飞速发展,Android手机的更新换代非常快。这就导致了市场上Android手机的种类多,系统碎片化严重。一个好的Android应用如果需要进入市场,需要适配很多机型。而在手机的黑盒测试中,测试人员只能对一个个手机进行单独测试,这样效率低,测试人员需大量的重复相同的测试操作。亟需一种可以解决在测试时,测试人员只需要操作一部手机,其他所有手机都可以跟着模拟同样的操作方案,以解决解决手机测试人员测试时效率低,测试重复的问题。技术实现要素:针对现有技术中存在的缺陷,本发明的目的在于提供一种多手机远程操控系统及方法,实现只需操作一部手机,其他所有手机都可以跟着模拟同样的操作。为达到以上目的,本发明采取的技术方案是:一种多手机远程操控系统,用于同一局域网内多台装有所述多手机远程操控系统的手机之间的相互控制,多台手机中一台手机为主控手机;其他手机均为被控手机,包括:主控模块,设于所述主控手机上,用于获取局域网内全部被控手机的ip地址列表;向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;采集主控手机被操作时的操作数据并将操作数据发送至被控手机的被控模块;被控模块,设于所述被控手机上,用于接收主控手机的主控模块发送的控制请求并返回被控手机的ID和ip地址;接收主控手机的主控模块发送的控制命令并执行该控制命令;将主控手机的主控模块发送的操作数据转换为模拟操作命令并在被控手机上执行所述模拟操作命令。在上述技术方案的基础上,包括:Ip地址获取单元,所述Ip地址获取单元用于获取局域网内被控手机的ip地址列表;控制请求发送单元,所述控制请求发送单元用于向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;控制命令发送单元,所述控制命令发送单元用于向被控子单元发送控制命令;操作数据采集单元,所述操作数据采集单元用于采集主控手机被操作时的操作数据并将操作数据发送至被控手机的被控模块。在上述技术方案的基础上,所述被控模块,包括:控制请求接收单元,所述控制请求接收单元用于接收主控手机的主控模块发送的控制请求及主控手机的ip地址并返回被控手机的ID和ip地址;控制命令执行单元,接收主控手机的主控模块发送的控制命令并执行该控制命令;操作数据处理单元,用于将主控手机的主控模块发送的操作数据转换为模拟操作命令并在被控手机上执行所述模拟操作命令。在上述技术方案的基础上,所述主控模块还包括RSA加密单元,用于对其发送的控制请求、控制命令和操作数据进行RSA证书加密;所述被控模块还包括RSA验证单元,用于验证主控模块发送的控制请求、控制命令和操作数据中的RSA证书。在上述技术方案的基础上,每台手机上均设有主控模块和被控模块,任意一台手机均可为主控手机,主控手机仅开启主控模块;其他手机为被控手机,被控手机仅开启被控主模块。本发明还公开了一种采用所述一种多手机远程操控系统的多手机远程操控方法:步骤S1,建立具有多台装有手机远程操控模块的手机的局域网;所述手机远程操控模块包括主控模块和被控模块;所述多台手机中一台手机为主控手机;其他手机均为被控手机;步骤S2,所述主控手机的主控模块获取局域网内全部被控手机的手机ID和ip地址;步骤S3,所述主控手机的主控模块向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;步骤S4,所述主控手机的主控模块向所述被控手机的被控模块发送开启socket端口长链接的控制命令;接收主控手机的主控模块发送的开启socket端口长链接的控制命令,并开启socket端口长链接;步骤S5,所述主控手机的主控模块采集主控手机被操作时的操作数据,将操作数据发送至被控手机的被控手机的被控模块;步骤S6,所述主控手机的被控模块接收主控手机的主控模块发送的包括操作数据并转换为模拟操作命令;并在被控手机上执行所述模拟操作命令,结束。在上述技术方案的基础上,步骤S6结束后,所述主控手机的主控模块向所述被控手机的被控模块发送关闭socket端口长链接的控制命令,所述被控手机的被控模块关闭socket端口,结束此次手机操控。在上述技术方案的基础上,步骤S2的具体过程包括:主控手机的主控模块开启主控手机的socket端口,被控手机的被控模块开启被控手机的socket端口;主控手机的主控模块向局域网类全部ip地址发送询问请求;被控手机的被控模块接收询问请求并向主控模块返回响应;主控手机的主控模块统计返回响应的ip地址列表。在上述技术方案的基础上,步骤S3的具体过程包括:主控手机的主控模块向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址;被控手机的被控模块向主控模块返回的被控手机的ID和ip地址;主控手机的主控模块接收被控模块返回的被控手机的ID和ip地址。在上述技术方案的基础上,步骤S6的具体过程包括:所述被控手机的被控模块生成的模拟操作命令为shell命令,并执行所述shell命令用于模拟点击操作。与现有技术相比,本发明的优点在于:1、本发明建立包括多台手机的局域网,每台手机上均设有手机远程操控模块;多台手机中一台手机为主控手机;其他手机均为被控手机;手机远程操控模块包括主控模块和被控模块,所述主控手机仅开启主控模块,所述被控手机仅开启被控模块。主控手机接收到用户点击操作时,主控模块采集用户点击操作的操作数据并发送至被控手机的被控模块,被控手机的被控模块将操作数据转化为模拟操作命令并执行该操作命令,从而实现只需操作一部手机,其他所有手机都可以跟着模拟同样的操作。2、为了防止其他恶意控制设备,所述主控模块与所述被控模块通过手机上的socket端口进行包括控制请求、控制命令和操作数据的通讯时需要验证RSA证书,以确保手机的安全性。附图说明图1为本发明实施例中多手机远程操控的系统的结构示意图;图2为本发明实施例中多手机远程操控的方法的流程示意图。具体实施方式以下结合附图及实施例对本发明作进一步详细说明。参见图1所示,本发明实施例提供一种多手机远程操控的系统,用于同一局域网内多台装有所述多手机远程操控系统的手机之间的相互控制,多台手机中一台手机为主控手机;其他手机均为被控手机,包括:主控模块,设于所述主控手机上,用于获取局域网内全部被控手机的ip地址列表;向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;采集主控手机被操作时的操作数据并将操作数据发送至被控手机的被控模块;被控模块,设于所述被控手机上,用于接收主控手机的主控模块发送的控制请求并返回被控手机的ID和ip地址;接收主控手机的主控模块发送的控制命令并执行该控制命令;将主控手机的主控模块发送的操作数据转换为模拟操作命令并在被控手机上执行模拟操作命令。每台手机上均设有主控模块和被控模块,任意一台手机均可为主控手机,主控手机仅开启主控模块;其他手机为被控手机,被控手机仅开启被控主模块。主控模块向被控模块发送的控制命令包括三种:打开socket端口长链接的控制命令;传输操作数据的控制命令;关闭socket端口长链接的控制命令。控制命令的组成包括命令参数、数据、验证信息:命令参数:该字符串为在本专利中协商好的字符串,作用为让主控模块与被控模块都能识别当前命令或数据的作用。数据:当socket端口长链接连通后,采集的操作数据将由控制命令发送至被控模块。验证信息:验证当前命令的合法性。由于需要及时传输,因此合法性验证只是将RSA秘钥通过MD5加密后,判断该加密数据是否一致。本专利中命令参数如下表所示:主控模块,包括:Ip地址获取单元,Ip地址获取单元用于获取局域网内被控手机的ip地址列表;控制请求发送单元,控制请求发送单元用于向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;控制命令发送单元,控制命令发送单元用于向被控子单元发送控制命令;操作数据采集单元,操作数据采集单元用于采集主控手机被操作时的操作数据并将操作数据发送至被控手机的被控模块。被控模块,包括:控制请求接收单元,控制请求接收单元用于接收主控手机的主控模块发送的控制请求及主控手机的ip地址并返回被控手机的ID和ip地址;控制命令执行单元,接收主控手机的主控模块发送的控制命令并执行该控制命令;操作数据处理单元,用于将主控手机的主控模块发送的操作数据转换为模拟操作命令并在被控手机上执行模拟操作命令。主控模块还包括RSA加密单元,用于对其发送的控制请求、控制命令和操作数据进行RSA证书加密;被控模块还包括RSA验证单元,用于验证主控模块发送的控制请求、控制命令和操作数据中的RSA证书。主控模块与被控模块通过手机上的socket端口进行通讯。为了防止其他恶意控制设备,主控模块与被控模块通过手机上的socket端口进行包括控制请求、控制命令和操作数据的通讯时需要验证RSA证书,以确保手机的安全性。主控模块与被控模块所有数据都是由RSA算法进行加解密的。主控模块发送的数据经过RSA公钥进行加密形成密文,将密文发送给被控模块。被控模块通过密钥将密文解密成可识别数据即可保证整个过程中数据的加密性。而公钥与密钥之间是在开发阶段就已经生成好的,如果有人篡改软软,该密钥将会失效。其原理是将秘钥跟使用本软件的签名文件生成,根据Android系统安装包生成规则,一旦有人篡改安装包,则签名文件不一致,那么使用错误签名形成的数据将不会被解析成正确的数据,被控模块将不理会该错误数据。使用这样的验证方法,可以在最大程度上保证被控模块的安全性。本发明建立包括多台手机的局域网,每台手机上均设有手机远程操控模块;多台手机中一台手机为主控手机;其他手机均为被控手机;手机远程操控模块包括主控模块和被控模块,主控手机仅开启主控模块,被控手机仅开启被控模块。主控手机接收到用户点击操作时,主控模块采集用户点击操作的操作数据并发送至被控手机的被控模块,被控手机的被控模块将操作数据转化为模拟操作命令并执行该操作命令,从而实现只需操作一部手机,其他所有手机都可以跟着模拟同样的操作。参见图2所示,本发明还公开了一种采用一种多手机远程操控系统的多手机远程操控方法:步骤S1,建立具有多台装有多手机远程操控系统的手机的局域网;多台手机中一台手机为主控手机;其他手机均为被控手机;主控手机上设有主控模块,被控手机上设有被控模块;步骤S2,主控手机的主控模块获取局域网内全部被控手机的手机ID和ip地址;步骤S3,主控手机的主控模块向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址,并接收被控手机的被控模块返回的被控手机的ID和ip地址;步骤S4,主控手机的主控模块向被控手机的被控模块发送开启socket端口长链接的控制命令;接收主控手机的主控模块发送的开启socket端口长链接的控制命令,并开启socket端口长链接;步骤S5,主控手机的主控模块采集主控手机被操作时的操作数据,将操作数据发送至被控手机的被控模块;步骤S6,被控手机的被控模块接收主控手机的主控手机的主控模块发送的包括操作数据并转换为模拟操作命令;并在被控手机上执行模拟操作命令。步骤S7,步骤S6结束后,主控手机的主控模块向被控手机的被控模块发送关闭socket端口长链接的控制命令,被控手机的被控模块关闭socket端口,结束此次手机操控。主控模块请求被主控模块开启socket端口长链接后,被主控模块将使用之前的socket端口开启长链接,返回开启成功后,并等待主控模块发送操作数据。如果开启失败,则会返回主控模块开启长链接失败。被主控模块接收到列表中一个设备的socket端口长链接开启完毕后,将进入等待。等待列表中所有的设备socket端口长链接都已经启动。但是如果列表所有设备都请求完了,有设备返回socket端口长链接开启失败,则会由用户选择是否继续。若用户选择不继续,则终止所有请求,并向所有已开启socket端口长链接的设备发送关闭长链接的命令。如果用户选择依旧继续,则开始进入操作数据采集阶段。步骤S2的具体过程包括:主控手机的主控模块开启主控手机的socket端口,被控手机的被控模块开启被控手机的socket端口;主控手机的主控模块向局域网类全部ip地址发送询问请求;被控手机的被控模块接收询问请求并向主控手机的主控模块返回响应;主控手机的主控模块统计返回响应的ip地址列表。例如:主控手机所在ip地址的域为192.168.1.1,那么只需要改变最后一位就可以向局域网内所有的ip地址发送请求。即192.168.1.1~192.168.1.254。发送请求时,只需要通过socket端口,向需要扫描的ip地址发送主控手机的端口号即可。端口号用于被控手机验证用,只有主控手机和被控手机端口号一致,被控手机才会向主控手机返回响应,即主控手机和其能控制的被控手机的端口号必须一致。若需在同一局域网内,同时对数批手机分别进行测试,为避免相互干扰,可以预先设置每批手机均有不同的端口号。步骤S3的具体过程包括:主控手机的主控模块向ip地址列表中的全部ip地址对应的被控手机的被控模块发送控制请求及主控手机的ip地址;被控手机的被控模块向主控手机的主控模块返回的被控手机的ID和ip地址;主控手机的主控模块接收被控手机的被控模块返回的被控手机的ID和ip地址。步骤S5的具体过程包括:主控手机的主控模块监听到主控手机被用户点击;主控手机的主控模块获取用户点击的功能键或者点击的坐标相对位置的操作数据;主控手机的主控模块将操作数据发送至被控手机的被控模块。操作数据即用户点击的坐标相对位置的坐标信息。就是将手机的宽高像素获取到,当用户点击一个位置时,也可以获取到用户点击位置像素坐标,通过计算,得到用户点击位置在整个用户屏幕中的相对比例。为了达到精确值,本发明中将该值定义为一个浮点型数据,其数据为用户点击位置的宽除以手机屏幕的宽,用户点击位置的高除以手机屏幕的高。这样得出的数据在各个不同屏幕尺寸的手机上就会在相对一样的位置,不会出现操作失误的情况。用户点击时,会在传输数据中带上本发明中定义的用户行为情况代码,该代码定义该坐标的作用。该代码使用16进制代码表示。用户行为情况代码表如下:用户行为代码说明用户点击屏幕0x010用户点击返回键0x020用户点击menu键0x030当用户点击屏幕时,同样采集数据,此时数据只有用户点击的坐标相对位置的坐标信息。当用户是点击返回键后者menu时,可以监听到用户是否点击了,只需要获取用户点击返回键或menu键的操作数据即可。步骤S6的具体过程包括:被控手机的被控模块生成的模拟操作命令为shell命令,并执行shell命令用于模拟点击操作。在被控手机的被控模块执行shell命令之前,本软件需要获得被控手机的root权限。在shell命令中执行“su”命令,可获取被控手机的root权限。通过执行exec("inputkeyevent"+keyCode+"\n")的shell命令来达到模拟点击操作的目的。若需要点击的按键为返回键,则只需要执行keyCode=4即可,menu的按键数值为69,这些值为Android系统规定的。若是模拟点击屏幕,当获取到控制子模块发送的操作数据后,将坐标相对位置的数值取出,同时获取当前手机屏幕的宽高,通过这两组数据得到当前真实需要点击的位置的x,y两个数据。x为相对位置的宽的浮点型数乘以当前手机屏幕的宽,y为相对位置的高的浮点型数诚意当前手机屏幕的高,执行如下代码来执行模拟点击屏幕:inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis();SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,x,y,0));//发送按下;sleep(500);//按下和抬起中间停留500毫秒;inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis();SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,x,y,0));//按下抬起;根据上述代码被控手机上会模拟点击同样区域去触发手机的点击事件。上述代码一共有3个步骤:需要点击区域的按下:由于android系统中点击屏幕有按下,抬起的操作才能算一次点击事件,因此需要先执行按下操作,传入xy的数值。等待500毫秒:由于需要区分按下和抬起,因此中间需要停留500毫秒让系统任务当前点击就是用户点击的。需要点击的区域按下后抬起:在停顿500毫秒后,将又执行抬起的操作,整个过程完毕后,才能让android系统认为是一次用户点击事件。执行完这些操作后,被控制手机则开始运行点击后的功能。整个操作需保持通过控制手机与被控手机之间持续socket端口长链接。因此,整个操作过程中不能关闭局域网。本发明不局限于上述实施方式,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1