CN105159728B - 一种基于android系统的获取NTP时间信息的方法和装置 - Google Patents
一种基于android系统的获取NTP时间信息的方法和装置 Download PDFInfo
- Publication number
- CN105159728B CN105159728B CN201510618968.5A CN201510618968A CN105159728B CN 105159728 B CN105159728 B CN 105159728B CN 201510618968 A CN201510618968 A CN 201510618968A CN 105159728 B CN105159728 B CN 105159728B
- Authority
- CN
- China
- Prior art keywords
- ntp
- temporal information
- server
- ntp time
- time 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于android系统的获取NTP时间信息的方法和装置,包括:在检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息,本申请实施例不需要被动的延迟发送系统准备完毕广播,或者是在Launcher中设置等待页面,本申请可以提前获取到NTP时间信息,缩短了用户等待进行交互业务的时间,提高了用户体验。
Description
技术领域
本发明涉及安卓系统领域,尤其涉及一种基于android系统的获取NTP时间信息的方法和装置。
背景技术
随着技术的不断发展,以安卓(android)架构为基础的OTT机顶盒和IPTV机顶盒等智能终端的各项业务也逐渐完善起来,其中NTP (Network Time Protocol,网络时间协议)时间信息对于智能机顶盒服务中一些重要交互式业务非常重要,例如时移业务、回看业务、推荐节目或者天气信息业务等,如果NTP时间信息不准确会造成机顶盒的一些业务无法正常运行,而由于机顶盒的天然硬件特性,即在机顶盒中没有内置时钟电池和GSM模块,因此,机顶盒不能像手机等智能终端使用GSM服务去获取NTP时间信息,只能通过网络服务器去请求正确的NTP时间信息。
如图1所示,是现有技术中Android系统智能机顶盒启动的简要流程,其中,SystemServer服务是启动用户可见程序的关键程序,System Server服务会启动包括硬件服务和系统框架核心平台服务,而android系统是通过“事件驱动”机制发出一些关键消息告知系统去启动相关的程序,比如获取NTP时间信息的程序,当SystemServer加载了所有的系统服务后就意味着系统就准备好了,它会向所有服务发送一个系统准备完毕(systemready) 广播,在发送系统完成启动的广播后,一方面会进入用户home launcher界面,另一方面会发送网络连接消息的广播,网络通信模块在接收到网络连接消息的广播后,会启动获取NTP时间信息的服务,根据预存的NTP服务器地址去连接位于国外的由谷歌提供的原生NTP服务器,进而获取准确的NTP时间信息。
但是,现有的智能机顶盒去获取NTP时间信息受到Android启动流程的影响,不可避免的带来延时,即启动获取NTP时间信息的服务是在获取到系统发送的网络连接消息后,而此时用户Launcher界面早已显示出来,但是NTP这种需要及时响应的程序就失去了最佳的运行时机,一些厂商为了解决该问题,都是在没有获取到准确的NTP时间时,被动的延迟发送系统准备完毕(systemready) 广播,或者是在Launcher中设置等待页面,直到NTP时间能够正确显示,用户才能正常的使用相关交互业务,但是这样的解决手段只是简单的采用规避的方式,并没有从底层解决该问题,从而增加了系统启动的时间或者用户进入业务的时间,影响了用户体验。
发明内容
本申请实施例通过提供一种基于android系统的获取NTP时间信息的方法和装置,解决了现有技术中采用安卓系统的智能机顶盒设备获取NTP时间信息是在接收到网络连接的广播后才从服务器获取NTP时间信息,本申请实施例不需要被动的延迟发送系统准备完毕广播,或者是在Launcher中设置等待页面,本申请可以提前获取到NTP时间信息,缩短了用户等待进行交互业务的时间,提高了用户体验。
本发明实施例提供了一种基于android系统的获取NTP时间信息的方法,所述方法包括:
检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息。
本发明实施例还提供了一种基于android系统的获取NTP时间信息的装置,所述装置包括:
检测模块,所述检测模块用于检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
交互模块,所述交互模块用于以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
第一获取模块,所述第一获取模块用于根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息。
从上述技术方案中可以看出,本发明实施例通过检测到System Server系统服务进程启动后,创建了一个用于获取NTP时间信息的进程,在该进创程创建后,会以预设的访问周期与android系统网络协议接口进行交互,进而获取到网络协议接口的返回值,该返回值用以标识网络协议接口是否可以建立正常的Internet网络连接;最后可根据返回值,在确定可以建立正常的Interner网络连接后,与目标NTP时间服务器建立Internet网络连接,从目标NTP时间服务器获取到第一NTP时间信息,由于本申请获取NTP时间信息是在检测到System Server系统服务进程启动后,就开始以主动询问的方式与网络接口进行交互,从而在可以正常建立网络连接时及时从目标NTP时间服务器获取到NTP时间信息,相对于现有技术被动的等待系统在完成全部的系统准备工作后发送的网络连接消息的广播,然后才能以与服务器通信获取时间信息的方式,极大的缩短了机顶盒在开机初始化过程中获取NTP时间信息的时长,缩短了用户等待进行交互业务的时间,提高了用户体验。
附图说明
图1为本申请现有技术中Android系统智能机顶盒启动的简要流程图;
图2为本申请实施例一中获取NTP时间信息的方法的流程图;
图3为本申请实施例一中检测到System Server系统服务进程启动后,创建NTP时间进程方法的流程图;
图4为本申请实施例二中确定目标NTP时间服务器的方法的流程图;
图5为本申请实施例二中NTP时间服务器地核结构示意图;
图6为本申请实施例三中获取NTP时间信息的方法的流程图;
图7为本申请实施例四中获取NTP时间信息的装置的结构示意图。
具体实施方式
本申请实施例通过提供一种基于android系统的获取NTP时间信息的方法和装置,解决了现有技术中采用安卓系统的智能机顶盒设备获取NTP时间信息是在接收到网络连接消息的广播后才从相关服务器获取NTP时间信息,本申请实施例不需要被动的延迟发送系统准备完毕广播,或者是在Launcher中设置等待页面,本申请可以提前获取到NTP时间信息,缩短了用户等待进行交互业务的时间,提高了用户体验。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
本发明实施例可以应用于各类采用安卓系统的终端,尤其适用于没有内置时钟电池和GSM模块的智能设备,如机顶盒中,当然,也可适用于采用双系统的终端,双系统中至少包括安卓操作系统。
安卓(Android)是一个功能齐全且复杂的系统,不仅包括Linux内核,还在内核的基础上运行众多的C++程序和java程序。对于android系统而言,其初始化过程中,是通过init进程启动众多守护进程,以保障Linux基础业务的正常运行。由于其是C语言运行的,可以直接使用CPU和内核资源,其运行速度很快。这些业务完成后,会准备C++的运行环境,然后启动Dalvik虚拟机(它是Google公司为Android系统专门开发的一种java虚拟机),这样就可以启动System server中众多的java服务和程序了,对于带有内置时钟电池和GSM模块的智能终端,如采用安卓系统的智能手机而言,system server服务程序启动后,会发送一个Event_poll_network_time的广播,可以称为poll事件,该poll事件可以去调用缓存中或者在某些存储区域中保存的系统时钟信息,也就是NTP时间信息,该NTP时间信息是通过由时钟电池单独供电的GSM模块从卫星中获取的国际标准时间 UTC(Universal TimeCoordinated,世界协调时,获得UTC的时间来源可以通过原子钟、天文台、卫星,也可以从Internet上获取)。由于机顶盒的天然硬件特性没有内置时钟电池和GSM模块,所以安卓系统虽然发布poll事件的广播,但在机顶盒中,该poll事件不能获取到有效数据,因此对于智能机顶盒类终端设备,只能通过网络Internet从服务器上获取。
由于安卓系统的启动流程的独特设计,其启动过程使用了“事件驱动”(不要主动调用,必要时我会用事件通知你)的机制。也就是说Android不是实时的系统,这就不可避免的带来延时。虽然这样会可能减轻系统的负担,但是NTP这种需要及时响应的程序就可以失去了最佳的运行时机,这是智能机顶盒类终端的业务所不能接受的。
图2给出了本发明实施例提供一种基于android系统的获取NTP时间信息的方法,应用于智能机顶盒中,如图2所示,本方法包括:
步骤S101:检测到System Server系统服务进程启动后,创建NTP时间进程,该NTP时间进程用以获取NTP时间信息;
System Server系统服务进程和系统服务有着重要关系。Android系统中几乎所有的核心服务都在这个进程中,如ActivityManagerService、PowerManagerService和WindowManagerService等。SystemServer 系统进程属于 Android JAVA 层的系统服务模块,这个模块主要功能就是管理供 Android 应用开发的 system service。
在安卓系统终端初始化过程中,System Server系统服务进程是Android系统的核心,它在Dalvik虚拟机启动后立即开始初始化和运行。其它的系统服务在System Server进程的环境中运行。
因此,系统在检测到System Server系统服务进程启动后,会由该系统服务进程单独开辟一个新的进程,也就是NTP时间进程,此NTP时间进程的目的是用以获取NTP时间信息。
但是由于安卓系统分为四层架构,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。在System Server系统服务进程启动后,位于低层的Linux核心层以及系统运行库层已经可以开始正常工作,也就是说,在经过安卓低层运行后,此时只是提供了一些基本的硬件驱动及系统功能,System Server系统服务进程启动后,不能立刻与服务器端进行正常的网络通信,还需要等待位于应用程序框架层的网络协议接口模块可以正常进行Interner通信连接。
可选的,如图3所示的流程图,检测到System Server系统服务进程启动后,创建NTP时间进程的步骤具体包括,
S1011:检测是否接收到调用NTP时间信息的广播,若是,则判断所述SystemServer系统服务进程启动;
由安卓系统初始化的流程可知,安卓系统针对有GSM模块和时钟电池的手机类终端,会在System Server系统服务进程启动后,主动发送一次Event_poll_network_time的广播(可以简称poll事件),该广播的目的是为了从缓存中或者其他存储空间中读取由GSM模块和卫星通信得到的NTP时间信息。当然,在机顶盒类设备是无法通过poll事件获取到有效的NTP时间信息,但是系统可以检测到poll事件后,知道System Server系统服务进程已经启动。当然,也可以不通过poll事件去检测System Server系统服务进程的启动状态,可以根据用户需求直接启动获取NTP时间信息的程序,也可以通过接收到各种的launcher启动前发布的广播,如POLL事件,BOOT_COMPLETED事件等,都可以作为判断System Server系统服务进程启动的条件,在此以POLL事件举例。
S1012:在检测到所述System Server系统服务进程发布调用NTP时间信息的广播后,创建NTP时间进程。
通过检测到poll事件后,表明System Server系统服务进程已经启动,此时,可以调用相关的系统命令,由System Server系统服务进程生成一个新的进程,开始启用一个单独的线程来处理获取NTP时间信息的逻辑,这样可以保证系统CPU能够继续处理其他程序。在这个线程中不再采用接受广播来触发逻辑,而是采用主动询问方式。相比现有技术会更加及时高效。
步骤S102:以预设的访问周期与android系统网络协议接口进行交互,获取网络协议接口的返回值,返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
NTP时间进程创建后,表明启动了一个获取NTP时间信息的程序,此时需要系统自己不停判断网络是否准备好,因此设定了一个访问周期,需要NTP时间进程不停的访问android系统网络协议接口,判断其是否可以正常的进行Internet连接,而判断的手段是获取该网络协议接口的返回值,示例的,“true”表明该网络协议接口可以正常网络通信,而“fault”表明该网络协议接口还未准备好,不能正常通信。当然返回值的设置多种多样,可以使用二进制“1”和“0”进行区分,也可以使用其他字符标识,在此不做限制。目前Android平台可提供多种网络接口。示例的,本申请实施例举例一种 java.net.*(标准java接口),此接口提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。
这样,通过不停的去读取网络协议接口的返回值,则可以实时的获取网络模块的状态,与现有技术相比,将被动的等待系统发送网络连接消息的广播,变成主动的去询问网络协议接口是否可以正常通信,节省了等待广播的时间,缩短了获取NTP时间信息的时长。
步骤S103:根据返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息。
在获取到可用的有效返回值后,NTP时间进程可通过网络协议接口与目标NTP时间服务器建立Internet网络连接,通过向服务器发送NTP时间信息请求,可以获取到准确的第一NTP时间信息。
从上述技术方案中可以看出,本发明实施例通过检测到System Server系统服务进程启动后,创建了一个用于获取NTP时间信息的进程,在该进创程创建后,会以预设的访问周期与android系统网络协议接口进行交互,进而获取到网络协议接口的返回值,该返回值用以标识网络协议接口是否可以建立正常的Internet连接;最后可根据返回值,在确定可以建立正常的Interner网络连接后,与目标NTP时间服务器建立Internet网络连接,从目标NTP时间服务器获取到第一NTP时间信息,由于本申请获取NTP时间信息是在检测到System Server系统服务进程启动后,就开始以主动询问的方式与网络接口进行交互,从而在可以正常建立网络连接时及时从目标NTP时间服务器获取到NTP时间信息,相对于现有技术被动的等待系统在完成全部的系统准备工作后发送的网络连接消息的广播,然后才能再与服务器通信获取时间信息的方式,极大的缩短了机顶盒在开机初始化过程中获取NTP时间信息的时长,缩短了用户等待进行交互业务的时间,提高了用户体验。
实施例二:
在实施例一的基础上,可以通过如下步骤确定目标NTP时间服务器,如图4所示,本实施例包括如下步骤:
T101:获取预存的多个标准NTP时间服务器的权值,所述权值用于标识所述多个标准NTP时间服务器的优先级;
T102:比较多个标准NTP时间服务器的权值,并向具有最大权值的标准NTP时间服务器发送效验报文;
T103:若效验成功,则将具有最大权值的标准NTP时间服务器确定为目标NTP时间服务器,并将具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第一系数后的值;
若效验失败,则将具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第二系数后的值,再与其他标准NTP时间服务器的权值进行比较,获取经比较后具有最大权值的标准NTP时间服务器进行效验,直至效验成功,将最终效验成功的标准NTP时间服务器作为目标NTP时间服务器。
现有的安卓系统中只有一个标准NTP时间服务器的地址,即谷歌提供的2.android.pool.ntp.org。由于此服务器在国外,并且连接时,设置的是20秒超时,一旦此服务器机顶盒没有办法连接,会白白的浪费时间,而且如果3次没有连接成功将进入20天等待,对于机顶盒这种情况是不可接受的。所以针对机顶盒的特性,设置了一种多选择少等待的结构。
优选的,“多选择”是设置3层选择,多个标准NTP时间服务器包括三层标准NTP时间服务器,分别为运营商层NTP时间服务器、地域层NTP时间服务器、以及原生NTP时间服务器。
实际应用中,如图5所示的NTP时间服务器地核结构示意图,可以设置优先层为运营商提供的NTP服务器,次优先层为根据机顶盒所设的区域动态设置的国家或者地域NTP服务器,备选层为android原生的NTP服务器。“少等待”的意思是对应NTP的连接超时尽量采用短时间超时。当然3个层次的优先级会根据权值的分配进行动态调整,由于获取NTP时间使用的系统资源不多,所有只要获取不到NTP的时间,程序就会一直运行下去。
示例的,在进行权值分配时,可以根据需要对三个标准NTP时间服务器的权值分别设置基础权限值为1.0,0.9和0.7。
根据NTP时间服务器的权值向最大权值的NTP时间服务器,也就是权值为1.0的NTP时间服务器发送效验报文,此效验报文的目的是检测是否可以和NTP时间服务器建立正常的数据通信。
若效验成功,则将权值最大的NTP时间服务器也即1.0权值的服务器确定为目标NTP时间服务器,并将所述权值最大的NTP时间服务器的权值修改为乘以预设的第一系数后的值;
第一系数可以为根据需要预设的一个参数,例如1.2,即效验成功,原1.0权值的NTP时间服务器的权值就修改为1.0*1.2=1.2,此修改后的权值依然为最大权值。
若效验失败,则将权值最大的NTP时间服务器的权值修改为乘以预设的第二系数后的值,第二系数也为根据需要预设的一个参数,例如0.8,即效验失败,原1.0权值的NTP时间服务器的权值就修改为1.0*0.8=0.8,此修改后的权值就可能不是最大的权值。
由于修改后的原1.0权值的NTP时间服务器的权值变为0.8,那相应的,原权值为0.9的NTP时间服务器就变成了最大权值的NTP时间服务器,若0.9权值的NTP时间服务器效验成功,则0.9权值的NTP时间服务器的权值就变成0.9*1.2=1.08。若效验失败,则继续比较,直至效验成功。
因为在确定目标NTP时间服务器中加入了权值数据和效验结果进行考虑,这样既保证了原有的地核构造,又将网络不确定的波态性考虑了进来。最后通过每次实际执行的情况来动态的调整地核顺序,成功连接次数较多的NTP时间服务器的权值会越来越大,而成功连接次数较少或者经常连接识别的NTP时间服务器的权值会越来越小,方便用户根据权值的变化选择合适的NTP时间服务器。
实施例三
在实施例一的基础上,如图6所示,在步骤S103:根据返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息的之后还包括:
S104:接收系统发送的网络连接广播,向原生NTP时间服务器发送时钟同步请求;
该步骤与现有技术中获取NTP时间信息的方式相同,是在系统发送systemready广播后,由系统发送出网络连接消息的广播,进而启动NTP时间信息的服务,然后根据预存的NTP服务器地址去连接位于国外的由谷歌提供的原生NTP服务器,向该原生NTP时间服务器发送时钟同步请求。
S105:根据所述请求获取第二NTP时间信息;
S106:比较所述第一NTP时间信息与所述第二NTP时间信息的差值是否在预设的阈值范围,若否,则根据第二NTP时间信息更新所述第一NTP时间信息。
在实际应用中,例如IPTV机顶盒如果利用运营商的NTP服务器提供同步时间信息,即第一NTP时间信息,而运营商的服务器由于服务器配置发生错误或者其他信号干扰等原因,其时钟同步的操作将会得到错误的时间数据,我们可以利用现有技术中从原生NTP时间服务器获取到的第二NTP时间信息作为第一NTP时间信息的效验,提高其安全性和准确性,在两者的差值大于预设阈值时,利用第二NTP时间信息更新第一NTP时间信息,进而保证机顶盒类设备可以获取到准确的NTP时间信息数据,以便开展正确的交互业务,提高了终端设备的可靠性。
实施例四
基于相同构思,本发明实施例还提供了一种基于android系统的获取NTP时间信息的装置,应用于智能机顶盒中,图7示出了本发明实施例所提供的装置的结构示意图,具体包括:
检测模块51,所述检测模块用于检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
交互模块52,所述交互模块用于以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
第一获取模块53,所述第一获取模块用于根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息。
从上述技术方案中可以看出,本发明实施例通过检测模块51检测到SystemServer系统服务进程启动后,创建了一个用于获取NTP时间信息的进程,在该进创程创建后,交互模块52会以预设的访问周期与android系统网络协议接口进行交互,进而获取到网络协议接口的返回值,该返回值用以标识网络协议接口是否可以建立正常的Internet网络连接;最后第一获取模块53可根据返回值,在确定可以建立正常的Interner网络连接后,与目标NTP时间服务器建立Internet网络连接,从目标NTP时间服务器获取到第一NTP时间信息,由于本申请获取NTP时间信息是在检测到System Server系统服务进程启动后,就开始以主动询问的方式与网络接口进行交互,从而在可以正常建立网络连接时及时从目标NTP时间服务器获取到NTP时间信息,相对于现有技术被动的等待系统在完成全部的系统准备工作后发送的网络连接消息的广播,然后才能再与服务器通信获取时间信息的方式,极大的缩短了机顶盒在开机初始化过程中获取NTP时间信息的时长,缩短了用户等待进行交互业务的时间,提高了用户体验。
可选的,检测模块51具体包括:
广播接收模块,用于检测是否接收到调用NTP时间信息的广播,若是,则判断所述System Server系统服务进程启动;
进程创建模块,用于在检测到所述System Server系统服务进程发布调用NTP时间信息的广播后,创建NTP时间进程。
可选的,本申请实施例的装置还包括目标NTP时间服务器获取模块,其包括:
权值获取模块,用于获取预存的多个标准NTP时间服务器的权值,所述权值用于标识所述多个标准NTP时间服务器的优先级;
发送模块,用于比较所述多个标准NTP时间服务器的权值,并向具有最大权值的NTP时间服务器发送效验报文;
效验模块,所述效验模块用于判断若效验成功,则将所述具有最大权值的标准NTP时间服务器确定为目标NTP时间服务器,并将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第一系数后的值;
若效验失败,则将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第二系数后的值,再与其他标准NTP时间服务器的权值进行比较,获取经比较后具有最大权值的标准NTP时间服务器进行效验,直至效验成功,将最终效验成功的标准NTP时间服务器作为目标NTP时间服务器。
可选的,本申请实施例的装置还包括:
时钟同步模块,用以接收系统发送的网络连接广播,向原生NTP时间服务器发送时钟同步请求;
第二NTP时间信息获取模块,用于根据所述请求获取第二NTP时间信息;
比较模块,用于比较所述第一NTP时间信息与所述第二NTP时间信息的差值是否在预设的阈值范围,若否,则根据第二NTP时间信息更新所述第一NTP时间信息。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于android系统的获取NTP时间信息的方法,其特征在于,所述方法包括:
检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息;
其中,所述检测到System Server系统服务进程启动后,创建NTP时间进程的步骤具体包括:
检测是否接收到调用NTP时间信息的广播,若是,则判断所述System Server系统服务进程启动,所述调用NTP时间信息的广播用于从系统存储空间获取时间同步信息;
在检测到所述System Server系统服务进程发布调用NTP时间信息的广播后,创建NTP时间进程。
2.如权利要求1所述的获取NTP时间信息的方法,其特征在于,所述目标NTP时间服务器通过如下步骤获得:
获取预存的多个标准NTP时间服务器的权值,所述权值用于标识所述多个标准NTP时间服务器的优先级;
比较所述多个标准NTP时间服务器的权值,并向具有最大权值的标准NTP时间服务器发送效验报文;
若效验成功,则将所述具有最大权值的标准NTP时间服务器确定为目标NTP时间服务器,并将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第一系数后的值;
若效验失败,则将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第二系数后的值,再与其他标准NTP时间服务器的权值进行比较,获取经比较后具有最大权值的标准NTP时间服务器进行效验,直至效验成功,将最终效验成功的标准NTP时间服务器作为目标NTP时间服务器。
3.如权利要求2所述的获取NTP时间信息的方法,其特征在于,所述多个标准NTP时间服务器包括三层标准NTP时间服务器,分别为运营商层NTP时间服务器、地域层NTP时间服务器、以及原生NTP时间服务器。
4.如权利要求3所述的获取NTP时间信息的方法,其特征在于,所述与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息的步骤之后还包括:
接收系统发送的网络连接广播,向原生NTP时间服务器发送时钟同步请求;
根据所述时钟同步请求从原生NTP时间服务器上获取第二NTP时间信息;
比较所述第一NTP时间信息与所述第二NTP时间信息的差值是否在预设的阈值范围,若否,则根据第二NTP时间信息更新所述第一NTP时间信息。
5.一种基于android系统的获取NTP时间信息的装置,其特征在于,所述装置包括:
检测模块,所述检测模块用于检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
交互模块,所述交互模块用于以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
第一获取模块,所述第一获取模块用于根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一NTP时间信息;
其中,所述检测模块具体包括:
广播接收模块,用于检测是否接收到调用NTP时间信息的广播,若是,则判断所述System Server系统服务进程启动,所述调用NTP时间信息的广播用于从系统存储空间获取时间同步信息;
进程创建模块,用于在检测到所述System Server系统服务进程发布调用NTP时间信息的广播后,创建NTP时间进程。
6.如权利要求5所述的获取NTP时间信息的装置,其特征在于,所述装置还包括目标NTP时间服务器获取模块,所述目标NTP时间服务器获取模块包括:
权值获取模块,用于获取预存的多个标准NTP时间服务器的权值,所述权值用于标识所述多个标准NTP时间服务器的优先级;
发送模块,用于比较所述多个标准NTP时间服务器的权值,并向具有最大权值的NTP时间服务器发送效验报文;
效验模块,所述效验模块用于判断若效验成功,则将所述具有最大权值的标准NTP时间服务器确定为目标NTP时间服务器,并将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第一系数后的值;
若效验失败,则将所述具有最大权值的标准NTP时间服务器的权值修改为乘以预设的第二系数后的值,再与其他标准NTP时间服务器的权值进行比较,获取经比较后具有最大权值的标准NTP时间服务器进行效验,直至效验成功,将最终效验成功的标准NTP时间服务器作为目标NTP时间服务器。
7.如权利要求6所述的获取NTP时间信息的装置,其特征在于,所述多个标准NTP时间服务器包括三层标准NTP时间服务器,分别为运营商层NTP时间服务器、地域层NTP时间服务器、以及原生NTP时间服务器。
8.如权利要求7所述的获取NTP时间信息的装置,其特征在于,所述装置还包括:
时钟同步模块,用以接收系统发送的网络连接广播,向原生NTP时间服务器发送时钟同步请求;
第二NTP时间信息获取模块,用于根据所述时钟同步请求从原生NTP时间服务器上获取第二NTP时间信息;
比较模块,用于比较所述第一NTP时间信息与所述第二NTP时间信息的差值是否在预设的阈值范围,若否,则根据第二NTP时间信息更新所述第一NTP时间信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510618968.5A CN105159728B (zh) | 2015-09-25 | 2015-09-25 | 一种基于android系统的获取NTP时间信息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510618968.5A CN105159728B (zh) | 2015-09-25 | 2015-09-25 | 一种基于android系统的获取NTP时间信息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159728A CN105159728A (zh) | 2015-12-16 |
CN105159728B true CN105159728B (zh) | 2019-09-20 |
Family
ID=54800592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510618968.5A Active CN105159728B (zh) | 2015-09-25 | 2015-09-25 | 一种基于android系统的获取NTP时间信息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159728B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948744B (zh) * | 2017-12-13 | 2021-11-09 | 深圳市雷鸟网络传媒有限公司 | 接口检测方法、接口检测设备及计算机可读存储介质 |
EP3756306A4 (en) | 2018-03-14 | 2021-04-21 | Huawei Technologies Co., Ltd. | DISTRIBUTED NETWORK TIME PROTOCOL |
CN109039518B (zh) * | 2018-08-21 | 2019-11-05 | 四川长虹电器股份有限公司 | Android电视系统的NTP服务器地址智能管理方法 |
CN110413395A (zh) * | 2019-07-30 | 2019-11-05 | 中国工商银行股份有限公司 | 服务调用预热方法、装置、设备及存储介质 |
CN110716762B (zh) * | 2019-09-03 | 2023-05-26 | 晶晨半导体(深圳)有限公司 | 一种操作系统快速进入主页的方法 |
CN112528194A (zh) * | 2020-10-26 | 2021-03-19 | 北京一人一亩田网络科技有限公司 | 移动应用程序的时间获取方法、装置、系统以及介质 |
CN112332939A (zh) * | 2020-11-04 | 2021-02-05 | 广州朗国电子科技有限公司 | 安卓系统的时间同步方法、装置、终端设备及存储介质 |
CN113904749A (zh) * | 2021-09-29 | 2022-01-07 | 北京图菱视频科技有限公司 | 一种基于网络时间协议的机器人时间同步方法及系统 |
CN113992295B (zh) * | 2021-10-29 | 2024-04-02 | 世邦通信股份有限公司 | 多ntp服务器校时实现方法及系统、计算机设备与存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193104A (zh) * | 2006-11-27 | 2008-06-04 | 中兴通讯股份有限公司 | 网元设备同步校时方法 |
CN101364978A (zh) * | 2007-08-10 | 2009-02-11 | 鸿富锦精密工业(深圳)有限公司 | 即时时钟精确度验证系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664725B (zh) * | 2012-04-26 | 2015-09-16 | 成都交大光芒科技股份有限公司 | 客运专线综合监控系统中时钟同步子系统实现方法 |
CN102790774A (zh) * | 2012-07-31 | 2012-11-21 | 北京江南天安科技有限公司 | 一种用于内部网络获取时间信息的方法及装置 |
-
2015
- 2015-09-25 CN CN201510618968.5A patent/CN105159728B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193104A (zh) * | 2006-11-27 | 2008-06-04 | 中兴通讯股份有限公司 | 网元设备同步校时方法 |
CN101364978A (zh) * | 2007-08-10 | 2009-02-11 | 鸿富锦精密工业(深圳)有限公司 | 即时时钟精确度验证系统及方法 |
Non-Patent Citations (1)
Title |
---|
"Android中通过NTP服务器获取时间功能源码分析";CSDN;《https://blog.csdn.net/I2Cbus/article/details/21550901》;20140319;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105159728A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159728B (zh) | 一种基于android系统的获取NTP时间信息的方法和装置 | |
US9635098B2 (en) | Open platform, open platform access system, storage medium, and method for allowing third party application to access open platform | |
CN105656646B (zh) | 一种虚拟网元的部署方法及装置 | |
CN111726399B (zh) | Docker容器安全访问方法及装置 | |
WO2017148268A1 (zh) | 基于分布式系统的任务处理方法、装置和系统 | |
CN110825539A (zh) | 业务处理方法及装置 | |
CN111143207B (zh) | 一种在移动端查看模型训练通知和训练日志的方法 | |
CN105389160A (zh) | 一种信息发布方法及装置 | |
CN109032815A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN106600275A (zh) | 一种风险识别方法及装置 | |
CN112351471A (zh) | 设备接入网关的方法、网关设备及计算机可读存储介质 | |
CN108076042A (zh) | 用户信息获取方法、服务器及计算机可读介质 | |
CN102664945B (zh) | 针对超时连接的文件下载方法、装置和系统 | |
CN102622254B (zh) | 电视机宕机处理方法和系统 | |
CN110324722A (zh) | 直播间中数据的获取方法、装置、设备和存储介质 | |
CN109739666A (zh) | 单例方法的跨进程调用方法、装置、设备及存储介质 | |
CN111327447A (zh) | 一种分布式系统、仲裁方法、节点设备及存储介质 | |
CN111770522B (zh) | 数据拨号异常的识别方法、装置、终端及存储介质 | |
US20220038444A1 (en) | Cloud device, application processing method, electronic device and storage medium | |
CN111064675B (zh) | 访问流量控制方法、装置、网络设备及存储介质 | |
CN113867831A (zh) | 智能设备控制方法、智能设备、存储介质及电子设备 | |
CN113434234A (zh) | 页面跳转方法、装置、计算机可读存储介质及处理器 | |
CN114896018B (zh) | 一种bmc应用界面语言切换的方法、装置及介质 | |
CN109343982A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
Zhang et al. | Design and implementation of a third-party developers auditing system based on open API |
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 |