APP下载

基于Android手机的地图应用设计与开发

2011-04-18吴林熊滔蔡永香

城市勘测 2011年2期
关键词:手机用户数据库用户

吴林,熊滔,蔡永香

(长江大学地球科学学院,湖北荆州 434023)

基于Android手机的地图应用设计与开发

吴林∗,熊滔,蔡永香

(长江大学地球科学学院,湖北荆州 434023)

介绍了Google发布的新一代智能手机平台Android的系统架构,并在分析手机用户和商家需求的基础上进行了相应的功能设计和数据库设计,利用Google的地图应用接口和XML等技术,实现了基于Android手机平台的地图应用的基本功能。

Android手机;地图应用;Google Map

1 引 言

随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间[1]。Google为此于2007年11月推出了一个专为移动设备设计的软件平台——Android[4],并融合了谷歌地图技术,支持地图服务的应用开发。

目前的地图服务主要以使用单机或者网页方式实现,这些方式不适合在户外旅游等场合下进行,给用户造成了很多地不便。而手机地图服务就能很好解决这个问题,Android平台提供给普通开发者非常灵活的地图展示与控制功能,这将使地图服务的设计与实现有了更好的平台。另外,Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机地图服务的普及作出贡献[5]。

2 Android平台的架构

Android平台整体自底向上由以下四个层次组成: Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层,如图1所示。

(1)Linux内核层:Android基于Linux Version 2.6.23内核开发的,主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为一虚拟的中间层,该层位于硬件与其他的软件层之间。

(2)Android运行时库和其他库层:Android运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持且大部分为开源代码,如采用的数据库为SQLite。Android选择它作为移动终端的嵌入式数据库有以下优点,它无需安装和管理配置,它是一个存储在单一磁盘文件中的完整的数据库,体积小只有250KB但支持数据库大小至2TB提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。

图1 Android平台架构

(3)应用框架层:在应用框架Android开发人员可以跟那些核心应用一样拥有访问框架APIs的全部权限。应用的系结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。

(4)应用程序层:Android本身会附带一些核心的应用程序,包括E-mail客户端、短信程序、日历、地图、浏览器、通讯录等等,目前所有的应用程序都是由Java语言开发的。

3 系统设计

3.1 需求分析

手机的地图应用主要功能是以图形、文字的形式为用户提供地图服务,并提供友好、方便、快捷的操作界面。其功能需求从用户和商家两方面来进行分析设计,用户方需求包括:

(1)地图控制:能够对地图进行放大、缩小和移动;

(2)实时定位:能够将用户当前位置在地图上标注出来,并能随着位置的变化而实时更新,即在地图上定位用户的当前位置;

(3)路径导航:能够根据用户的当前位置与目的地,为用户规划路径,并在地图上显示,进行实时路径引导;

(4)轨迹跟踪:能够在地图上显示出用户的行驶路径,并给出相应的行驶距离;

(5)资讯查询:能够根据用户的当前位置,查询用户附近所需要的信息,比如附近的影院信息、商家信息等;

(6)好友通信:能够在地图上显示出好友的位置,并能够进行聊天通信;

(7)日志备忘:有日志记录功能。

所有这些需求实现,都要求操作简单,符合手机使用者的习惯。

商家需要能够根据用户的位置,进行促销信息的广告推送。

3.2 功能设计

手机地图服务扮演着与用户直接交互并提供服务的重要角色,它需要提供友好的、方便的用户操作界面,接收用户的各项操作并将这些操作转化成与之对应的命令,采用用户活动的方式完成各个服务逻辑流程。按照需求分析,其功能设计为:

(1)登陆注册功能:已注册用户登录,非注册用户先注册再登录。只有注册并登录的用户才可以使用该系统。

(2)信息查询功能:自动根据该手机用户GPS定位(没有GPS的手机用户可利用基站进行模糊定位),按照用户的位置,查询用户需要的附近信息。该功能让用户实时了解自己的具体位置和环境。

(3)路径分析功能:用户提供路径分析的起始、终点信息,进行分析后的结果以文本结合地图方式进行显示。该功能主要为方便用户在一个自己不熟悉的地方为用户提供道路导航信息。

(4)广告推送功能:在GPS(或者利用基站CellId判断用户位置)开启情况下,当用户进入某商场(或其他服务场所)附近辐射区域范围时,该商场将产品、促销活动的相关服务信息以短消息方式发送到该手机用户,进行广告精准推送。

(5)好友聊天功能:好友之间可聊天,并将附近一定区域内的好友在地图上定位显示,用户可获取附近区域内好友的位置信息。

(6)数据搜集功能:用户可以上传地标信息、添加属性信息,根据用户提供的数据量多少,采取某种方式给予奖励,从而为数据库添加更多的信息。该功能还可以利用有GPS的手机用户的定位充实我们的CellId库,从而为没有GPS的手机用户提供定位信息。

(7)用户要事备忘功能,即手机记事本功能。用户可以记录一些重要事情以备忘。

3.3 数据库设计

此系统所用数据是由Google提供的基础底图,和自己收集的道路网数据,商场、影院信息组成。其中空间数据包括基础底图,道路网数据,商场、影院的位置信息;属性数据包括各种地物名称,影院影片信息,商家的服务打折促销信息等。

(1)数据存储设计

Android提供了一些方式来存取数据。一是文件方式,数据以文件的方式存储在设备或其他移动媒介上;二是数据库方式,Android有SQLite数据库的API,应用程序可以创建和使用SQLite数据库;三是网络方式:Android还支持使用网络存取数据的方式。除此以外,Android还可以向其他应用程序请求并获得数据[7]。

由于该系统是进行原型设计,数据量不太大,只有基础底图和少量测试数据,基础底图是利用Google API获取的Google地图,其他测试数据均采用文件存储的方式。各数据表详情如表1所示。

数据表信息 表1

(2)数据交互设计

目前的手机平台存在两方面限制:

①手机的计算能力与存储容量有限。

②网络传输的不稳定性与不安全。

因此,根据实际情况采用瘦手机客户端、胖服务器端是比较合适的解决方案。具体如下:

客户端:显示界面并进行简单计算和存储少量数据;

服务器端:进行复杂的计算并进行数据访问,存放空间数据和复杂的属性数据;

手机与服务端数据实时交互:利用Web Service在pc服务端为手机端提供运算与存储服务,而手机端软件充当信息终端。手机端与服务端的交互过程如图2所示。

图2 手机端与服务端的交互示意图

4 Android手机的地图应用设计与开发系统的实现

我们采用的集成开发环境为Eclipse 3.4.1,安装的SDK为Java Development Kit(JDK)v6.0,Android SDK 1.0r2以上,同时需要安装集成环境的Android开发插件ADT。当所有开发环境搭建好之后,还需申请Android Maps API key,并且在XML布局文件中进行配置:

然后只需使用MapView(com.google.Andriod.maps. MapView)对象,就能调用Google地图,并进行应用开发。

本系统基于Android手机平台,初步实现了地图应用的基本功能:地图的浏览与设置、基本点位信息查询、道路信息查询与导航、基于地图的QQ聊天功能、基于地图的广告自动推送功能。下面是部分功能展示。

4.1 路径导航的展示

路径导航功能就是当手机用户在一个不熟悉的地方,想查询起点和终点之间的路径,可以用此功能完成。图3表示从长江大学西校区出发A点,到长江大学南校区的路径导航,图中实线表示的是已经行走的轨迹,桃红线表示的是导航的路径,B点表示用户现在所在的位置。

图3 路径导航

4.2 广告推送的实现

广告推送功能就是当手机用户进入到商场、电影院等服务设施(黑点所示)的服务区时,商家向手机用户及时发送服务打折信息。这个功能不仅向手机用户提供了深度的信息服务,并能向附近的手机用户介绍其服务信息,从而激发潜在的客户需求。这个功能主要是通过调用LocationManager中的void addProximityAlert(double latitude,double longitude,float radius,long expiration,PendingIntent intent)方法来实现,前两个参数表示服务设施的经纬度,radius表示该服务区的半径。当Location Manager检测到手机用户移入该区域时,就会触发打包的Intent,服务端会调出商家的服务信息数据通过系统发送给用户,进行广告精准推送。

图4 广告精准推送演示图

5 结 语

本文介绍了Google发布的新一代智能手机平台Android的系统架构,并在分析手机用户和商家需求的基础上进行了相应的功能设计和数据库设计,利用Google的地图应用接口、XML等技术,实现了基于Android手机平台的地图应用的基本功能:地图的浏览与设置、基本点位信息查询、道路信息查询与导航、基于地图的QQ聊天功能、基于地图的广告自动推送功能,可以满足手机用户基本的地图服务需求。当然,该技术还需要进一步的完善,需要在日后的工作中不断地探索和研究,以形成一套实用的地图服务系统。

[1] 靳岩,姚尚朗.Android开发入门和实战[M].北京:人民邮电出版社,2009

[2] 温敏,艾丽蓉,王志国.Android智能手机系统中文件实时监控的研究与实现[J].科学技术与工程,2009,9(1): 1717~1719

[3] 张仕成.基于Google Android平台的应用程序开发与研究[J].电脑知识与技术,2009,5(28):7959~7962

[4] 公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):85~89

[5] 差沙,地狱男爵.用Android开发手机应用[J].程序员,2008(1):56~61

[6] 舒贤华.基于Android平台的手机Web地图服务设计[D].大连海事大学硕士学位论文,2009

[7] 公磊.基于Android的GPS测量系统开发[D].南昌大学硕士学位论文,2008

[8] http://baike.baidu.com/view/1241829.htm?fr=ala0_1_1

Design and Development of Map Application Based on Android Mobile

Wu Lin,Xiong Tao,Cai YongXiang
(School of Geoscience,Yangtze University,Jingzhou 434023,China)

This paper firstly introduces the system structure of the new generation smart phones platform—Android by Google,and then analyzes the demands of mobile users and business,the functions and data storages have been designed correspondingly.Finally,using the application interfaces of Google maps and XML technology,the basic function of map applications is realized based on Android Moblie.

Android Mobile;Map application;Google Map

1672-8262(2011)02-16-04

P208

A

2010—08—29

吴林(1986—),女,硕士研究生,主要研究网络地理信息系统。

长江大学楚天学者资助项目(移动GIS应用研究,201007)

猜你喜欢

手机用户数据库用户
基于蓝牙技术的蓝牙路况测险仪设计研究
基于安卓手机用户行为的人口学信息预测
数据库
关注用户
基于手机用户认知视角的“双十一”期间网络广告效果研究
关注用户
数据库
关注用户
数据库
数据库