一种基于android系统的获取NTP时间信息的方法和装置的制造方法

文档序号:8942887阅读:452来源:国知局
一种基于android系统的获取NTP时间信息的方法和装置的制造方法
【技术领域】
[0001]本发明涉及安卓系统领域,尤其涉及一种基于android系统的获取NTP时间信息的方法和装置。
【背景技术】
[0002]随着技术的不断发展,以安卓(android)架构为基础的OTT机顶盒和IPTV机顶盒等智能终端的各项业务也逐渐完善起来,其中NTP (Network Time Protocol,网络时间协议)时间信息对于智能机顶盒服务中一些重要交互式业务非常重要,例如时移业务、回看业务、推荐节目或者天气信息业务等,如果NTP时间信息不准确会造成机顶盒的一些业务无法正常运行,而由于机顶盒的天然硬件特性,即在机顶盒中没有内置时钟电池和GSM模块,因此,机顶盒不能像手机等智能终端使用GSM服务去获取NTP时间信息,只能通过网络服务器去请求正确的NTP时间信息。
[0003]如图1所示,是现有技术中Android系统智能机顶盒启动的简要流程,其中,System Server服务是启动用户可见程序的关键程序,System Server服务会启动包括硬件服务和系统框架核心平台服务,而android系统是通过“事件驱动”机制发出一些关键消息告知系统去启动相关的程序,比如获取NTP时间信息的程序,当SystemServer加载了所有的系统服务后就意味着系统就准备好了,它会向所有服务发送一个系统准备完毕(systemready)广播,在发送系统完成启动的广播后,一方面会进入用户home launcher界面,另一方面会发送网络连接消息的广播,网络通信模块在接收到网络连接消息的广播后,会启动获取NTP时间信息的服务,根据预存的NTP服务器地址去连接位于国外的由谷歌提供的原生NTP服务器,进而获取准确的NTP时间信息。
[0004]但是,现有的智能机顶盒去获取NTP时间信息受到Android启动流程的影响,不可避免的带来延时,即启动获取NTP时间信息的服务是在获取到系统发送的网络连接消息后,而此时用户Launcher界面早已显示出来,但是NTP这种需要及时响应的程序就失去了最佳的运行时机,一些厂商为了解决该问题,都是在没有获取到准确的NTP时间时,被动的延迟发送系统准备完毕(systemready)广播,或者是在Launcher中设置等待页面,直到NTP时间能够正确显示,用户才能正常的使用相关交互业务,但是这样的解决手段只是简单的采用规避的方式,并没有从底层解决该问题,从而增加了系统启动的时间或者用户进入业务的时间,影响了用户体验。

【发明内容】

[0005]本申请实施例通过提供一种基于android系统的获取NTP时间信息的方法和装置,解决了现有技术中采用安卓系统的智能机顶盒设备获取NTP时间信息是在接收到网络连接的广播后才从服务器获取NTP时间信息,本申请实施例不需要被动的延迟发送系统准备完毕广播,或者是在Launcher中设置等待页面,本申请可以提前获取到NTP时间信息,缩短了用户等待进行交互业务的时间,提高了用户体验。
[0006]本发明实施例提供了一种基于android系统的获取NTP时间信息的方法,所述方法包括:
检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一 NTP时间
?目息O
[0007]本发明实施例还提供了一种基于android系统的获取NTP时间信息的装置,所述装置包括:
检测模块,所述检测模块用于检测到System Server系统服务进程启动后,创建NTP时间进程,所述NTP时间进程用以获取NTP时间信息;
交互模块,所述交互模块用于以预设的访问周期与所述android系统网络协议接口进行交互,获取所述网络协议接口的返回值,所述返回值用以标识所述网络协议接口是否可以建立正常的Internet网络连接;
第一获取模块,所述第一获取模块用于根据所述返回值,与目标NTP时间服务器建立Internet网络连接,获取第一 NTP时间信息。
[0008]从上述技术方案中可以看出,本发明实施例通过检测到System Server系统服务进程启动后,创建了一个用于获取NTP时间信息的进程,在该进创程创建后,会以预设的访问周期与android系统网络协议接口进行交互,进而获取到网络协议接口的返回值,该返回值用以标识网络协议接口是否可以建立正常的Internet网络连接;最后可根据返回值,在确定可以建立正常的Interner网络连接后,与目标NTP时间服务器建立Internet网络连接,从目标NTP时间服务器获取到第一 NTP时间信息,由于本申请获取NTP时间信息是在检测到System Server系统服务进程启动后,就开始以主动询问的方式与网络接口进行交互,从而在可以正常建立网络连接时及时从目标NTP时间服务器获取到NTP时间信息,相对于现有技术被动的等待系统在完成全部的系统准备工作后发送的网络连接消息的广播,然后才能以与服务器通信获取时间信息的方式,极大的缩短了机顶盒在开机初始化过程中获取NTP时间信息的时长,缩短了用户等待进行交互业务的时间,提高了用户体验。
【附图说明】
[0009]图1为本申请现有技术中Android系统智能机顶盒启动的简要流程图;
图2为本申请实施例一中获取NTP时间信息的方法的流程图;
图3为本申请实施例一中检测到System Server系统服务进程启动后,创建NTP时间进程方法的流程图;
图4为本申请实施例二中确定目标NTP时间服务器的方法的流程图;
图5为本申请实施例二中NTP时间服务器地核结构示意图;
图6为本申请实施例三中获取NTP时间信息的方法的流程图;
图7为本申请实施例四中获取NTP时间信息的装置的结构示意图。
【具体实施方式】
[0010]本申请实施例通过提供一种基于android系统的获取NTP时间信息的方法和装置,解决了现有技术中采用安卓系统的智能机顶盒设备获取NTP时间信息是在接收到网络连接消息的广播后才从相关服务器获取NTP时间信息,本申请实施例不需要被动的延迟发送系统准备完毕广播,或者是在Launcher中设置等待页面,本申请可以提前获取到NTP时间信息,缩短了用户等待进行交互业务的时间,提高了用户体验。
[0011]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0012]实施例一
本发明实施例可以应用于各类采用安卓系统的终端,尤其适用于没有内置时钟电池和GSM模块的智能设备,如机顶盒中,当然,也可适用于采用双系统的终端,双系统中至少包括安卓操作系统。
[0013]安卓(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 (UniversalTime Coordinated,世界协调时,获得UTC的时间来源可以通过原子钟、天文台、卫星,也可以从Internet上获取)。由于机顶盒的天然硬件特性没有内置时钟电池和GSM模块,所以安卓系统虽然发布poll事件的广播,但
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1