一种远程控制安卓设备的方法和系统与流程

文档序号:11276140阅读:496来源:国知局
一种远程控制安卓设备的方法和系统与流程

本发明的实施方式涉及安卓设备远程控制领域,更具体地,本发明的实施方式涉及一种远程控制安卓设备的方法、一种用于远程控制安卓设备的移动控制端、一种远程控制安卓设备的系统、一种设备以及一种计算机可读存储介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

安卓碎片化现象一直是安卓应用研发团队的心头痛。品牌众多,分辨率不统一以及系统版本的不同,给安卓应用带来了各种兼容性问题。为了解决这些兼容性问题,研发人员经常需要在各种型号和系统的安卓设备上进行调试操作,但是逐一购买各种型号的安卓设备进行测试显然不现实。于是基于安卓真机远程控制的云测服务应运而生。

目前,已经出现一些基于pc上的浏览器客户端进行安卓真机远程控制的云测技术方案。例如,中国发明专利201210079086.2公开了一种远程模拟多点触控的方法和系统。其具体方案为:pc端flash模块与手机端核心模块建立连接并显示获取手机屏幕图像,用户在pc端通过键盘与鼠标的共同操作,模拟两个手指的起始坐标与终止坐标,从而实现在远程手机端的图像缩放操作。



技术实现要素:

出于各种原因,现有技术方案只能通过键盘和鼠标对云端安卓设备进行调试,其不支持多点触摸(两指或更多手指)和重力感应;要么只能模拟两根手指的操作,并根据中心对称算法按比例计算出第二根手指的终止坐标点位置,因此只能实现对云端安卓设备图像的按比例缩放操作,无法支持更加灵活的多指操作。现有的云端安卓设备远程控制解决方案都是基于pc上的浏览器客户端。现有技术方案弊端非常明显:只能通过pc上的鼠标和键盘模拟最基本的安卓设备操作,如滑动屏幕和单机屏幕;不能满足复杂的人机交互需求,如多点触摸与重力感应等;看不到云端安卓设备的实时清晰画面,所能看到的只是模拟画面。

因此在现有技术中,对云端安卓设备的操控,与真实的安卓设备操作体验相比差距很大。对于安卓应用研发人员来说,这是非常令人烦恼的过程。

为此,非常需要一种改进的远程控制安卓设备的方案,为解决安卓碎片化问题提供更加便利高效的解决方案。该方案除了实现现有技术可实现的单点触控与字符输入,还可以进行多点触控与重力感应等多种现有技术无法完成的操作。此外,本方案还应该操作流程简单易用,操作体验与本地使用安卓设备保持一致,极大降低与真实的安卓设备操作体验之间的差距。

在本上下文中,本发明的实施方式期望提供一种远程控制安卓设备的方法、一种用于远程控制安卓设备的移动控制端、一种远程控制安卓设备的系统、一种设备以及一种计算机可读存储介质。

在本发明实施方式的第一方面中,提供了一种远程控制安卓设备的方法,包括:在移动控制端与云端安卓设备之间建立连接;响应于操作事件,移动控制端控制云端安卓设备;云端安卓设备传送反馈信息至移动控制端。

在本发明的一个实施例中,移动控制端与云端安卓设备基于websocket通信协议建立连接。

在本发明的另一实施例中,所述操作事件被转换为调试命令。

在本发明的又一个实施例中,所述调试命令为adb调试命令。

在本发明的再一个实施例中,将所述调试命令转化为云端安卓设备的输入事件。

在本发明的再一个实施例中,所述操作事件是指单点触控、多点触控、重力感应、点击返回键、点击主页键、点击菜单键中的任意一种或多种。

在本发明的再一个实施例中,所述操作事件是在移动控制端屏幕内部进行的。

在本发明的再一个实施例中,所述操作事件是在移动控制端屏幕外部进行的。

在本发明的再一个实施例中,所述反馈信息为云端安卓设备的屏幕图像。

在本发明的再一个实施例中,所述云端安卓设备传送反馈信息至移动控制端是实时进行的。

在本发明实施方式的第二方面中,提供了一种用于远程控制安卓设备的移动控制端,包括:通信模块,用于与云端安卓设备之间建立连接;控制模块,响应于操作事件控制云端安卓设备;显示模块,用于显示接收到的云端安卓设备传送的反馈信息。

在本发明的一个实施例中,所述通信模块与云端安卓设备基于websocket通信协议建立连接。

在本发明的另一实施例中,所述操作事件被转换为调试命令。

在本发明的又一个实施例中,所述调试命令为adb调试命令。

在本发明的再一个实施例中,所述调试命令被转化为云端安卓设备的输入事件。

在本发明的再一个实施例中,所述操作事件是指单点触控、多点触控、重力感应、点击返回键、点击主页键、点击菜单键中的任意一种或多种。

在本发明的再一个实施例中,所述操作事件是在移动控制端屏幕内部进行的。

在本发明的再一个实施例中,所述操作事件是在移动控制端屏幕外部进行的。

在本发明的再一个实施例中,所述反馈信息为云端安卓设备的屏幕图像。

在本发明的再一个实施例中,所述云端安卓设备传送反馈信息至移动控制端是实时进行的。

在本发明实施方式的第三方面中,提供了一种远程控制安卓设备的系统,包括:如前文所述的任意一个移动控制端;云端安卓设备平台,包括一台或多台云端安卓设备;所述云端安卓设备平台能够根据移动控制端的指令选定一台云端安卓设备并与移动控制端建立连接。

在本发明实施方式的第四方面中,提供了一种设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,如前文所述的任意一个方法被执行。

在本发明实施方式的第五方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时能够实现如前文所述的任意一个方法。

根据本发明实施方式的一种远程控制安卓设备的方法、一种用于远程控制安卓设备的移动控制端、一种远程控制安卓设备的系统、一种设备以及一种计算机可读存储介质,与现有技术相比,以一种更加简便、更加用户友好的方式实现了更多现有技术不能实现的功能。例如,通过本发明的方法,用户可以实时感受到云端安卓设备的真实情况,云端安卓设备反馈的信息是真实的而不是模拟的,从为用户带来了更好的体验。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明一实施方式的一种远程控制安卓设备的方法的流程图;

图2示意性地示出了根据本发明一实施方式的一种用于远程控制安卓设备的移动控制端的结构示意图;

图3示意性地示出了根据本发明一实施例的一种远程控制安卓设备的系统的结构示意图;

图4示意性地示出了根据本发明一实施例的一种设备的结构示意图;

图5示意性地示出了根据本发明一实施例的一种计算机可读存储介质的示意图;

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品等。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种远程控制安卓设备的方法、一种用于远程控制安卓设备的移动控制端、一种远程控制安卓设备的系统、一种设备以及一种计算机可读存储介质。

在本文中,需要理解的是,云端安卓设备可以是云测平台上的安卓设备,也可以是在远端的安卓设备。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,出于各种原因,现有技术方案只能通过键盘和鼠标对云端安卓设备进行调试,其不支持多点触摸(两指或更多手指)和重力感应;要么只能模拟两根手指的操作,并根据中心对称算法按比例计算出第二根手指的终止坐标点位置,因此只能实现对云端安卓设备图像的按比例缩放操作,无法支持更加灵活的多指操作。现有的云端安卓设备远程控制解决方案都是基于pc上的浏览器客户端。现有技术方案弊端非常明显:只能通过pc上的鼠标和键盘进行最基本的安卓设备操作,如滑动屏幕和单机屏幕;不能满足复杂的人机交互需求,如多点触摸与重力感应等;看不到云端安卓设备的实时清晰画面,所能看到的只是模拟画面。

本发明通过利用安卓系统的adb调试技术,在移动控制端实现对云端安卓设备的控制操作。支持的操作不仅包括传统的单点触控如单指点击或单指滑动,还包括突破性的多指触控与重力感应等,能够在移动控制端最大程度地实时展示对云端安卓设备进行的操作,满足安卓应用研发团队对安卓应用的各种复杂的操作需求,为用户带来了更好的体验。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

根据本发明实施方式,可以实现本发明的应用场景包括远程控制安卓设备这一大的场景,更具体地,本发明的应用场景是远程控制安卓设备并测试安卓应用的兼容性。

示例性方法

下面参考图1来描述根据本发明示例性实施方式的一种远程控制安卓设备的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

图1示意性地示出了根据本发明一实施例的一种远程控制安卓设备的方法的流程图。该方法通常需要借助计算机、智能终端等类似设备实现。具体地,该远程控制安卓设备的方法可以包括:

s110,在移动控制端与云端安卓设备之间建立连接。

为本发明目的,移动控制端应为支持单点触控、多点触控以及重力感应等功能的移动设备,如基于android或者ios系统的移动设备。

在本发明中,首先在移动控制端与云端安卓设备之间建立连接,从而使得移动控制端与云端安卓设备可以进行双向通信。实现通信的协议有多种,如http/https,也可以开发私有协议实现通信目的。

作为示例,本发明中移动控制端与云端安卓设备可以基于websocket通信协议建立连接。相比于其他协议,使用websocket通信协议可以高效便捷地在移动控制端与云端安卓设备之间建立通信连接。

s120,响应于操作事件,移动控制端控制云端安卓设备。

在移动控制端与云端安卓设备之间建立连接后,移动控制端能够根据操作事件控制云端安卓设备。

作为示例,所述操作事件是指单点触控、多点触控、重力感应、点击返回键、点击主页键、点击菜单键中的任意一种或多种。比如,用户对移动控制端进行操作,移动控制端可以捕捉touch事件或者监测移动控制端的旋转(方向)。在一个实施例中,操作事件包括多点触控操作。在一个实施例中,操作事件包括重力感应操作。在一个实施例中,操作事件包括单点触控、多点触控、重力感应、点击返回键、点击主页键和点击菜单键中的全部。具体地:

对于单点触控而言,可在移动控制端屏幕内部进行,通过touch事件捕捉操作,包括tap/swipe/scroll/longpress/drag/type等;

对于多点触控而言,可在移动控制端屏幕内部进行,通过touch事件捕捉操作,包括pinch/multi-fingertap等;

对于重力感应而言,可以通过监测移动控制端的旋转(方向)实现;

对于特殊按键而言,可以在移动控制端屏幕外部进行,通过touch事件捕捉,模拟安卓设备的back键(返回键)/home键(主页键)/menu键(菜单键)操作。

作为示例,所述操作事件被转换为调试命令。更进一步地,作为示例,所述调试命令为adb调试命令。基于安卓adb调试技术,将所述adb调试命令转化为云端安卓设备的输入事件。例如,可以采用adb调试命令“adbshellinputtapxy”来将移动控制端的点击(单点触控)操作事件转化为云端安卓设备的输入事件;再例如,采用“adbshellinputswipex1y1x2y2”来将移动控制端的滑动(单点触控)操作事件转化为云端安卓设备的输入事件等。

s130,云端安卓设备传送反馈信息至移动控制端。

紧接着,云端安卓设备对输入事件进行响应,根据输入事件的不同,云端安卓设备会发生不同的变化。经websocket通信协议,云端安卓设备能够将包括云端安卓设备的屏幕图像和设备状态(包括但不限于云端安卓设备的声音、震动等)等反馈信息传送至移动控制端。

作为示例,所述反馈信息为云端安卓设备的屏幕图像。优选地,该屏幕图像为云端安卓设备的真实图像,而非模拟图像。因此,相较于现有技术,本发明大大提高了远程控制安卓设备的用户友好性。

作为示例,所述云端安卓设备传送反馈信息至移动控制端是实时进行的。本发明能够实现实时传输云端安卓设备的反馈信息,特别是能够将云端安卓设备的屏幕图像真实地实时传输至移动控制端。整个远程控制的过程中,云端安卓设备可以真实地反应移动控制端上的操作,同时云端安卓设备的屏幕画面也可实时传输到移动控制端显示。上述效果在现有技术中是不能实现的,本发明极大降低了与真实的安卓设备操作体验之间的差距。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的一种用于远程控制安卓设备的移动控制端进行说明。

图2示意性地示出了根据本发明一实施例的一种用于远程控制安卓设备的移动控制端的结构示意图。通常,该移动控制端可以独立成为一体,当然,本发明实施方式也不排除将该移动控制端或者该移动控制端的一部分设置于服务器中或者其他设备中,本发明对此不进行限定。该用于远程控制安卓设备的移动控制端可以包括通信模块210、控制模块220以及显示模块230,具体地:

通信模块210,用于与云端安卓设备之间建立连接。

为本发明目的,移动控制端应为支持单点触控、多点触控以及重力感应等功能的移动设备,如基于android或者ios系统的移动设备。

在本发明中,通信模块210首先在移动控制端与云端安卓设备之间建立连接,从而使得移动控制端与云端安卓设备可以进行双向通信。实现通信的协议有多种,如http/https,也可以开发私有协议实现通信目的。

作为示例,本发明中移动控制端与云端安卓设备可以基于websocket通信协议建立连接。相比于其他协议,使用websocket通信协议可以高效便捷地在移动控制端与云端安卓设备之间建立通信连接。

控制模块220,响应于操作事件控制云端安卓设备。

在移动控制端与云端安卓设备之间建立连接后,移动控制端能够根据操作事件控制云端安卓设备。

作为示例,所述操作事件是指单点触控、多点触控、重力感应、点击返回键、点击主页键、点击菜单键中的任意一种或多种。比如,用户对移动控制端进行操作,移动控制端可以捕捉touch事件或者监测移动控制端的旋转(方向)。具体地:

对于单点触控而言,可在移动控制端屏幕内部进行,通过touch事件捕捉操作,包括tap/swipe/scroll/longpress/drag/type等;

对于多点触控而言,可在移动控制端屏幕内部进行,通过touch事件捕捉操作,包括pinch/multi-fingertap等;

对于重力感应而言,可以通过监测移动控制端的旋转(方向)实现;

对于特殊按键而言,可以在移动控制端屏幕外部进行,通过touch事件捕捉,模拟安卓设备的back键(返回键)/home键(主页键)/menu键(菜单键)操作。

作为示例,所述操作事件被转换为调试命令。更进一步地,作为示例,所述调试命令为adb调试命令。基于安卓adb调试技术,将所述adb调试命令转化为云端安卓设备的输入事件。例如,可以采用adb调试命令“adbshellinputtapxy”来将移动控制端的点击(单点触控)操作事件转化为云端安卓设备的输入事件;再例如,采用“adbshellinputswipex1y1x2y2”来将移动控制端的滑动(单点触控)操作事件转化为云端安卓设备的输入事件等。

显示模块230,用于显示接收到的云端安卓设备传送的反馈信息。

紧接着,云端安卓设备对输入事件进行响应,根据输入事件的不同,云端安卓设备会发生不同的变化。经websocket通信协议,云端安卓设备能够将包括云端安卓设备的屏幕图像和设备状态(包括但不限于云端安卓设备的声音、震动等)等反馈信息传送至移动控制端,移动控制端显示模块230即用于显示(包括但不限于播放声音、产生震动等)接收到的云端安卓设备传送的反馈信息。

作为示例,所述反馈信息为云端安卓设备的屏幕图像。优选地,该屏幕图像为云端安卓设备的真实图像,而非模拟图像。因此,相较于现有技术,本发明大大提高了远程控制安卓设备的用户友好性。

作为示例,所述云端安卓设备传送反馈信息至移动控制端是实时进行的,移动控制端显示模块230也能够近乎同时地显示(包括但不限于播放声音、产生震动等)接收到的云端安卓设备传送的反馈信息。本发明能够实现实时传输云端安卓设备的反馈信息,特别是能够将云端安卓设备的屏幕图像真实地实时传输至移动控制端。整个远程控制的过程中,云端安卓设备可以真实地反应移动控制端上的操作,同时云端安卓设备的屏幕画面也可实时传输到移动控制端显示。上述效果在现有技术中是不能实现的,本发明极大降低了与真实的安卓设备操作体验之间的差距。

示例性系统

在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图3对本发明示例性实施方式的一种远程控制安卓设备的系统进行说明。

图3示意性地示出了根据本发明一实施例的一种远程控制安卓设备的系统的结构示意图。该系统包括如前文所述的任意一个移动控制端,还包括云端安卓设备平台。该云端安卓设备平台包括一台或多台云端安卓设备,此外,所述云端安卓设备平台能够根据移动控制端的指令选定一台云端安卓设备并与移动控制端建立连接。

在移动控制端与云端安卓设备平台建立连接后,移动控制端可以浏览云端安卓设备平台上的云端安卓设备情况,在目标云端安卓设备未被占用的情况下,移动控制端可以发出指令选定该目标云端安卓设备并与该目标云端安卓设备建立连接,随后进行如前文所述的远程控制操作。

示例性设备

在介绍了本发明示例性实施方式的方法、装置以及系统之后,接下来,参考图4对本发明示例性实施方式的一种设备进行说明。

图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器40的框图。图4显示的计算机系统/服务器40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,计算机系统/服务器40以通用计算设备的形式表现。计算机系统/服务器40的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。

计算机系统/服务器40典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器40访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如,随机存取存储器(ram)4021和/或高速缓存存储器4022。计算机系统/服务器40可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,rom4023可以用于读写不可移动的、非易失性磁介质(图4中未显示,通常称为“硬盘驱动器”)。尽管未在图4中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。系统存储器402中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块4024的程序/实用工具4025,可以存储在例如系统存储器402中,且这样的程序模块4024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块4024通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器40也可以与一个或多个外部设备404(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(i/o)接口405进行。并且,计算机系统/服务器40还可以通过网络适配器406与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图4所示,网络适配器406通过总线403与计算机系统/服务器40的其它模块(如处理单元401等)通信。应当明白的是,尽管图4中未示出,可以结合计算机系统/服务器40使用其它硬件和/或软件模块。

处理单元401通过运行存储在系统存储器402中的计算机程序,从而执行各种功能应用以及数据处理,例如,执行用于实现上述方法实施例中的各步骤的指令;具体而言,处理器401可以执行存储器402中存储的计算机程序,且该计算机程序被执行时,下述指令被运行:在移动控制端与云端安卓设备之间建立连接;响应于操作事件,移动控制端控制云端安卓设备;云端安卓设备传送反馈信息至移动控制端。

示例性介质

在介绍了本发明示例性实施方式的方法、装置、系统以及设备之后,接下来,参考图5对本发明示例性实施方式的一种计算机可读存储介质。

图5的计算机可读存储介质为光盘50,其上存储有计算机程序(即程序产品),该程序被处理器执行时,会实现上述方法实施方式中所记载的各步骤,例如,在移动控制端与云端安卓设备之间建立连接;响应于操作事件,移动控制端控制云端安卓设备;云端安卓设备传送反馈信息至移动控制端。

应当注意,尽管在上文详细描述中提及了一种用于远程控制安卓设备的移动控制端的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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