分享

谷歌Android系统的GPS是怎样运行的? | Mytiankong – 智能手机、平板电脑技术分享!

 zcnudt的图书馆 2013-11-16

一切归于基础。我们许多人都在忙着学习更多的关于Android的知识,而很多高手们都愿意把他们的知识传授给我们所有的Android用户而帮助我们理直接地进入到Android的美妙世界。现在,这儿有一个教程,它有助于解释在Android设备上的GPS是如何工作的。

XDA-Developers开发者greatanjum已经写了一个非常不错的指导来让大家了解GPS在Android设备上是如何运行的。它涵盖了从底层到更深级,从硬件到用户应用程序的各个方面。完整的注释包括:

  • GPS芯片
  • GPS驱动
  • GL引擎
  • Android构架
  • 用户应用程序

对于那些想要了解更多关于GPS的用户们而言,这可能是一个非常有用和有趣的指南。我们当中,可能有着许多人有GPS的问题,通常在新的基于AOSP版本的Rom发布前,GPS都以一个Bugs形式而存在,所以,这个教程或许可以帮助某些用户们解决一些GPS方面的问题。除了作为一个指南外,教程也包括了一些受欢迎的和容易的修复方案,如果某位用户的Android设备的GPS确实有问题,也可以尝试着解决。

现在让我们理解每一样东西

GPS芯片

直接与GPS卫星通讯的射频接收机。

GPS驱动

GPS驱动系统软件,使用低阶API和GPS芯片通讯。在系统层上它可能包含一个或多个加载在/System/Lib/hw//Vendor/Lib/hw/目录的文件,文件名称通常前缀为GPS而后缀为So(例如,gps.default.so、gps.aries.so等等)主要取决Android版本与智能平台的差异有所不同。

GL引擎

实际上这是整个系统的核心,在系统层上它由加载在/system/bin目录名类似于glgps或gpsd的文件组成(平台特定)。

GL引擎使用配置参数运行,由.xml 和.conf 文件构成(例如,glconfig.xml、gps.xml、Jupiter.xml、gpsconfig.xml、gps.conf、secgps.conf等等)。实际位置和文件的名称也取决于Android版本与平台,但是,他们大多是在/system/etc、/system/etc/gps、/vendor/etc/、/data/gps等等。取决于配置和平台,它需要源于发射塔的初始位置信息, 然后它读取NVRAM(Non-volatile memory,非易失性存储器),NVRAM信息主要在/有着.sto扩展的文件(例如,gldata.sto)与附加数据文件(如lto.dat、xtra.bin、epo.dat等等)的data/gps目录。

GL引擎使用所有的这些信息指示并协助GPS驱动,大多GL引擎都可以探测到多个GPS卫星而为了GPS驱动的规划,但对于锁定,它还需要一些额外的信息(定时、应用周期管理等),它可以从GPS卫星下载(独立模式:速度非常缓慢,比特/秒)或利用互联网来访问SUPL(Secure User Plane Location,安全用户层面定位)/NTP(Network Time Protocol,网络定时协议)服务器(基于主存储器的协助,速度快,兆位/秒)

当所有的这些都激活后,它将保存所有数据在NVRAM中,以供将来调用。

Android构架

它包括像使用GL引擎提供服务到用户应用程序的位置管理器等Android框架。

用户应用程序

位置服务应用,像Google Maps(谷歌地图)、Sygic(导航系统)、Navigon(路航)、TomTom(通腾)等等。

在心里记住以上所有的内容了吗?现在让我们看看市场中GPS Faster Fix Solutions(更快的解决方案)是如何做的。

更快的解决方案,像GPS状态、GPS工具组、GPS测试、GPS侦测等等,主要为处理两件事:

  • 下载XTRA数据(lto.dat、xtra.bin、epo.dat、gldata.sto等)
  • 修改GPS.conf(更改这个系统级的配置文件,你当然要取得你的Android设备的Root权限)

尽管如此,它并不完全是这样的。

设备使用谷歌作为安全用户层面定位服务器,但大多数设备由于无效或过期的证书无法使用它。在这样的情况中,即当谷歌服务器拒绝协助请求时,用户应该使用SUPL.NOKIA.COM:7275,这虽然缓慢,但比什么都没有更好。

如果GL引擎或GPS驱动有问题,则可能需要重新写入它,但首先得确保物理硬件GPS芯片没有问题。

对于其他的配置参数,用户们常可以修改xml配置文件,比如,至少你可以获得调试日志来了解错误的发展方向,你可以使用下面的参数
cLogEnabled="true" acLogDirectory="/sdcard/gps" and LogPriMask, LogFacMask and also DEBUG_LEVEL(gps.conf

当然,无论怎样,你首先得备份原始的文件。

希望每位用户使用这个指南后都能轻松地提高他们的GPS性能。

Nuffnang Ads

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多