安卓系统的A-GPS参数保存在/system/etc/gps.conf中,一般国行的手机给的默认参数还算比较适合国内网络,那些所谓的港行、美水之类的,又或者是国行刷了国外ROM的,这个参数就不太好用了。那些国外ROM和机型,在国内使用的话,A-GPS定位往往需要比较长的时间。综合了网上常见的解决方案,加上自己的一点优化,现在可以说优化的比较完美了。

先来看看这个文件内容,大体上是这样的:

NTP_SERVER=cn.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
DEBUG_LEVEL = 5
CAPABILITIES=0x7
POSITION_MODE=1
INTERMEDIATE_POS=0
SUPL_PORT=7275
SUPL_VER=0x10000
SUPL_HOST=suplcn.sirf.com

这是网上常见的一种改法,第一行加个“cn.”就可以使用国内的服务器辅助定位,速度会有所提升。至于XTRA_SERVER,这三个服务器都不在国内,最快的一个PING也在300ms以上。加载的这个xtra.bin是星图文件,大小在30-60KB左右,每周都会有变化。手机网络,尤其是2G网络,本身就比较慢,如果再从线路不佳的服务器上下载一个50KB的文件,必然影响手机的定位速度。为此我想了个方法,借助百度的BAE,把这个文件缓存在百度的云存储(BCS)上,并且每8小时去源服务器更新此文件。如果有手机请求此文件,则直接发送此文件,从而加快速度,也提高成功率。

如何使用:只要将

"XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin"

替换为:

"XTRA_SERVER_1=http://gps.izhuyue.com/xtra.bin"

效果测试:

电信已经普及3G了,先不管它,移动联通还有网速较慢的2G,PING一下服务器看看速度如何

先来看看没修改之前的服务器:那两个1ms的PING的IP居然是127.0.0.1,上海联通和安徽移动定位能快了才怪呢

gpsping-1

再看看修改之后的:看看,人家百度确实不是白给的,这个速度如果定位还慢的话那就只能怪GPS信号不行了

gpsping最后声明:这个域名是我临时绑定上去的哈,不要随意使用,哪天突然不好用了可不能怪我

标签: Android, GPS

已有 18 条评论

  1. 学习了

  2. 实用!!!!

    1. 就是要备案,备案麻烦了点,备案后就爽了

  3. 这速度 很给力啊 1秒

  4. 没用过安卓 围观下

  5. 加速GPS定位可以增强哪些功能?

    1. 功能不变,加速定位的意思就是。。。本来需要1-2分钟,现在变成20秒内了,等待时间短。。。

  6. 有一种感觉,博主是位高端大气上档次的感觉啊!

添加新评论