CN108401008B - 设备同步操作的方法及系统 - Google Patents
设备同步操作的方法及系统 Download PDFInfo
- Publication number
- CN108401008B CN108401008B CN201810029552.3A CN201810029552A CN108401008B CN 108401008 B CN108401008 B CN 108401008B CN 201810029552 A CN201810029552 A CN 201810029552A CN 108401008 B CN108401008 B CN 108401008B
- Authority
- CN
- China
- Prior art keywords
- control
- information
- message
- slave
- queue server
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- 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/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本发明适用于互联网技术领域,提供了一种设备同步操作的方法及系统,通过主设备获取从设备的从属设备信息,在主设备的界面出现变化后,采集导致界面出现变化的控件的控件操作信息以及控件身份信息,主设备将控件操作信息、控件身份信息以及从属设备信息发送至消息队列服务端,消息队列服务端将控件身份信息以及控件操作信息进行序列化处理后,发送至从属设备信息对应的从属设备中;从属设备通过uiautomator组件,根据控件操作信息对与控件身份信息对应的控件进行操作,并向消息队列服务端返回连接成功通知,以提高设备在同步操作时应对突发事件的处理能力,并且使得从属设备可以在后续的处理过程中利用同步操作时生成的执行数据。
Description
技术领域
本发明属于互联网技术领域,尤其涉及一种设备同步操作的方法及系统。
背景技术
随着互联网技术的发展,设备和设备之间的数据交互日益密切,其中一种常见的数据交互形式体现为将一个设备上操作的结果同步地在其他设备上显示,使得多台设备出现相同的用户界面,从而为不同的用户呈现相同的执行结果。以安卓手机为例,在日常生活中我们有时候需要将一台手机的操作结果同步到另外的手机上,此时就存在主设备以及从属设备。目前业界的安卓手机同步操作都是基于录制回放。录制回放主要是将主设备显示的操作处理结果录制下来后传送至从属设备,从属设备只需显示出由主设备传输过来的录制结果,即可完成多手机的同步操作。
但是当前都是主设备直接将录制的文件传输至从属设备,一旦出现连接失败进行重连时,就会出现主设备录制的文件丢失的现象。
除此之外,当前的同步操作方法,由于从属设备只能显示主设备传输的录制结果,所以从属设备并不能像主设备一样生成相关操作的执行数据,因而很多情况下无法满足用户需求,用户无法在同步结束后在从属设备上使用相关操作的执行数据,所以同步操作的灵活性较差。
发明内容
有鉴于此,本发明实施例提供了一种设备同步操作的方法及系统,以解决现有技术在设备同步操作时出现的灵活性差以及数据易丢失的问题。
本发明实施例的第一方面提供了一种设备同步操作的方法,包括:
主设备获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化;
若所述主设备的界面出现变化,则所述主设备采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息;
所述主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端;
所述消息队列服务端接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备发送所述控件序列化报文;
所述从属设备接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知。
本发明实施例的第二方面提供了一种设备同步操作的的系统,包括:
主设备,用于获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化;若所述主设备的界面出现变化,则采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息;
所述主设备,还用于将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端;
所述消息队列服务端,用于接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备发送所述控件序列化报文;
所述从属设备,用于接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知。
在本发明实施例中,通过主设备获取从属设备的从属设备信息,在所述主设备的界面出现变化后,采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息,主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息发送至消息队列服务端,所述消息队列服务端将所述控件身份信息以及控件操作信息进行序列化处理后,发送至从属设备信息对应的从属设备中;所述从属设备通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知,以提高设备在同步操作时应对突发事件的处理能力,并且使得从属设备可以在后续的处理过程中利用同步操作时生成的执行数据。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的设备同步操作的方法的实现流程图;
图2是本发明实施例提供的消息队列服务端的数据更新流程图;
图3是本发明实施例提供的设备同步操作的方法S104的具体实现流程图;
图4是本发明实施例提供的设备同步操作的系统交互图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的设备同步操作的方法的实现流程,该方法流程包括步骤S101至S105。各步骤的具体实现原理如下。
S101:主设备获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化。
本发明实施例中,设备同步操作的方法涉及三个端,分别为主设备、从属设备以及消息队列服务端,其中,主设备用于根据用户的控制执行操作,生成执行结果;从属设备用于同步执行主设备的各种操作,生成与主设备相同或相似的执行结果;消息队列服务端用于中转数据,以确保从属设备同步执行主设备操作的顺利进行。
在本发明实施例中,主设备首先需要获取从属设备的从属设备信息,以确定将要把相关数据传往哪个从属设备中。可选地,从属设备信息包括从属设备的物理地址或从属设备ID等可以唯一指明从属设备的信息。
在本发明实施例中,主设备可以实时监测本地的界面是否出现变化。可以理解地,如果主设备的界面没有出现变化,则证明用户并没有对主设备进行新的操作,所以无需启动后续的同步操作的流程;而如果主设备监测到界面出现变化,则需要进一步地识别具体是由哪个控件导致了界面的变化。
在本发明实施例中,通过实时监测界面是否出现变化,可以保证在界面出现变化时立即启动后续同步操作的流程,以控制相关从属设备同步执行操作。
S102,若所述主设备的界面出现变化,则所述主设备采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息。
在本发明实施例中,正是由于用户操作了某些的控件,所以主设备的界面才出现了变化,因此需要在本步骤中通过采集控件操作信息以及控件身份信息确定主设备中哪个控件具体执行了何种操作。
可选地,控件身份信息包括控件ID。可以理解地,根据控件ID可以锁定具体的控件。
可选地,控件身份信息包括控件名称。可以理解地,根据控件名称可以锁定具体的控件。
可选地,控件身份信息包括控件的XPath路径,可以理解地,XPath可以用于确定控件在主设备中具体存储的节点,因此通过XPath路径就可以锁定具体的控件。
在本发明实施例中,控件操作信息用于指示一个控件具体执行何种操作。
示例性地,假设一个导致界面出现变化的控件属于控制按钮类,则控件操作信息可能表示的是“单击”或“双击”等操作;假设一个导致界面出现变化的控件属于静态文本框类,则控件操作信息可能表示用户在该静态文本框内输入的具体内容。
进一步地,所述主设备采集控件操作信息以及控件身份信息,包括:所述主设备通过AccessibilityService组件采集控件操作信息以及控件身份信息。
在本发明实施例中,AccessibilityService组件是安卓系统为用户提供的无障碍辅助服务,可以运行在主设备的后台,并且能够实时监测主设备产生的界面变化是由哪个控件导致的,并检测该控件具体执行的操作。
在本发明实施例中,通过采集导致界面出现变化的控件的控件操作信息以及控件身份信息,可以明确地确定主设备中哪个控件具体执行了何种操作,所以可以在后续的流程中通过控件操作信息以及控件身份信息控制从属设备进行相应的操作。
步骤S103,所述主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端。
值得注意地,本发明实施例的一个特点为主设备并不是将控件操作信息以及控件身份信息直接发送至从属设备,而是首先将控件操作信息、控件身份信息以及从属设备信息打包,生成控件信息报文后发送至消息队列服务端,使得消息队列服务端作为一个中转设备将相关数据转发至从属设备中,这种处理流程有利于应对由于各种意外情况导致的数据发送失败的情况,具体地消息队列服务端的工作流程将在下文详述。
步骤S104,所述消息队列服务端接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备发送所述控件序列化报文。
值得注意地,在本发明实施例中,消息队列服务端接收到的控件信息报文中至少包含控件操作信息、控件身份信息以及从属设备信息,其中从属设备信息用于指示消息队列服务端向哪个从属设备转发数据,所以在进行序列化处理时,不对所述从属设备信息进行序列化处理。
进一步地,所述设备同步操作的方法还包括一个消息队列服务端的数据更新流程,图2示出了本发明实施例提供的消息队列服务端的数据更新流程,详述如下:
步骤S201,在所述消息队列服务端已存储的数据中,检测是否有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据。
在本发明实施例中,消息队列服务端可以起到保存由主设备传送的数据的作用,保存数据的好处是:如果消息队列服务端在与从属设备进行数据交互的过程中出现诸如断电等通信异常,消息队列服务端可以将预先保存的数据直接重新发送至从属设备。
在本发明实施例中,与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据是指在一条数据中三个数据之间的对应关系必须一致。示例性地,例如:控件信息报文中包含的控件操作信息为:“单击”;控件身份信息为:“CommandButton”;从属设备信息为“设备0001”,则消息队列服务端必须已经存储有一条数据包含上述三者的对应关系,才能判定消息队列服务端已存储的数据中有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据。但是假设消息队列服务端只存在两条数据,数据1:控件操作信息为:“单击”;控件身份信息为:“CommandButton”;从属设备信息为“设备0002”;数据2:控件操作信息为:“单击”;控件身份信息为:“CheckBox”;从属设备信息为“设备0001”,则虽然数据1和数据2的数据之和包括了控件信息报文中的数据,但是没有任何一条数据与控件信息报文中的控件操作信息、所述控件身份信息以及所述从属设备信息均一致,所以不能判定消息队列服务端已存储的数据中有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据。
步骤S202,若所述消息队列服务端已存储的数据中,存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则将所述控件信息报文删除。
在本发明实施例中,如果消息队列服务端已存储的数据中,存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则不需要再次将控件信息报文存储,为了节省消息队列服务端的存储空间,所以将控件信息报文删除。
可以理解地,虽然在本步骤中将控件信息报文删除,但是由于消息队列服务端已存储有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,所以仍然可以将控件信息报文中的控件操作信息、控件身份信息发送至与从属设备信息对应的从属设备中。
步骤S203,若所述消息队列服务端已存储的数据中,不存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则所述消息队列服务端保存所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息。
在本发明实施例中,如果消息队列服务端已存储的数据中,不存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则需要将控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息进行保存,使得在出现通信故障时,消息队列服务端不需要向主设备请求数据,可以直接将事先存储的数据重新发送至从属设备中,提高对于通信故障的处理能力以及处理速度。
作为本发明的一个实施例,如图3所示,上述S104包括:
步骤S1041,调取parcelable接口。
在本发明实施例中,为了使得主设备采集的控件操作信息以及控件身份信息更易于在消息队列服务端和从属设备之间传输,所以需要在消息队列服务端对控件身份信息以及控件操作信息进行序列化处理。
可选地,通过调用parcelable接口对相关数据进行序列化处理。parcelable接口是安卓系统提供的一种可进行序列化处理的接口。
步骤S1042,将所述控件身份信息以及所述控件操作信息进行合并,生成控件信息组。
在本发明实施例中,控件身份信息以及控件操作信息原本是两个数据,为了更便于在序列化处理过程中对这两个数据进行计算,所以在本步骤中对控件身份信息以及所述控件操作信息进行合并,生成控件信息组。
步骤S1043,通过所述parcelable接口,将所述控件信息组进行序列化处理,生成控件序列化报文。
可选地,首先将控件信息组转换为二进制字符串,生成控件信息字符串,接着通过“.writeToParcel”语句将控件信息字符串序列化成一个Parcel对象,将该Parcel对象作为序列化处理结果添加进一个控件系列化报文。
步骤S1044,将所述控件序列化报文添加进RabbitMQ队列,并通过RabbitMQ队列将所述控件序列化报文发送至所述从属设备。
在本发明实施例中,由于RabbitMQ队列具有可靠性高以及支持同时向多个从属设备发送报文的优点,所以采用RabbitMQ队列将控件序列化报文发送至从属设备中。
可以理解地,本发明实施例通过调用parcelable接口对控件身份信息以及控件操作信息进行序列化处理,并通过RabbitMQ队列向从属设备发送数据,使得消息队列服务端可以同时向多个从属设备有序发送数据,并且使得数据更容易传输。
步骤S105,所述从属设备接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知。
在本发明实施例中,由于从消息队列服务端发送的是控件序列化报文,所以从属设备在接收该控件序列化报文之后,需要对控件序列化报文进行反序列处理。
可选地,首先从控件序列化报文中解析出控件信息组的序列化结果,随后调用parcelable接口,通过“.Public static final Parcelable.Creator<T>CREATOR”将所述控件信息组的序列化结果恢复成控件信息组。如上文实施例所述,控件信息组是由控件身份信息以及控件操作信息合并而成的,所以在通过反序列化操作得到控件信息组后,可以分解出控件身份信息以及控件操作信息。
值得注意地,uiautomator组件是由安卓系统提供的原本用于自动化测试的组件,在本发明实施例中,通过uiautomator组件根据控件操作信息对与所述控件身份信息对应的控件进行操作。
可选地,从属设备在接收到控件序列化报文后,向所述消息队列服务端返回连接成功通知,以告知消息队列服务端成功接收控件序列化报文,使得消息队列服务端可以根据是否接收到连接成功通知,进行后续操作。
进一步地,若所述消息队列服务端未接收到所述连接成功通知,则向所述从属设备重新发送所述控件序列化报文,并向所述主设备发回连接未成功通知。
在本发明实施例中,通过主设备获取从属设备的从属设备信息,在所述主设备的界面出现变化后,采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息,主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息发送至消息队列服务端,所述消息队列服务端将所述控件身份信息以及控件操作信息进行序列化处理后,发送至从属设备信息对应的从属设备中;所述从属设备通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知,以提高设备在同步操作时应对突发事件的处理能力,并且使得从属设备可以在后续的处理过程中利用同步操作时生成的执行数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的设备同步操作的方法,图4示出了本发明实施例提供的设备同步操作的系统交互图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4,该系统包括:
主设备401,用于获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化;若所述主设备的界面出现变化,则采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息;
所述主设备401,还用于将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端402;
所述消息队列服务端402,用于接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备403发送所述控件序列化报文;
所述从属设备403,用于接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知。
可选地,所述主设备401,包括:
采集模块,用于通过AccessibilityService组件采集控件操作信息以及控件身份信息。
可选地,所述消息队列服务端402,包括:
检测模块,用于在所述消息队列服务端已存储的数据中,检测是否有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据;
删除模块,用于若所述消息队列服务端已存储的数据中,存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则将所述控件信息报文删除;
保存模块,用于若所述消息队列服务端已存储的数据中,不存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则所述消息队列服务端保存所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息。
可选地,所述消息队列服务端402,还包括:
接口调用模块,用于调取parcelable接口;
合并模块,用于将所述控件身份信息以及所述控件操作信息进行合并,生成控件信息组;
报文生成模块,用于通过所述parcelable接口,将所述控件信息组进行序列化处理,生成控件序列化报文;
发送模块,用于将所述控件序列化报文添加进RabbitMQ队列,并通过RabbitMQ队列将所述控件序列化报文发送至所述从属设备。
可选地,所述消息队列服务端还包括:
返回模块,用于若所述消息队列服务端未接收到所述连接成功通知,则向所述从属设备重新发送所述控件序列化报文,并向所述主设备发回连接未成功通知。
在本发明实施例中,通过主设备获取从属设备的从属设备信息,在所述主设备的界面出现变化后,采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息,主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息发送至消息队列服务端,所述消息队列服务端将所述控件身份信息以及控件操作信息进行序列化处理后,发送至从属设备信息对应的从属设备中;所述从属设备通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知,以提高设备在同步操作时应对突发事件的处理能力,并且使得从属设备可以在后续的处理过程中利用同步操作时生成的执行数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种设备同步操作的方法,其特征在于,包括:
主设备获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化;
若所述主设备的界面出现变化,则所述主设备采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息;其中,所述控件身份信息包括控件的XPath路径,所述XPath路径用于确定控件在主设备中具体存储的节点;
所述主设备将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端;
所述消息队列服务端接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备发送所述控件序列化报文,包括:调取parcelable接口;将所述控件身份信息以及所述控件操作信息进行合并,生成控件信息组;通过所述parcelable接口,将所述控件信息组进行序列化处理,生成控件序列化报文;将所述控件序列化报文添加进RabbitMQ队列,并通过RabbitMQ队列将所述控件序列化报文发送至所述从属设备;
所述从属设备接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知;其中,所述uiautomator组件是由安卓系统提供的原本用于自动化测试的组件;
其中,所述通过所述parcelable接口,将所述控件信息组进行序列化处理,生成控件序列化报文具体为:首先将所述控件信息组转换为二进制字符串,生成控件信息字符串,接着通过“.writeToParcel”语句将控件信息字符串序列化成一个Parcel对象,将所述Parcel对象作为序列化处理结果添加进一个控件系列化报文;
所述方法还包括:
在所述消息队列服务端已存储的数据中,检测是否有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据;
若所述消息队列服务端已存储的数据中,存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则将所述控件信息报文删除;
若所述消息队列服务端已存储的数据中,不存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则所述消息队列服务端保存所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息。
2.如权利要求1所述的设备同步操作的方法,其特征在于,所述主设备采集控件操作信息以及控件身份信息,包括:
所述主设备通过AccessibilityService组件采集控件操作信息以及控件身份信息。
3.如权利要求1所述的设备同步操作的方法,其特征在于,还包括:
若所述消息队列服务端未接收到所述连接成功通知,则向所述从属设备重新发送所述控件序列化报文,并向所述主设备发回连接未成功通知。
4.一种设备同步操作的系统,其特征在于,包括:
主设备,用于获取从属设备的从属设备信息,并监测所述主设备的界面是否出现变化;若所述主设备的界面出现变化,则采集导致所述界面出现变化的控件的控件操作信息以及控件身份信息;其中,所述控件身份信息包括控件的XPath路径,所述XPath路径用于确定控件在主设备中具体存储的节点;
所述主设备,还用于将所述控件操作信息、所述控件身份信息以及所述从属设备信息打包,生成控件信息报文,并将所述控件信息报文发送至消息队列服务端;
所述消息队列服务端,用于接收并解析所述控件信息报文,将所述控件身份信息以及所述控件操作信息进行序列化处理,生成控件序列化报文,并根据所述从属设备信息向所述从属设备发送所述控件序列化报文;
所述从属设备,用于接收并反序列化处理所述控件序列化报文,通过uiautomator组件,根据所述控件操作信息对与所述控件身份信息对应的控件进行操作,并向所述消息队列服务端返回连接成功通知;其中,所述uiautomator组件是由安卓系统提供的原本用于自动化测试的组件;
所述消息队列服务端,还包括:
接口调用模块,用于调取parcelable接口;
合并模块,用于将所述控件身份信息以及所述控件操作信息进行合并,生成控件信息组;
报文生成模块,用于通过所述parcelable接口,将所述控件信息组进行序列化处理,生成控件序列化报文,具体为:首先将所述控件信息组转换为二进制字符串,生成控件信息字符串,接着通过“.writeToParcel”语句将控件信息字符串序列化成一个Parcel对象,将所述Parcel对象作为序列化处理结果添加进一个控件系列化报文;
发送模块,用于将所述控件序列化报文添加进RabbitMQ队列,并通过RabbitMQ队列将所述控件序列化报文发送至所述从属设备;
检测模块,用于在所述消息队列服务端已存储的数据中,检测是否有与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据;
删除模块,用于若所述消息队列服务端已存储的数据中,存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则将所述控件信息报文删除;
保存模块,用于若所述消息队列服务端已存储的数据中,不存在与所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息均一致的数据,则所述消息队列服务端保存所述控件信息报文包含的控件操作信息、所述控件身份信息以及所述从属设备信息。
5.如权利要求4所述的设备同步操作的系统,其特征在于,所述主设备包括:
采集模块,用于通过AccessibilityService组件采集控件操作信息以及控件身份信息。
6.如权利要求4所述的设备同步操作的系统,其特征在于,所述消息队列服务端,还包括:
返回模块,用于若所述消息队列服务端未接收到所述连接成功通知,则向所述从属设备重新发送所述控件序列化报文,并向所述主设备发回连接未成功通知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029552.3A CN108401008B (zh) | 2018-01-12 | 2018-01-12 | 设备同步操作的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029552.3A CN108401008B (zh) | 2018-01-12 | 2018-01-12 | 设备同步操作的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108401008A CN108401008A (zh) | 2018-08-14 |
CN108401008B true CN108401008B (zh) | 2021-05-07 |
Family
ID=63094736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810029552.3A Active CN108401008B (zh) | 2018-01-12 | 2018-01-12 | 设备同步操作的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108401008B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297420A (zh) * | 2013-04-27 | 2013-09-11 | Tcl集团股份有限公司 | 多屏共享控制的方法、设备及系统 |
CN103778053A (zh) * | 2012-10-18 | 2014-05-07 | 周玲玲 | 移动终端远程真机测试系统及方法 |
CN104717337A (zh) * | 2015-04-03 | 2015-06-17 | 杭州昕云信息科技有限公司 | 一种批量测试手机应用的方法及其使用的设备 |
CN105183631A (zh) * | 2015-07-16 | 2015-12-23 | 小米科技有限责任公司 | 设备测试方法及装置 |
CN106648569A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 目标序列化实现方法和装置 |
CN106648590A (zh) * | 2016-09-29 | 2017-05-10 | 成都雅骏新能源汽车科技股份有限公司 | 一种电机控制器的上位机软件的配置方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009066233A2 (en) * | 2007-11-23 | 2009-05-28 | Koninklijke Philips Electronics N.V. | Co-browsing (java) scripted html documents |
-
2018
- 2018-01-12 CN CN201810029552.3A patent/CN108401008B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778053A (zh) * | 2012-10-18 | 2014-05-07 | 周玲玲 | 移动终端远程真机测试系统及方法 |
CN103297420A (zh) * | 2013-04-27 | 2013-09-11 | Tcl集团股份有限公司 | 多屏共享控制的方法、设备及系统 |
CN104717337A (zh) * | 2015-04-03 | 2015-06-17 | 杭州昕云信息科技有限公司 | 一种批量测试手机应用的方法及其使用的设备 |
CN105183631A (zh) * | 2015-07-16 | 2015-12-23 | 小米科技有限责任公司 | 设备测试方法及装置 |
CN106648569A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 目标序列化实现方法和装置 |
CN106648590A (zh) * | 2016-09-29 | 2017-05-10 | 成都雅骏新能源汽车科技股份有限公司 | 一种电机控制器的上位机软件的配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108401008A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108712501B (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
CN106375458B (zh) | 服务调用系统、方法及装置 | |
US11269705B2 (en) | Method and apparatus for outputting information | |
CN110022260B (zh) | 一种跨环境回执消息处理方法及系统 | |
CN113434600B (zh) | 一种数据同步方法及装置 | |
CN110232091B (zh) | 用于同步数据的方法、系统和装置 | |
CN112363845A (zh) | 系统集成中台的数据同步方法及集成中台系统 | |
CN112286723A (zh) | 机房容灾控制方法、终端及存储介质 | |
CN112486707A (zh) | 基于Redis的消息异步消费方法及装置 | |
CN114124978B (zh) | 一种基于分布式协同的视频云服务高可用方法和装置 | |
CN109559121B (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
CN113364885B (zh) | 微服务调用方法、装置、电子设备和可读存储介质 | |
CN113626225B (zh) | 程序调用方法、终端设备及介质 | |
CN108401008B (zh) | 设备同步操作的方法及系统 | |
CN115276844B (zh) | 通信模组的测试方法、装置、存储介质及电子设备 | |
CN110351122B (zh) | 容灾方法、装置、系统与电子设备 | |
CN111988391A (zh) | 一种消息发送方法及装置 | |
CN114884805B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN114338584B (zh) | 消息撤回方法和消息传输系统 | |
CN107196843B (zh) | 一种即时通信的方法和装置 | |
CN111865631A (zh) | 故障信息上报方法、装置、电子设备与可读存储介质 | |
US9479406B2 (en) | Displaying signal flows in network analysis tool | |
CN113472469B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN112835728B (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
CN112825586B (zh) | 业务处理方法、终端及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |