基于Android移动平台的校园导航系统的设计与实现
2013-02-26李腾雷张瑞霞
李腾雷 张瑞霞
(桂林电子科技大学,广西 桂林 541004)
1 引言
近年来,Android系统的发展速度都十分迅猛,这一点在中国市场来说更加明显。来自易观国际的最新报告显示,在2012一年中,Android在中国智能手机市场中的份额已经自 58%上升至 90.1%。据悉,2012年第三季度中,Android在中国智能手机市场上所占份额为 90.1%,高于第二季度的83%。与此同时,苹果IOS所占份额则从第二季度的6%下降至4.2%,塞班的份额也下降至2.4%。
在应用 APP方面,特别是基于 LBS(Location Based Services)的手机应用领域迅速增长。比如国外的《Facebook》、国内的《街旁》、《噢粑粑》APP等。正如《街旁》CEO刘大卫所说,LBS APP正处于摸索阶段,具有很大的发展潜力。LBS就是要借助无线网络,在移动用户之间,完成定位和服务两大功能。如今,校园应用已经进入了我们学生的日常生活当中。现在互联网上有相当多的校园应用,都是广泛性的想普及到大部分高校中。例如现在比较出名的《超级课程表》,是广州周末网络科技有限公司旗下一款针对大学生的校园社交应用。应用通过对接高校教务系统,快速录入课表到手机,收录五百万课程信息,可以实现校内跨院系任意蹭课、寻找课堂周围的同学、在线互传纸条搭讪等功能。
桂林电子科技大学每年都会有一大批新生入学,入学的新生对自己的大学都是有一种强大的好奇心,迫切想要了解自己的校园情况,另一方面,新生刚进入学校,面对流动式的上课、活动等校园生活,要经常在校园里面办理一些事务,会遇到很多不懂的问题,这个时候有了校园导航软件,校园论坛等应用帮助的话,会帮助他们解决很多问题。同时,对于不熟悉校园的来访人员,能够通过校园导航应用相关功能帮助自己办理事务,或者通过应用发出求助信息,那也是一件很有意义的事。
2 Android客户端设计
本文主要针对Android客户端设计进行分析,服务器端不在讨论范围之内。Android端应用整体分为论坛模块、路线导航模块、桂电主页模块、微博分享模块四大部分。应用架构图如图1所示。
2.1 功能模块设计
路线导航模块的主要功能是实现定位及路线信息显示。该模块中包括两个部分的地图信息。一个是在线版的地图,采用了google map作为地图数据,开启软件时连接google服务器获取地图信息,同时对地图进行二次开发,增加校园的更多细节,旨在细节化我们的校园,让师生以及外界人士更加了解我们的校园。通过网络、GPS,能够实现定位,通过图层,能够实现建筑标志显示。另一个是离线版的地图,在不消耗流量的情况加载本地校园地图,该模式下只能够实现路线指引。
论坛模块主要作用是提供给用户交流,主要功能包括用户注册、用户登录、发表话题、回复话题。通过BBS可以分享心情、发表信息、提出疑问、疑问解答等,还能够通过BBS进行交友。
微博分享模块的主要功能是通过目前主流的几个社交平台,如腾讯微博、新浪微博、人人网等分享自己的线路信息,与更多的人分享自己的乐趣与位置信息。
桂电主页模块的主要功能是分类列举在校日常行为中跟学生息息相关的问与答,包括《大学生手册》中的主要内容以及各类校新闻中重要的信息等。帮助在校师生以及外界人士了解和查询我们桂林电子科技大学的规章制度、及时新闻、主要活动等各方面的信息。
图1 系统架构图
2.2 UI设计
Android应用能使生活变得简单。简单的任务不需要复杂的步骤,复杂的任务也应当符合用户的使用习惯,使各个年龄段和各种文化背景的人都能很快上手,并且不会被太多的选择和无关的闪烁所淹没。所以,根据移动设备的设计理念,我们在UI设计上也保持了简约、美观,以方便用户和让用户感觉到舒适。例如主界面直接是地图界面,突出软件的主要功能;功能菜单采用了下拉菜单简约的功能模块入口;方便快捷的在线版地图、离线版地图切换等等。
软件的首界面定为地图页面,配合校园导航的主要功能,默认使用离线版地图,节省用户数据流量。论坛界面采用的是蓝白搭配的色调,是通过参考了很多的相关成功例子,蓝白的搭配比较适中,不刺眼中色彩均衡。适合社区中文字信息相对多的一个界面。采用这的界面主要是设和论坛这种文字信息类比较多的界面。对用户来说,不会很刺眼,看起来比较的舒服。
图2 部分界面截图
3 实现方案
3.1 技术选型
本校园移动导航应用是一个Android系统应用。主要使用了Android的相关技术,调用谷歌地图实现定位功能,利用自己研究的最优路径算法计算路径,使用Servlet与服务器交互并使用 Json数据进行数据传送。服务器端使用的是JSP技术实现的服务器后台管理页面,利用MySQL进行数据的储存。结合时下比较热门的百度云服务,服务器应用托管在百度应用引擎,客户端加入百度云推送服务。客户端应用中数据保存方式以Android文件数据SharedPreferences文件存储。
3.2 地图导航实现
该模块主要由两个部分组成:在线版和离线版。主要的区别在于在线版是要连接网络获取Google map信息包括当前位置信息等。而离线版地图是通过加载本地地图信息,并在此基础上实现其他功能。在方案的设计中,我们设想都是在卫星视图的基础上进行二次开发,在已有的建筑显示上添加更多的细节信息。离线版的地图,同样是使用了Google的卫星视图作为底层,但这个是通过在pc端获取较高分辨率的分块地图之后,使用Photoshop软件将大量的小块儿地图拼接在一起形成整幅校园地图。
路线绘制的原理是在地图图片Bitmap的基础上,进行绘制Line。先通过路线算法求出路径的所以经过地点列表,然后离线版地图版本是在一张地图上面重新绘制路线,依次连接所有的地点,再绘制起点、终点标志。在线版本地图是通过在地图上相应景点的经纬度绘制建筑点,然后在经过Android转换工具Project类的MapView.getProject()方法转换成屏幕上的点的坐标位置,然后依次连接成线。地图中将校园里面所有的景点信息都添加进了一个数据里面,然后需要计算路线的时候再将数据抽取出来经过路径算法运算得出路径,而景点的添加是具备经纬度、名称、相对位置、描述等属性。下面是设计学校建筑的所有结点,以及所有结点能到达的路线设计如图3所示。
3.3 论坛模块实现
论坛是通过 servlet与服务器端交互,交互数据使用json,通过json数据可以分析成为集合list,解析成为客户端所需要的没一个话题,显示到客户端上。获得话题列表是无需用户验证登录就可以获取的信息,所以在服务器端的Servlet无需任何参数就可以获取,获取回来的是Json数据,这种数据比较好解析成相应数据,方便客户端中的调用。
验证登录的过程是将用户名与密码发送到服务器端进行校验,如果服务器端拥有该用户侧返回相关数据确认,客户端就可以将用户信息通过文件保存SharedPreferences类的函数保存的用户的机器中。
发表主题是需要用户验证登录才能发表的,因此发表之前务必登录到系统。之后才能发表,话题的储存是和回复评论是一样的类。只是多了一个话题属性。因此可以采用相同的方法处理。这样减少代码冗余量。
应用中数据保存以Android文件数据SharedPreferences文件存储方式。以便下次不需要重复登录,不需要从服务器重复提交获取话题信息,保存的Json数据还能实现离线阅读等。
图3 学校建筑路线图
3.4 分享功能模块
该模块重点在于需要很好的熟悉目前各社交平台的接口信息以及其使用方式。对于不同的社交平台,其接口的认证方式会不一样,包括一些不同的平台在诸多细节上差异。如今的认证方式采用的是最新的OAuth2.0认证,客户端无法得到用户的密码等安全信息,是通过微博服务器直接交互。OAuth2.0是 OAuth协议的下一版本,但不向后兼容 OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为 Web应用、桌面应用、手机以及起居室设备提供专门的认证流程。当前新浪微博、腾讯微博、人人网开放平台统一都是采用最新的OAuth2.0认证方式,确保了用户的密码安全性。
3.5 桂电主页模块
该模块重点在于对文字信息的处理。主要的研究和实现在于利用列表以及文本的形式美观地显示在校日常问与答,获取和解析web网站的信息,实现校主页新闻、学校各官方微博信息等在板块中进行显示,动态传递学校、校园信息。
当前版本实现的只是从本地读取数据经过HTML的格式,显示到客户端中,通过文字的形式展现给用户。
4 总结
校园导航应用为在校师生和外来人员带来方便。具有实时、界面友好、可靠、易维护、易扩展等优点。一个手机端应用,最好的功能莫过于为人们解决问题,提高人们的办事效率以节约更多的时间,这正是整个应用设计的初衷,系统不够完善,比如应用中调用GoogleMap定位,相对来说会消耗部分数据流量,而且数据流量定位精度相对低,可以通过使用GPS卫星定位解决,但由于卫星定位会因天气、室内外位置、手持设备的不同而有不同的情况,局限相对大,这些问题是今后的改进和探索方向。
[1] 余志龙,陈昱勋.Android SDK 开发范例大全[M].人民邮电出版社,2009.
[2] 罗伟.基于 Android平台的即时通讯系统的研究与实现[D].湖南师范大学学位论文.2009.
[3] 胡世良.移动互联网:赢在下一个十年的起点.人民邮电出版社,2011.
[4] (加)Daniel Wigdor,(美)Dennis Wixon.自然用户界面设计:NUI的经验教训与设计原则[M].人民邮电出版社,2012.
[5] 李刚.疯狂Android讲义[M].电子工业出版社,2010.
[6] 王家林.大话企业级Android应用开发实战[M].电子工业出版社,2010.