CN105389217A - 一种基于安卓系统的同步执行事务方法 - Google Patents
一种基于安卓系统的同步执行事务方法 Download PDFInfo
- Publication number
- CN105389217A CN105389217A CN201510934535.0A CN201510934535A CN105389217A CN 105389217 A CN105389217 A CN 105389217A CN 201510934535 A CN201510934535 A CN 201510934535A CN 105389217 A CN105389217 A CN 105389217A
- Authority
- CN
- China
- Prior art keywords
- client
- service end
- time
- equipment
- communication
- 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.)
- Granted
Links
Classifications
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了基于安卓系统的一种同步执行事务的方法,其特征是按如下步骤进行:1以设备所支持的网络通信方式完成组建网络环境的工作;2设立一套通信代码,利用通信代码进行设备间的信息交流,确定所有设备的初始时间基点;3完成事务执行前的初始化工作;4初始化工作完成后,确定事务执行的时间点,并利用所获得的时间基点推算事务在各设备上执行的目标时间基点,然后发起同步过程,各设备进入循环判定是否到达目标时间点的过程;5到达目标时间点,各设备执行事务。本发明能使事务能在支持安卓系统的设备上进行同步执行。
Description
技术领域
本发明属于人工智能领域,具体地说是基于安卓系统的一种同步执行事务的方法。
背景技术
目前,使用安卓系统的设备的数量和种类正在不断地快速增加,例如安卓系统在智能手机领域占据了80%的市场份额,安卓电视和手表等新型设备不断涌现,在实际开发配套APP的过程中,面临了诸多应用场景。在这些应用场景中有部分应用场景均需要多台设备同步性地执行一些事务。例如,多台设备同步显示相同画面在商场或者演出现场等公共地方是一件非常常见的事情,实际上有时还需要多个屏幕进行拼屏播放,这些场景的出现都丰富了我们的视觉效果,它们的大多实现方式是收到信号就立刻播放,播放的效果完全依赖设备的处理性能,效果并不稳定,尤其异构设备间的播放时差不稳定;有的方式是需要专门的设备辅助,又或者针对特定的设备开发相应的软件。还有的应用场景要求一个设备执行某个事务后,另一个设备在延迟指定时间间隔后也执行某个事务,即在同步执行的基础上设置一个时间增量,因此,这个场景也可归纳为对同步执行事务的需求。
发明内容
本发明克服了现有技术存在的不足之处,提供一种基于安卓系统的同步执行事务方法,以期能够适应同构机型和异构机型同步执行事务的需求,而且不需要复杂的技术处理,就可以稳定地将同步误差控制在毫秒级。
本发明为解决技术问题采用如下技术方案:
本发明一种基于安卓系统的同步执行事务方法的特点是,应用于由n个基于安卓系统的设备所组成的网络环境中,以任意一个设备作为服务端,记为Ui;其余n-1个设备作为客户端,记为{U1,U2,…,Uj,…Un-1};1≤j≤n-1;Uj表示第j个客户端;则所述n个设备按如下步骤同步执行事务:
步骤1、建立通信代码集合,记为{x1,x2,…,xm};xm表示第m个通信代码,第m个通信代码xm表示第m种操作含义;令第a个通信代码xa的操作含义为服务端要求客户端在接收到所述第a个通信代码xa时返回接收时间点;令第b个通信代码xb的操作含义为客户端接收到所述第a个通信代码xa后向服务端返回接收时间点;令第c个通信代码xc的操作含义为服务端告知客户端执行事务的目标时间点;1≤a≤m;1≤b≤m;1≤c≤m;a≠b≠c;
步骤2、所述服务端Ui通过新建子线程分别与n-1个客户端建立套接字连接的通信关系;
步骤3、所述服务端Ui记录自身设备的当前时间点并发送第a个通信代码xa给n-1个客户端;
步骤4、第j个客户端Uj在接收到所述第a个通信代码xa后,获取自身设备的当前时间点并将第b个通信代码xb和第j个客户端Uj的当前时间点一起发送给所述服务端Ui;
步骤5、所述服务端Ui在接收到所述第b个通信代码xb和第j个客户端Uj的当前时间点后,再次获取自身设备的当前时间点从而获得所述服务端Ui与第j个客户端Uj之间单程的通信时差为进而获得所述服务端Ui与n-1个客户端之间单程的通信时差{Δti1,Δti2,…,Δtij,…Δti(n-1)};
步骤6、所述服务端Ui根据与第j个客户端Uj之间单程的通信时差Δtij,获得第j个客户端Uj在服务端Ui发送第a个通信代码xa时所对应的设备时间点从而获得n-1个客户端在所述服务端Ui发送第a个通信代码xa时所对应的设备时间点
步骤7、所述服务端Ui和n-1个客户端利用其它m-3个通信代码进行各自的初始化;
步骤8、完成初始化后,所述服务端Ui再次获取自身设备的设备时间点并定在时间段t后与n-1个客户端同步开始执行事务;从而获得服务端Ui执行事务的目标时间点并并有t′i表示服务端Ui的时间偏差;所述服务端Ui根据所述目标时间点获得第j个客户端Uj执行事务的目标时间点并有表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点
步骤9、所述服务端Ui将第c个通信代码xc和第j个客户端Uj执行事务的目标时间点T1 j发送给所述第j个客户端Uj后,所述服务端Ui执行步骤10;所述第j个客户端Uj执行步骤12;
步骤10、定义循环变量α,并初始化α=1;
步骤11、所述服务端Ui获取自身设备的第α次循环的当前时间点并判断是否成立;若成立,则执行步骤14;否则,将α+1赋给α,并返回步骤11执行;
步骤12、定义循环变量β,并初始化β=1;
步骤13、所述第j个客户端Uj获取自身设备的第β次循环的当前时间点并判断是否成立;若成立,则执行步骤15;否则,将β+1赋给β,并返回步骤13执行;
步骤14、所述服务端Ui到达目标时间点并执行事务;
步骤15、所述第j个客户端Uj到达目标时间点并执行事务。
与现有技术相比,本发明的有益效果体现在:
1、本发明是利用系统自带函数进行处理,处理过程简单有效,且不涉及底层代码修改和无硬件要求,使程序具有较好的可移植性,执行效果稳定,全面考虑了同构机型和异构机型的情况,设置了偏差变量,便于实际调整,从而能够较好地适应异构机型,扩展了方法的应用范围。
2、本发明中通过利用信号在设备间的往返时差,确定了各设备的时间基点,其通信过程简单,因此,具有快速和方便实施的特点。
具体实施方式
一种基于安卓系统的同步执行事务方法,是应用于由n个基于安卓系统的设备所组成的网络环境中,以任意一个设备作为服务端,记为Ui;其余n-1个设备作为客户端,记为{U1,U2,…,Uj,…Un-1};1≤j≤n-1;Uj表示第j个客户端;本实施例中,将一种基于安卓系统的同步执行事务方法应用于2台三星平板进行同步播放视频,设备的型号分别为N5110和SM-P601,以型号SM-P601的设备作为服务端,型号为N5110的设备作为客户端;该方法先是以设备所支持的网络通信方式完成组建网络环境的工作;然后,设立一套通信代码,利用通信代码进行设备间的信息交流,确定所有设备的初始时间基点;接着,完成事务执行前的初始化工作;在初始化工作完成后,确定事务执行的时间点,并利用所获得的时间基点推算事务在各设备上执行的目标时间基点,然后发起同步过程,各设备进入循环判定是否到达目标时间点的过程;最后,到达目标时间点,各设备执行事务;具体是说,是按如下步骤进行:
步骤1、建立通信代码集合,记为{x1,x2,…,xm};xm表示第m个通信代码,第m个通信代码xm表示第m种操作含义;通信代码以是数字,也可以是字母或者字符和数字的组合,只要保证唯一性即可,令第a个通信代码xa的操作含义为服务端要求客户端在接收到第a个通信代码xa时返回接收时间点;令第b个通信代码xb的操作含义为客户端接收到第a个通信代码xa后向服务端返回接收时间点;令第c个通信代码xc的操作含义为服务端告知客户端执行事务的目标时间点;1≤a≤m;1≤b≤m;1≤c≤m;a≠b≠c;
步骤2、服务端Ui通过新建子线程分别与n-1个客户端建立套接字连接的通信关系,套接字是一种常用的通信机制;
步骤3、服务端Ui记录自身设备的当前时间点并发送第a个通信代码xa给n-1个客户端;
步骤4、第j个客户端Uj在接收到第a个通信代码xa后,获取自身设备的当前时间点并将第b个通信代码xb和第j个客户端Uj的当前时间点一起发送给服务端Ui;
步骤5、服务端Ui在接收到第b个通信代码xb和第j个客户端Uj的当前时间点后,再次获取自身设备的当前时间点从而获得服务端Ui与第j个客户端Uj之间单程的通信时差为往返时差在实际设备测试时,是比较稳定的,基本为9-10ms,考虑服务端和客户端处理过程相似,故单程误差值应该明显小于5ms,进而获得服务端Ui与n-1个客户端之间单程的通信时差{Δti1,Δti2,…,Δtij,…Δti(n-1)};
步骤6、服务端Ui根据与第j个客户端Uj之间单程的通信时差Δtij,获得第j个客户端Uj在服务端Ui发送第a个通信代码xa时所对应的设备时间点此种方式计算出的客户端的时间基点是个近似值,相对于客户端设备实际的系统时间的偏差值即是前述的单程时差的偏差值,对于后续步骤的影响也是个固定值,多次发起同步过程,并不会累积偏差;从而获得n-1个客户端在服务端Ui发送第a个通信代码xa时所对应的设备时间点
步骤7、服务端Ui和n-1个客户端利用其它m-3个通信代码进行各自的初始化,本实施例中,初始化过程包括:服务端需要先暂停视频播放,然后获取视频文件的播放的位置,并把这个位置信息发送给客户端,客户端在收到代表同步请求的通信代码后,同样暂停播放,并利用所获取的位置信息,定位到和服务端一样的画面上,在这个事务中一般使用seekTo()函数重新定位视频播放的位置,但是这个函数实际上定位到指定位置附近的关键帧画面,故在服务端获取位置信息后同样也使用了seekTo()函数进行重定位,这样能保证客户端和服务端的画面的一致性,另外初始化过程中,需要注意,使用pause()函数后,往往不能使视频播放立即暂停,但程序却又继续执行其后语句,建议在使用pause()函数后插入程序块,检测视频文件是否播放中,若是,继续循环检测,若不是,跳出循环,能够使用循环语句的前提是系统会进行线程切换,安卓系统一般都是同时运行多个线程的,所以前提完全可以满足,对于和pause()函数的实现性质类似的函数,即程序执行时,函数所涉及的操作并未全部完成就执行下一语句,对这样的函数可以以循环检测方式阻止程序在函数达成所需效果前继续执行下一语句;
步骤8、完成初始化后,服务端Ui再次获取自身设备的设备时间点并定在时间段t后与n-1个客户端同步开始执行事务;从而获得服务端Ui执行事务的目标时间点并并有表示服务端Ui的时间偏差;服务端Ui根据目标时间点获得第j个客户端Uj执行事务的目标时间点并有t′j表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点
步骤9、服务端Ui将第c个通信代码xc和第j个客户端Uj执行事务的目标时间点T1 j发送给第j个客户端Uj后,服务端Ui执行步骤10;第j个客户端Uj执行步骤12;
步骤10、定义循环变量α,并初始化α=1;
步骤11、服务端Ui获取自身设备的第α次循环的当前时间点并判断是否成立;若成立,则执行步骤14;否则,将α+1赋给α,并返回步骤11执行;hi是服务端设定的阈值,一般取值为服务端Ui线程轮转周期的一半;
步骤12、定义循环变量β,并初始化β=1;
步骤13、第j个客户端Uj获取自身设备的第β次循环的当前时间点并判断是否成立;若成立,则执行步骤15;否则,将β+1赋给β,并返回步骤13执行;hi是服务端Ui设定的阈值,一般取值为线程轮转周期的一半;hj是客户端设定的阈值,一般取值为客户端Uj线程轮转周期的一半;步骤11和步骤13会产生新的误差,值的大小为负的线程轮转周期值的一半到正的线程轮转周期值的一半,由于在支持多线程执行的系统中,各线程是轮流获得CPU,线程轮转周期值一般很小,在实际所使用的设备测试中是-2到2,单位是毫秒。
步骤14、服务端Ui到达目标时间点并执行事务;
步骤15、第j个客户端Uj到达目标时间点并执行事务。
根据安卓系统官方公布的数据显示,60Hz的画面刷新频率已经超出人眼和大脑的处理能力,即16毫秒的偏差是可以接受的,即使考虑在设备同构时,将服务端和客户端的偏差值均设为0,从而无法消除步骤3到步骤14中所产生累积误差,视频播放总的误差值也应在16毫秒内,考虑的更多设备的情况:服务端设备和客户端设备同步过程是相互独立的,相互并不干扰,并不会相互影响通信对的误差值大小。另外随着设备性能的不断进步,往返误差和线程轮转周期会进一步降低,所以方法的实际应用完全是可行的。本实施例经多次测试,人眼很难分辨画面播放时的时差,预计误差值10毫秒左右,另外需要注意的是异构设备的系统时间更新速率可能存在明显差异,建议每半个小时更新一次各设备的时间基点值。
Claims (1)
1.一种基于安卓系统的同步执行事务方法,其特征是,应用于由n个基于安卓系统的设备所组成的网络环境中,以任意一个设备作为服务端,记为Ui;其余n-1个设备作为客户端,记为{U1,U2,…,Uj,…Un-1};1≤j≤n-1;Uj表示第j个客户端;则所述n个设备按如下步骤同步执行事务:
步骤1、建立通信代码集合,记为{x1,x2,…,xm};xm表示第m个通信代码,第m个通信代码xm表示第m种操作含义;令第a个通信代码xa的操作含义为服务端要求客户端在接收到所述第a个通信代码xa时返回接收时间点;令第b个通信代码xb的操作含义为客户端接收到所述第a个通信代码xa后向服务端返回接收时间点;令第c个通信代码xc的操作含义为服务端告知客户端执行事务的目标时间点;1≤a≤m;1≤b≤m;1≤c≤m;a≠b≠c;
步骤2、所述服务端Ui通过新建子线程分别与n-1个客户端建立套接字连接的通信关系;
步骤3、所述服务端Ui记录自身设备的当前时间点并发送第a个通信代码xa给n-1个客户端;
步骤4、第j个客户端Uj在接收到所述第a个通信代码xa后,获取自身设备的当前时间点并将第b个通信代码xb和第j个客户端Uj的当前时间点一起发送给所述服务端Ui;
步骤5、所述服务端Ui在接收到所述第b个通信代码xb和第j个客户端Uj的当前时间点后,再次获取自身设备的当前时间点从而获得所述服务端Ui与第j个客户端Uj之间单程的通信时差为进而获得所述服务端Ui与n-1个客户端之间单程的通信时差{Δti1,Δti2,…,Δtij,…Δti(n-1)};
步骤6、所述服务端Ui根据与第j个客户端Uj之间单程的通信时差Δtij,获得第j个客户端Uj在服务端Ui发送第a个通信代码xa时所对应的设备时间点从而获得n-1个客户端在所述服务端Ui发送第a个通信代码xa时所对应的设备时间点
步骤7、所述服务端Ui和n-1个客户端利用其它m-3个通信代码进行各自的初始化;
步骤8、完成初始化后,所述服务端Ui再次获取自身设备的设备时间点并定在时间段t后与n-1个客户端同步开始执行事务;从而获得服务端Ui执行事务的目标时间点并并有t′i表示服务端Ui的时间偏差;所述服务端Ui根据所述目标时间点获得第j个客户端Uj执行事务的目标时间点并有t′j表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点
步骤9、所述服务端Ui将第c个通信代码xc和第j个客户端Uj执行事务的目标时间点发送给所述第j个客户端Uj后,所述服务端Ui执行步骤10;所述第j个客户端Uj执行步骤12;
步骤10、定义循环变量α,并初始化α=1;
步骤11、所述服务端Ui获取自身设备的第α次循环的当前时间点并判断是否成立;若成立,则执行步骤14;否则,将α+1赋给α,并返回步骤11执行;
步骤12、定义循环变量β,并初始化β=1;
步骤13、所述第j个客户端Uj获取自身设备的第β次循环的当前时间点并判断是否成立;若成立,则执行步骤15;否则,将β+1赋给β,并返回步骤13执行;
步骤14、所述服务端Ui到达目标时间点并执行事务;
步骤15、所述第j个客户端Uj到达目标时间点并执行事务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510934535.0A CN105389217B (zh) | 2015-12-11 | 2015-12-11 | 一种基于安卓系统的同步执行事务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510934535.0A CN105389217B (zh) | 2015-12-11 | 2015-12-11 | 一种基于安卓系统的同步执行事务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105389217A true CN105389217A (zh) | 2016-03-09 |
CN105389217B CN105389217B (zh) | 2018-11-06 |
Family
ID=55421524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510934535.0A Expired - Fee Related CN105389217B (zh) | 2015-12-11 | 2015-12-11 | 一种基于安卓系统的同步执行事务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389217B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032818A (zh) * | 2018-07-27 | 2018-12-18 | 北京计算机技术及应用研究所 | 一种同构系统核间同步与通信的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577264A (zh) * | 2013-11-18 | 2014-02-12 | 浪潮(北京)电子信息产业有限公司 | 一种时间控制方法及系统 |
CN104023266A (zh) * | 2014-05-27 | 2014-09-03 | 烽火通信科技股份有限公司 | 一种android系统的通信编解码组件的使用方法 |
US20140298421A1 (en) * | 2013-03-27 | 2014-10-02 | Oracle International Corporation | Multi-factor authentication using an authentication device |
-
2015
- 2015-12-11 CN CN201510934535.0A patent/CN105389217B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140298421A1 (en) * | 2013-03-27 | 2014-10-02 | Oracle International Corporation | Multi-factor authentication using an authentication device |
CN103577264A (zh) * | 2013-11-18 | 2014-02-12 | 浪潮(北京)电子信息产业有限公司 | 一种时间控制方法及系统 |
CN104023266A (zh) * | 2014-05-27 | 2014-09-03 | 烽火通信科技股份有限公司 | 一种android系统的通信编解码组件的使用方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032818A (zh) * | 2018-07-27 | 2018-12-18 | 北京计算机技术及应用研究所 | 一种同构系统核间同步与通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105389217B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3182715A2 (en) | Method and apparatus for controlling electronic device | |
CN111858318B (zh) | 一种响应时间的测试方法、装置、设备和计算机存储介质 | |
CN104754396A (zh) | 弹幕数据的显示方法及装置 | |
CN107948463B (zh) | 一种相机同步方法、装置及系统 | |
CN104918136A (zh) | 视频定位方法和装置 | |
CN109698914B (zh) | 一种闪电特效渲染方法、装置、设备及存储介质 | |
CN103020648A (zh) | 一种动作类型识别方法、节目播出方法及装置 | |
CN111831054B (zh) | 一种异步系统时钟同步方法、装置、系统和存储介质 | |
CN109213304A (zh) | 用于直播教学的手势互动方法和系统 | |
CN104080006A (zh) | 一种视频处理装置及方法 | |
CN106375682B (zh) | 影像处理方法、装置与可移动设备、无人机遥控器及系统 | |
CN103702148A (zh) | 一种推送信息的显示方法及装置 | |
CN109474648B (zh) | 一种虚拟现实交互的补偿方法及服务端设备 | |
CN103957464A (zh) | 一种广告分发方法及系统 | |
KR101249279B1 (ko) | 동영상 생성 방법 및 장치 | |
CN104837046A (zh) | 多媒体文件的处理方法和装置 | |
CN105389217A (zh) | 一种基于安卓系统的同步执行事务方法 | |
CN106792125A (zh) | 一种视频播放方法及其终端、系统 | |
WO2023279898A1 (zh) | 一种业务处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN106878762A (zh) | 一种实现终端设备切换的方法、装置、服务器及系统 | |
CN113891158B (zh) | 视频播放方法、装置、系统、电子设备和存储介质 | |
US9852712B2 (en) | System for synchronizing display of data transmitted wirelessly | |
CN114827647A (zh) | 直播数据生成方法、装置、设备、介质及程序产品 | |
CN112650596B (zh) | 目标数据的跨进程共享方法、装置、设备及存储介质 | |
CN116320711A (zh) | 图像拍摄方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181106 Termination date: 20211211 |