一切归于基础。我们许多人都在忙着学习更多的关于Android的知识,而很多高手们都愿意把他们的知识传授给我们所有的Android用户而帮助我们理直接地进入到Android的美妙世界。现在,这儿有一个教程,它有助于解释在Android设备上的GPS是如何工作的。 XDA-Developers开发者greatanjum已经写了一个非常不错的指导来让大家了解GPS在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侦测等等,主要为处理两件事:
尽管如此,它并不完全是这样的。 设备使用谷歌作为安全用户层面定位服务器,但大多数设备由于无效或过期的证书无法使用它。在这样的情况中,即当谷歌服务器拒绝协助请求时,用户应该使用SUPL.NOKIA.COM:7275,这虽然缓慢,但比什么都没有更好。 如果GL引擎或GPS驱动有问题,则可能需要重新写入它,但首先得确保物理硬件GPS芯片没有问题。 对于其他的配置参数,用户们常可以修改xml配置文件,比如,至少你可以获得调试日志来了解错误的发展方向,你可以使用下面的参数 当然,无论怎样,你首先得备份原始的文件。 希望每位用户使用这个指南后都能轻松地提高他们的GPS性能。 |
|
来自: zcnudt的图书馆 > 《待分类1》