嵌入式设计应用
在移动互联网发展的同时,移动智能终端也发展的如火如荼,目前主流的智能手机操作系统是:Android、IoS、SyMBIAn、BLACKBERRy、wINDowSPHonE。在这些操作系统中,Android以其免费、开放、完整的特点得到了开发者和用户的喜爱。据2013年第三季度的数据显示,Android占据全球智能手机操作系统市场81.3%的份额,中国市场占有率为78.1%。国际电信联盟预测,在2014年底,手机用户将超过70亿。市场研究公司EMARKETER称,随着尤其是新兴市场中智能手机采用率的日益增加,2014年全球智能手机用户量将达到17.5亿。据工信部统计数据,2014年一月底中国手机用户达12.86亿,但智能手机仍有很大的发展空间。
LBS是在地理信息(GIS)技术的支持下,通过无线网络和外部定位方式GPS来获取移动终端用户的位置信息,并在电子地图上显示,来提供位置相关的服务。随着互联网的飞速发展和智能移动终端的日益普及,移动定位技术得到了空前的发展,定位所需代价和能耗越来越小。LBS的着眼点已不仅仅局限于军事、交通,现在已经渗透到生活中的其他领域,像无线定位、智能交通、校园地图服务、移动图书馆、用户行为分析等。
为此,以校园LBS服务为例设计并开发了基于Android操作系统的个性化校园LBS系统客户端APP,以期为师生提供多样化便捷的位置服务。
根据需求分析定位系统业务需求及系统功能需求,将本系统主要功能模块及结构定位如图1所示。
图1 系统功能模块
校园LBS系统由移动终端系统、后台服务系统所构成。后台的服务系统又可以分为后台数据服务系统、数据库和后台管理系统3部分组成。移动终端应用是指在Android平台之上开发的客户端的应用,一般针对手机和平板电脑等设备,它们在功能上略有不同,需要开发不同的程序。后台数据服务系统运行在数据服务器之上,它通过解析使用HTTP或SoCKET协议发送来的移动终端用户数据,来响应客户端的请求,并返回相应的数据。后台管理系统也是在数据库服务器上运行,管理员用户可以通过浏览器方式管理和维护博客的数据。本系统服务器端采用的数据库是MySQL,它具有开源、免费等优点,适合于处理中小型数据。
如图2所示,校园LBS系统的客户端和后台服务器端采用C/S结构来进行交互,C/S体系结构的客户端是Android应用,它负责接收用户的请求和显示,直接与用户进行交互。应用服务器是位于wEB服务器端的具有扩展功能的wEB服务器,它接收客户端的请求,通过wEB中的应用程序对请求进行处理,通过SQL语句等方式调用数据库服务器,然后将数据处理的结果返还给wEB服务器,再由wEB服务器传送回客户端。
图2 系统体系构架
首先,以wINDowSXP操作系统为开发平台,通过安装JDK、ECLIPSE、AndroidSDK、ADT工具软件,并进行相关配置;同时,利用Android开发人员专用模拟器AVD(AndroidVIRTuALDEVICE)进行客户端程序的开发和测试,从而搭建Android客户端开发环境。
其次,利用ECLIPSE的插件MyECLIPSE进行服务器端环境的搭建,MyECLIPSE集成了对STRuTS、SPRINg、HIBER-nATE等主流JAVAEE组件开发的支持,简化了JAVAEE的开发。在服务器上安装MyECLIPSE并对其进行环境变量的配置,配合ToMCAT的安装与部署,对服务器上的MySQL数据库进行安装和配置,从而搭建起服务器端系统环境。
最后,利用在安装SDK时获取的KEySToRE,保存MD5的指纹,通过JDK中的KEyTooL工具取得MD5的fINgER-PRINT获得MD5的指纹,并在HTTP://CoDE.googLE.CoM/Android/MAPS-API-SIgnuP.HTML页面中在线获取对应的GoogLEAndroidMAPAPIKEy密钥,在MAPVIEw中加入密匙。若要在工程中显示地图,则要在布局文件LAyouT下的MAP.xML中的MAPVIEw中添加APIKEy。其关键代码如下:
<CoM.googLE.Android.MAPS.MAPVIEw
Android:ID=“@+ID/MyMAPVIEw”
Android:LAyouT_wIDTH=“fILL_PAREnT”
Android:LAyouT_HEIgHT=“fILL_PAREnT”
Android:CLICKABLE=“TRuE”
Android:APIKEy=“0AGPCMgLYP1TMz-Vy0LDJVY-
nfJB_M9G0AyXSyQ”/>
2.3.1、登录注册模块的实现
要使用本系统首先要在Android客户端进行登录和注册,当用户在终端点击本应用的图标后就会跳转到登录界面和注册界面,注册过的用户可以直接进行登录进入本系统主界面,未登录过的用户需要先进行注册,然后在登录进入本系统,该模块内部的流程如图3所示。
图3 客户端登录注册流程
其中,部分关键代码如下:
PuBLICCLASSHTTPGLoBAL{
PuBLICSTATICSTRINgSERVICEIP=“202.117.137.
175”;//服务IP
PuBLICSTATICSTRINgSERVICEPoRT=“8080”;//服务接口
PuBLICSTATICSTRINgSERVICEPATH=“/APPSToREwEB/
CLIEnT/”;
PuBLICSTATICSTRINgSERVICEURL=“HTTP://”+SERVI-
CEIP+”:”+SERVICEPoRT+SERVICEPATH;//服务URL
PuBLICSTATICSTRINgAPKADDRESS=“HTTP://”+SERVI-
CEIP+”:”+SERVICEPoRT;
}
功能运行结果如图4所示。
图4 登录注册功能的实现
2.3.2、定位模块的实现
定位模块可以查看用户在校园内当前所处的位置信息,在本系统中用户首先登录系统,在主界面中点击移动校园,然后在弹出的功能选项中选择定位。该部分的界面布局LAyouT文件MAP.xML中顶端是两个RADIoBuTTon按钮,分别实现交通地图模式和卫星地图模式的切换;中间是一个MAPVIEw,用来显示定位之后的结果;界面的底端是两个BuTTon按钮,可以实现地图的放大和缩小。本模块功能实现流程如图5所示。
图5 定位过程的流程
其中,部分关键代码及参数设置如下:
//通过CRITERIA获取最好的PRoVIDER
//设置精度、海拔、方向、费用、耗电
CRITERIACRITERIA=nEwCRITERIA();
CRITERIA.SETACCuRACy(CRITERIA.ACCURACY_FINE);
CRITERIA.SETALTITuDEREQuIRED(fALSE);
CRITERIA.SETBEARINgREQuIRED(fALSE);
CRITERIA.SETCoSTALLowED(fALSE);
CRITERIA.SETPowERREQuIREMEnT(CRITERIA.PowER_
Low);
LoCATIonMAnAgER=(LoCATIonMAnAgER)gETSySTEMSER-
VICE(ConTExT.LoCATIoN_SERVICE);
PRoVIDER=LoCATIonMAnAgER.gETBESTPRoVIDER(CRITERIA,
TRuE);
功能运行结果如图6所示。
图6 定位结果
2.3.3、校内地点查询模块的实现
本模块分为两个界面,一个查询界面;一个地图显示界面。当用户选择要查询的地点后点击查询,就会跳转到地图显示界面定位到查询地点。
本模块的查询界面SELECT.xML文件主要由一个下拉列表SPINnER和一个查询BuTTon构成,SPINnER的ID是Android:ID=“@+ID/SPINnER”,通过R.ID.SPINnER取得该组件。SPINnER下拉列表中列出了学校内部各个地点,每个地点的精度、纬度、名称等信息都存储在DBUTIL.JAVA文件中,用户在SPINnER中选择一个地点,单击查询后就会把被选地点的经纬度等信息传送到MARK.JAVA中,在MARK类中通过查询语句在数据库中查询地点的经纬度,创建一个BunDLE,把经纬度信息、站点名等数据一起打包,放入字符串JD,wD和CHAngSuo中。通过如下代码把数据传入MAPACTIVITy中。
INTEnTINTEnT=nEwINTEnT(THIS,MAPACTIVITy.CLASS);
INTEnT.PuTExTRAS(BunDLE);
在MAPACTIVITy中通过新建BunDLE对象来获取经纬度信息,然后转变为经纬度对象GEoPoINTgP。然后在MAPACTIVITy中引用oVERLAyACTIVITy,通过其中的DRAw()方法,把经纬度坐标转换成屏幕坐标,在屏幕上显示绘制的图标。
校内地点查询的开发流程如图7所示。
图7 地点搜索模块
地点查询界面和查询功能运行结果如图8所示。
图8 校内场所搜索结果
该文的主旨是在Android平台上开发一个校园LBS应用系统,结合当前大部分LBS软件不能在小的场所中提供LBS服务的缺陷,以校园为例,根据校园人群的实际工作和生活环境设计了一个校园LBS系统。为校园中的教师、学生及陌生人群的工作和学习生活带来了很大的便利。
随着移动互联网和智能手机的普及,基于位置的服务将会迎来蓬勃的发展,人们将会越来越离不开位置服务。本系统的设计不仅可以应用于校园系统,还可以扩展到其他的领域,为未来小区域内LBS系统提供了参考。
全部0条评论
快来发表一下你的评论吧 !