CN105389217B - 一种基于安卓系统的同步执行事务方法 - Google Patents

一种基于安卓系统的同步执行事务方法 Download PDF

Info

Publication number
CN105389217B
CN105389217B CN201510934535.0A CN201510934535A CN105389217B CN 105389217 B CN105389217 B CN 105389217B CN 201510934535 A CN201510934535 A CN 201510934535A CN 105389217 B CN105389217 B CN 105389217B
Authority
CN
China
Prior art keywords
client
server
equipment
affairs
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.)
Expired - Fee Related
Application number
CN201510934535.0A
Other languages
English (en)
Other versions
CN105389217A (zh
Inventor
谷雨
任福继
刘博文
田建文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN201510934535.0A priority Critical patent/CN105389217B/zh
Publication of CN105389217A publication Critical patent/CN105389217A/zh
Application granted granted Critical
Publication of CN105389217B publication Critical patent/CN105389217B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event 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)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (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执行事务的目标时间点T1 i,并有t′i表示服务端Ui的时间偏差;所述服务端Ui根据所述目标时间点T1 i获得第j个客户端Uj执行事务的目标时间点T1 j,并有t′j表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点{T1 1,T1 2,…,T1 j,…T1 (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到达目标时间点T1 i,并执行事务;
步骤15、所述第j个客户端Uj到达目标时间点T1 j,并执行事务。
与现有技术相比,本发明的有益效果体现在:
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执行事务的目标时间点T1 i,并有t′i表示服务端Ui的时间偏差;服务端Ui根据目标时间点T1 i获得第j个客户端Uj执行事务的目标时间点T1 j,并有t′j表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点{T1 1,T1 2,…,T1 j,…T1 (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到达目标时间点T1 i,并执行事务;
步骤15、第j个客户端Uj到达目标时间点T1 j,并执行事务。
根据安卓系统官方公布的数据显示,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执行事务的目标时间点T1 i,并有t′i表示服务端Ui的时间偏差;所述服务端Ui根据所述目标时间点T1 i获得第j个客户端Uj执行事务的目标时间点T1 j,并有tj′表示第j个客户端Uj的时间偏差;从而获得n-1个客户端执行事务的目标时间点{T1 1,T1 2,…,T1 j,…T1 (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是服务端设定的阈值;
步骤12、定义循环变量β,并初始化β=1;
步骤13、所述第j个客户端Uj获取自身设备的第β次循环的当前时间点并判断是否成立;若成立,则执行步骤15;否则,将β+1赋给β,并返回步骤13执行,hj是客户端设定的阈值;
步骤14、所述服务端Ui到达目标时间点T1 i,并执行事务;
步骤15、所述第j个客户端Uj到达目标时间点T1 j,并执行事务。
CN201510934535.0A 2015-12-11 2015-12-11 一种基于安卓系统的同步执行事务方法 Expired - Fee Related CN105389217B (zh)

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 CN105389217A (zh) 2016-03-09
CN105389217B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032818B (zh) * 2018-07-27 2021-11-16 北京计算机技术及应用研究所 一种同构系统核间同步与通信的方法

Citations (2)

* Cited by examiner, † Cited by third party
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系统的通信编解码组件的使用方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313198B2 (en) * 2013-03-27 2016-04-12 Oracle International Corporation Multi-factor authentication using an authentication device

Patent Citations (2)

* Cited by examiner, † Cited by third party
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系统的通信编解码组件的使用方法

Also Published As

Publication number Publication date
CN105389217A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN104994425B (zh) 一种视频标识方法和装置
WO2017166497A1 (zh) 一种多媒体数据的同步播放方法及装置
US20190318766A1 (en) Method, Device, and System of Synchronously Playing Media File
CN102655585B (zh) 视频会议系统及其时延测试方法、装置和系统
CN109327899A (zh) 一种车载设备同步时间的方法、装置和同步时间系统
CN104080006A (zh) 一种视频处理装置及方法
CN104244027A (zh) 音/视频数据实时传输并共享播放进程的控制方法及系统
EP3908005A1 (en) Distribution of network traffic for streaming content
CN106980482B (zh) 一种信息展示方法及第一电子设备
KR102566550B1 (ko) 복수의 커넥티드 장치 간 디지털 콘텐츠의 재생 동기화를 맞추는 방법 및 이를 이용한 장치
US20150215597A1 (en) Method for synchronous playback by multiple smart devices, and apparatus
CN108495157A (zh) 一种智能电视的同步信息获取方法
CN112399219B (zh) 素材播放方法及系统、终端及介质、素材同步播放方法
CN108174227B (zh) 虚拟物品的显示方法、装置及存储介质
CN106412697A (zh) 智能电视自动获取时区的方法和装置
CN107277295A (zh) 视频同步处理装置及方法
CN108156500B (zh) 多媒体数据时间修正方法、计算机装置、计算机可读存储介质
CN106060580B (zh) 图像同步显示方法及装置
CN114679665A (zh) 蓝牙耳机音视频同步方法和装置、电子设备、存储介质
CN108234143B (zh) 一种直播时消息的处理方法、装置和设备
CN105516118A (zh) 一种基于非rtc智能电视的时间同步方法及系统
CN105389217B (zh) 一种基于安卓系统的同步执行事务方法
CN106454554A (zh) 一种氛围光电视时间同步方法和氛围光电视
CN107135407B (zh) 一种钢琴视频教学中的同步方法及系统
CN110446103B (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

Granted publication date: 20181106

Termination date: 20211211

CF01 Termination of patent right due to non-payment of annual fee