我最近知道了一个gps.conf
文件在/system/etc/
目录中。似乎将NTP_SERVER值调整到更接近通常位置的NTP服务器改进了TTFF。
读取LocationProvider
类中的源代码,似乎是在启动时,从NTP服务器检索时间,并在计算中“注入”时间。AFAIK每个GPS卫星都有一个非常精确的原子钟,星座中的每一个都与所谓的"GPS时间“同步。一旦接收机有4颗或4颗以上的卫星,它就用某种方法求解一个方程,其中存在四个未知数: x,y,z,b,其中(x,y,z)是接收机的位置,b是接收机内部时钟与(正确的) GPS时间之间的时间差。一旦它有一个修复,接收时钟是同步与正确的时间。(如果我错了,请纠正我)。
到目前为止,我对NTP时间注入的工作方式有一些疑问:
发布于 2011-12-07 23:16:51
好吧,查一下维基百科和其他一些来源,让我来猜测一下。
我希望这至少有点道理;-)
发布于 2015-06-15 08:19:56
我的回答将更多地集中在你问题的NTP方面。对于GPS,我研究过mirabilos在评论中提到的这份PDF文件。
根据该文件,对于全球定位系统接收机的暖启动,你需要知道时间在20岁以内,位置在100公里以内,速度在25米/秒以内,以及年历数据在最多几周前。你仍然需要从每颗卫星下载对视仪数据,根据GPS接收器类型,这需要30秒到3分钟。
对于热启动,还需要对视表数据(它们的有效期为4小时)。它们也可以通过A获得(见下文)。
NTP协议使用从原始时间源开始的服务器层次结构- GPS、原子钟、.这就是所谓的层-0源。直接连接到此源的NTP服务器称为层-1.服务器使用这个作为它的上游服务器是层-2等等。您需要特殊的调优硬件,以实现小于1毫秒的错误,即使是对地层-1服务器(由于CPU中断延迟,串口延迟,温度振荡器变化)。
对于正常网络上的正常HW (例如,不饱和的DSL链路),您可以达到大约10 ms的精度。例如,NTP池认为它的服务器是有效的,如果服务器在100 ms内精确的话,它们就足够好了。来自NTP的时间的准确性并不取决于您和NTP服务器之间的地理位置,而是更多地取决于该服务器的阶层、质量以及服务器基于网络拓扑的距离。
Android手机通常在至少1秒的准确度内知道时间。通过GSM网络进行定期时间同步,或者如果数据连接(wifi或蜂窝)可用,也可以通过NTP。
对于上述应用程序FasterGPS -将您的NTP服务器更改为更好的服务器将无助于您拥有更快的TTFF。为此,您需要在纳秒内有精确的时间,这在NTP中是不可能的。只有GPS芯片本身才能精确地跟踪时间。在android上有更快的TTFF是有帮助的:
发布于 2014-04-16 10:10:11
伊恩的评论是正确的,答案与GPS接收器的实际工作方式有关。如果接收机对接收机时钟偏差有更准确的估计,它将更快地得到解决方案。许多接收机实现了一种迭代解决方案,它依赖于对接收机的位置和时钟偏差的初始估计。如果这些估计值已经接近真实值,则需要更少的迭代。这只是TTFF减少的部分原因。还有其他重要因素。如果初始位置和时间估计良好,那么获取卫星信号的搜索过程将花费更少的时间,因为接收机可以计算哪些卫星应该是可见的,并且它还可以估计每个信号相对于接收机的参考帧所经历的近似多普勒频移。
https://stackoverflow.com/questions/8308412
复制相似问题