APP下载

基于位置服务的消息分享软件的设计

2016-05-30肖大薇李晓东

科技创新导报 2016年1期
关键词:Android平台分享消息

肖大薇 李晓东

摘 要:该论文研究的项目以基于地理位置的服务为主线,使用户登录或注册后就可以随时随地以文字、图片、音频、视频的方式分享自己的消息给周边的人,查看自己周围的消息,同时针对某些热门话题进行讨论。项目采用C/S(客户端/服务器端)架构,客户端采用Android平台,服务器端使用Spring MVC、Hibernate架构,C/S两端通过HTTP协议进行通信。该文从介绍这些基本理论开始,介绍了整个项目的开发流程:系统功能设计、模块划分、用例设计、数据库设计、系统流程设计、用户界面设计、开发环境搭建、编码、测试,最后对项目进行了总结。

关键词:基于地理位置的服务 消息 分享 Android平台

中图分类号:TP311.52 文献标识码:A 文章编号:1674-098X(2016)01(a)-0067-03

位置与人们的生产生活息息相关,它也是移动互联网的重要特性之一。随着GPS(Global Positioning System,全球定位系统)定位精度和终端设备定位能力的提高,基于位置的服务(Location Based Service,简称LBS)在很多行业中得到新的发展机会[1]。LBS通过电信移动运营商的无线电通讯网络或外部定位方式获取移动终端用户的位置信息,在GIS(Geographic Information System,地学信息系统)平台的支持下,为用户提供相应服务的一种增值业务[2],如地图显示、实时导航、三维地图服务等。

消息分享软件类似于微博。微博用户既可以作为观众,在微博上浏览你感兴趣的信息;又可以作为发布者,在微博上发布内容供别人浏览。发布的内容一般较短,微博也因此得名。微博以人际关系为主线,想要浏览一些信息,必须先要关注一些人,发布的信息也只能传播给关注自己的人。与此不同,消息分享软件以LBS为主线,用户只要登录此软件,就可以浏览自己周围的人发布的消息,并传播自己的消息给周围的人,简化了获取、发布信息的流程。

1 软件功能设计

(1)基于地理位置的消息查看。用户登录软件后跳转到主界面,此时软件需要向服务器端发送请求,查询用户当前位置周围的消息并以列表的形式显示。用户点击某条消息可以进入详情页进行查看,并选择是否收藏,还可以发布评论。

(2)基于地理位置的热门话题。用户登录以后可以针对某些热门话题进行查看、创建、参与讨论。

(3)基于地理位置的消息分享。实现用户随时随地以文字、图片、音频和视频的方式记录、给他人分享消息的功能。

(4)基于Google Map的卫星地图[3]展示。使用户可以以地图模式形象的查看自己周围有哪些消息在发生。

(5)个人信息管理。用户可以查看编辑自己的基本信息,修改密码,上传头像,查看自己发布的消息、创建的热点以及收藏的消息。

2 软件模块划分

2.1 用户模块

2.1.1 用户注册

用户第一次启动软件时将跳转到注册页面,输入相关信息后程序将进行数据校验,校验通过后向服务器端发送注册请求,并解析返回的数据,如果注册失败则提示用户重新注册,如果注册成功,将上传用户此时所在的地理位置,同时跳转到完善个人信息页面,用户可选择是否完善,最后会跳转到主界面。

2.1.2 用户登录

用户启动软件时系统会先查询本地是否保存有账号、密码,如果有则后台发送登录请求到服务器端,否则将跳转到登录页面允许用户登录,登录成功后会跳转到主界面。

2.1.3 个人主页

用户在个人主页可以看到自己的用户名、邮箱,发布的消息数量、收藏的消息数量以及发布的热点数。

2.1.4 我发布的消息

用户在个人主页中点击我的发布就可进入我发布的消息列表页,此时客户端向服务器端发送请求,服务器端每次返回20条数据,如果此次返回数据小于20条,则认为已经没有更多已发布的消息了,此时将隐藏“更多”这个按钮。

2.2 消息模块

2.2.1 消息列表

用户登录或注册完成后将跳转到消息列表页,此时将判断本地是否有信息,是则加载,否则上传经纬度信息向服务器端发送请求,然后将返回的数据显示在页面上,同时存入本地数据库。具体流程如图1所示。

2.2.2 消息发布

用户进入消息发布页后,输入标题、内容,选择分类即可发布。如果发布成功,则发布流程结束;如果发布失败,先判断用户是否登录失效,如果是则重新登录,否则提示用户重新发布。

2.3 热点模块

用户进入热点列表页后,系统将根据用户当前位置去请求数据,服务器端接收到请求后会去数据库查询[4]符合条件的数据,如果数据量很大,则获取200条数据并做缓存,然后向客户端返回20条数据。如果用户选择更新,则重复以上步骤。如果用户选择更多,服务器端将判断用户位置是否变动或在一定范围内变动,如果超出了范围,则重新查询数据并返回,否则取缓存中的数据返回。

3 用户界面设计

3.1 主界面

用户在主界面可以查看自己周围最新发布的消息,点击次数、评论次数比较多的热门消息以及区域内的消息排行,点击某一天消息即可进入详情页面。

3.2 消息详情页

用户在详情页可以查看新消息的所有内容,并且可以选择收藏、评论。

3.3 消息评论页

用户在详情页可以点击评论数量图标,跳转到评论列表页,查看其他用户的评论信息。

3.4 消息发布

用户在主界面点击发布图标即可跳转到发布界面,输入标题、内容,选择分类即可发布一条消息。

3.5 个人主页

用户可以查看自己的头像、用户名、邮箱,发表的消息数量、创建的热点数量以及收藏的消息数量。

4 通信协议设计

4.1 协议状态码

项目借鉴HTTP协议的状态码,自定义了一些状态码,服务器处理完客户端请求时会根据请求结果在XML头部封装状态码返回,方便了客户端的解析。

如果服务器端返回2XXXX,则表示服务器端成功处理了此次请求;如果服务器端返回3XXXX,则表示被请求的资源已被永久移动到新位置,该返回会同时包含一个该资源新的地址,客户端获得该地址后,重新请求该资源新的地址;如果服务器端返回4XXXX,则表示此次请求未被成功处理;如果服务器端返回5XXXX,则表示用户登录失败,比如账号不存在或密码错误;如果服务器端返回6XXXX,则表示用户注册失败,比如账号已被注册。如表1所示。

4.2 文件格式

客户端向服务器端发送请求后,服务器端以XML文件的形式返回数据。由于不同请求对应的文件内容都不同,为了降低解析的工作量,项目通过定义DTD文件来规范服务器端返回的XML。服务器端将数据封装成DTD定义的格式,大大降低了客户端解析的工作量。

DTD定义了文件的根节点为lbs_news,根节点有两个子节点,分别为head和body。

head节点包括3个子节点,分别是code、message、sys_time。code即为上一节提到的协议状态码,message为状态码对应的信息,sys_time为系统返回数据的时间。

body节点包括classify_list、user、news、hot_list、news_list、comment_list等子节点。classify_list即对应数据库设计中的分类信息表,分类信息表的每一个字段对应classify中的一个属性;user即对应数据库设计中的用户信息表,用户信息表中的每一个字段对应user中的一个属性;同理,hot_list、news_list、comment_list分别对应数据库设计中的热点信息表、新鲜事信息表以及新鲜事评论表。

5 结语

文章设计了基于LBS的应用系统,给出了系统的总体设计方案和实现的关键技术。LBS带来的新思维和营销魅力为用户提供了丰富的想象空间,推动移动互联网对人们的生活产生了巨大的影响。但是LBS带来的隐私安全性问题越来越受到人们的关注[5],所以位置隐私保护问题必将成为今后LBS领域的主要研究任务。

参考文献

[1] 聂灿权.基于LBS的移动地理信息服务平台架构技术研究[J].科技创新导报,2014(7):15-16.

[2] 肖远东.基于LBS的跑步软件设计[J].江汉大学学报:自然科学版,2014(4):45-51.

[3] 张高明,马力,赵璟,等.基于Android平台的校园LBS应用研究[J].西安文理学院学报:自然科学版,2013(3):62-67.

[4] 王泰璐.基于LBS移动服务框架的设计与实现[J]计算机光盘软件与应用,2014(4):284.

[5] 杨松涛,马春光,周长利.面向LBS的隐私保护模型及方案[J].通信学报,2014(8):116-124.

猜你喜欢

Android平台分享消息
基于Android平台软件开发技术研究
孩子,我们慢慢来
消息
消息
消息