APP下载

基于Android智能手机平台的GPS开发

2012-10-19

大众科技 2012年9期
关键词:接收器应用程序辅助

周 峰

(苏州工业职业技术学院,江苏 苏州 215104)

基于Android智能手机平台的GPS开发

周 峰

(苏州工业职业技术学院,江苏 苏州 215104)

通过对Android智能手机平台架构,在Android的智能手机平台上,集成了GPS的硬件模块,实现了GPS的数据通信,GPS的数据解析,以及实现Google地图的用户界面,对GPS数据通信层,以及网络编程应用,给出了整体解决方案。

Android;全球定位系统;导航

1 引言

随着移动通讯产业的发展,手机的生产和使用量有了大幅的提高。如何进一步提升手机的应用价值、开发新的功能,已成为手机发展的热点。当前,手机GPS已在个人导航定位方面发挥了巨大作用,除此以外,它在工程测量、设施搜索、定位监控、紧急援助等方面也有很大的发展空间。Android是一款全新的智能手机操作系统,它开放性好、功能扩展性强,能很好地支持基于定位的应用程序开发。

2 Android平台系统架构

整个Android平台分为四部分,它们分别是:核心应用程序、应用程序框架和组件、Java运行环境、Linux内核。

2.1 核心应用程序

Android附带了一些核心应用程序,包括E-mail客户端程序、短信程序、日历、地图、浏览器和通讯录等。所有的Android应用程序都用Java语言进行开发。

2.2 应用程序框架和组件

Android应用程序的开发是基于程序框架和组件的,开发人员拥有同核心应用程序一样的API访问权限。

2.3 Java运行环境

所有Android程序都有各自的进程,这些进程运行在Dalvik虚拟机上。Dalvik虚拟机将所有可执行文件转化为.dex格式,实现了内存优化。

2.4 Linux内核

Android依赖于Linux 2.6提供的系统服务,包括安全、内存管理、进程管理、网络栈和驱动模型等。

3 基于CMCC SUPL协议的辅助GPS

3.1 AGPS的工作原理

AGPS,即辅助GPS(AGPS)将GPS与无线手机组合在一起,利用辅助GPS进行定位,传输一些辅助数据,这样可以大大缩小代码搜索窗口和频率搜索窗口,使得定位时间降至几秒钟。辅助GPS是网络辅助GPS,与独立的GPS相比,以网络为核心的方法能够提供更快的首次锁定位置的时间TTFF,它使用固定位置GPS接收机获得移动终端的补充信息数据,辅助数据使移动用户接收机不必译码实际消息就可以进行定时测量。定位原理图如图1所示:

图1 AGPS定位原理图

其工作流程是:

(1)AGPS手机首先将本身的基站地址通过网络传输到位置服务器;

(2)位置服务器根据该手机的大概位置传输与该位置相关的GPS辅助信息(包含GPS的星历和方位俯仰角等)到手机;

(3)该手机的AGPS模块根据辅助信息(以提升GPS信号的第一锁定时间TTFF能力)接收GPS原始信号;

(4)位置服务器根据传来的GPS伪距信息和来自其他定位设备(如差分GPS基准站等)的辅助信息完成对GPS信息的处理,并估算该手机的位置;位置服务器将该手机的位置通过网络传输到定位网关或应用平台。

3.2 AGPS定位基本流程

(1)搜索卫星

AGPS定位仍然是基于GPS的,因此定位的首要步骤还是先搜索到当前地区的可用GPS卫星,AGPS通过网络直接下载当前地区的可用卫星信息,提高了搜星速度。同时也减小了设备的电量消耗。

图2 AGPS定位搜索基本流程

如图2所示,AGPS中从定位启动到GPS接收器找到可用卫星的基本流程如下:

1)设备从蜂窝基站获取到当前所在的小区位置;

2)设备通过蜂窝网络将当前蜂窝小区位置传送给网络中的AGPS位置服务器;

3)APGS位置服务器根据当前小区位置查询该区域当前可用的卫星信息(包括卫星的频段、方位、仰角等相关信息),并返回给设备;

4)GPS接收器根据得到的可用卫星信息,可以快速找到当前可用的GPS卫星。至此,GPS接收器已经可正常接收GPS信号,GPS初始化过程结束。AGPS对定位速度的提高就主要体现在此过程中。

(2)计算位置

GPS接收器一旦找到四颗以上的可用卫星,就可以开始接收卫星信号实现定位。接下来的过程根据位置计算所在端的不同,通常有两种方案:在移动设备端进行计算的MS-Based方式和在网络端进行计算的MS-Assisted方式。

MS-Based方式中,接下来过程与传统GPS定位完全相同,GPS接收器接收原始GPS信号,解调并进行一定处理,根据处理后的信息进行位置计算,得到最终的位置坐标。

在此过程中可以看到,在使用MS-Assisted方式时,由于辅助定位信息的加入,可以取得更高的定位精度;同时,可以很大程度上克服弱GPS信号情况下的无法定位或精度降低的问题;将复杂计算转移到网络端,也可以很大程度上减小设备的电量消耗。

4 Android GPS HAL

4.1 GPS HAL introduction

HAL(hardware abstraction layer 硬件抽象层)存在的目的在于让android framework与linux device driver分离开来。上层应用通过Dalvik VM(Android虚拟机)与core services(如sensor service,camera service等)来加载动态库文件(*.so),这里的so文件指的是HAL的实现,core service通过JNI接口调用HAL层提供的接口,这样就实现了android 应用程序对硬件的操作。

HAL实现仍然是以加载动态链接库的方式来与 linux device driver通信,不过libhardware屏蔽了具体的加载细节,每种应用以HAL stub的概念呈现给JNI层,一个HAL stub编译成一个动态链接库文件. 移植一个新的HAL实现需要开发人员编写 HAL module(stub),上层应用通过libhardware获取HAL module的一系列回调函数(callback ops),这一系列回调函数直接与底层的linux device driver通信(一般是通过读写设备文件来实现的)。

4.2 GPS的HAL实现

GPS 的 HAL 实现主要工作就是填充一个 GpsInterface结构,android应用启动 LOCATION_SERVICE时,将检测系统是否支持GPS应用,若支持GPS,则在JNI层初始化GPS设备时将返回一个 GpsInterface结构,然后通过JNI层的回调函数将GPS信息发送给framework层,调用过程如图3所示:

GpsInterface->Init初始化当前GPS,当用户点击GPS APP开始从而调用GpsInterface->Start后,启用读线程通过epoll检测GPS设备文件的状态,若收到数据则读取NEMA数据,将数据解析后,根据解析后的数据填充 GpsStatus,GpsLocation和GpsSvInfo结构,然后调用相应的JNI层在Init时传进来的回调函数,service部分的代码将自动更新GPS信息。

图3 JNI层回调函数调用过程

5 小结

本文在Android操作系统的智能于机上实现了GPS的应用开发,利用终端各功能模块的整合,配合相应的软件驱动,完成指定的功能,如对定位信息进行数据处理,计算所在位置的经度,纬度,海拔,速度和时间等。

GPS系统具有全天候、全球覆盖、三维定速、定时、高精度、快速、省时、高效率、应用广泛、多功能等特点,因此可广泛应用于陆地、海洋以及航空航天等各种环境下。而实时的Google Map地图的使用,更能直观地将丰富的城市地图、全国的公路网图、等地理信息同步地在智能手机上显示出来,方便使用者(不仅仅是汽车驾驶员)进行查询参考,这是以后Android GPS应用开发的重要发展方向。

[1] 黄智伟.GPS接收机电路设计[M].国防工业出版社, 2005.6.

[2] 鲁郁.GPS全球定位接收机--原理与软件实现[M].电子工业出版社,2009.6.

[3] 吴亚峰.Android编程典型实例与项目开发[M].电子工业出版社,2011.10.

GPS development of intelligent mobile phone platform Based on the Android

Through intelligent mobile phone platform structure for the Android, integrated with GPS hardware module, the GPS data communication, GPS data analysis, as well as the realization of Google map user interface were realized. For GPS data communication layer, as well as network programming application, the overall solution were given.

Android; Global positioning system; Navigation

TP216

A

1008-1151(2012)09-0031-02

2012-08-16

周峰(1979-),苏州工业职业技术学院教师,从事电子、电路的教学和研究。

猜你喜欢

接收器应用程序辅助
小议灵活构造辅助函数
倒开水辅助装置
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
JXG-50S型相敏轨道电路接收器自动测试台
减压辅助法制备PPDO
新型二取二结构的25Hz微电子相敏接收器数据处理方法研究
提高车辆响应的转向辅助控制系统
IDT推出超紧凑型无线电源接收器,可节省70%板面积
三星电子将开设应用程序下载商店