基于社交网络的定位软件的研究

2015-02-10 03:05翟林静
关键词:该软件新浪客户端

孙 弋,翟林静

近些年来随着城市建设的飞速发展,城市的交通线路也渐渐繁杂起来.对于老人和小孩以及一些无识路能力的弱势群体,在他们走失后,不能准确描述自己的具体位置,这给救援任务带来巨大困难.随着智能手机、车载移动终端等多种移动设备的普及以及4 G技术的日趋成熟,使用移动终端设备来访问社交网络逐渐成为主流.而一些大型的社交网站已经陆续开放了第三方接入的功能,为信息的采集、传递和处理提供了便利.

针对这一情况,论文设计了一款基于社交网络的定位软件.该设计采用新浪微博平台作为数据传输的媒介,在有GPRS信号或Wifi覆盖的区域内,可以寻找某指定用户的位置信息及运动的轨迹.

1 定位系统的总体设计方案

该软件以跟踪定位无识路能力的弱势群体作为出发点,利用Android平台、社交网络和百度地图的开放性和无线通信网络,实现准确的定位和跟踪服务.该软件由服务器端和客户端组成,集客户端集跟踪者和被跟踪者所需的功能于一身,通过新浪微博数据通道可以随时发送自己的位置信息(作为被跟踪者)和请求信息(作为跟踪者)给服务器,且作为跟踪者向服务器请求成功后便可以显示被跟踪者的位置信息.而服务器负责数据的接收、存储、处理和转发,两者需要配合使用.软件的整体设计方案如图1所示.

其中客户端软件分为如图1所示的3个模块.系统设置模块主要功能即设置位置信息发送的时间间隔(作为被跟踪方)以及设置被跟踪者的微博账号和所需接收时间的起始值(作为跟踪方);数据收发模块主要功能即实现客户端与服务器数据的及时有效传输.功能实现模块即完成某段时间内被跟踪者位置轨迹的描述与绘制.服务器主要由两个模块组成:用户管理模块负责建立数据库保存用户的数据信息方便查阅;数据收发模块的主要功能也是实现和客户端实时有效的数据传输.

2 开发的相关技术

2.1 数据的存储

在该系统中,用Shared Pref erences类来储存微博用户的配置信息,以便每次不必重复输入用户名和密码.在服务器端软件管理中用到了SQLite数据库,SQLite是Android内嵌的数据库,使用起来方便简洁、体积小、速度快.在该软件开发中用到的是SQLite3及其以上版本,保证了数据的完整性与安全性.

2.2 新浪微博开放平台

新浪微博开放平台[1]作为被广泛应用的社交网络平台,向第三方开发者提供了开放的API接口,开发者可以通过调用API实现微博的几乎所有功能.另外,新浪微博API支持OAut h协议[2],让用户在使用新浪微博API创建应用和服务的时候需向新浪微博服务器来验证账号和密码,而无需向开发者提供账号密码,这样也很好地保护了用户的隐私.该软件基于新浪微博平台,通过调用新浪微博API实现发布微博、刷新微博等功能,实现了数据信息的交换.在使用新浪微博提供的SDK之前需申请开发者权限,获取App Key、App Secret及其相应的授权回调页以便在程序中使用,最后将新浪微博提供的SDK包引入工程即可使用.

大部分API的访问如发表微博、获取私信,关注都需要用户身份,目前微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口)[3],新版接口也仅支持这两种方式,其接口如表1所示.通过调用这些接口配合开发者自己的App Key和App Secret即可以实现微博成功授权,以便能够成功调用微博提供的其他用户接口.

表1 授权机制接口Tab.1 The interface of authorization mechanism

新浪微博开放平台为第三方应用提供了可供调用的微博API,使第三方客户端无须了解复杂的验证以及API调用的过程.通过调用相应的接口就可以实现发送微博、获取@我的微博以及当前用户的信息等.表2列出了该软件所涉及的API接口,通过调用这些接口能够实现数据的发送与接收.

表2 开发中涉及的APITab.2 The API used in develop ment

2.3 百度地图开放平台

百度地图[4]Android SDK是一套基于Andr oid 2.1及以上版本设备的应用程序接口.开发者可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,用户可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序[5].百度地图Andr oid SDK提供的所有服务是免费的,接口使用无次数限制.开发者需申请密钥(key)后,才可使用百度地图Andr oid SDK.该软件将引入百度地图提供的两个SDK包baidu mapapi-v2-4-0.jar和l oc SDK-4.0.jar及其分别对应的两个.so文件.

3 定位软件的实现

该软件主要由客户端和服务器组成:服务器端在整个定位系统中扮演着一个信息管理的角色,负责数据的接收、存储和转发,通过其管理能使软件更可靠安全;客户端进行数据的发送以及接收,并在地图上标记出相应的位置信息.图2展示了系统工作的整体流程.

如图2所示,客户端经由新浪微博数据通道向服务器发送数据,服务器会接收数据判断数据的有效性和可靠性,并区分是作为跟踪方的请求信息还是作为被跟踪方的位置信息,如为位置信息则保存到数据库以供查询;如为请求信息则查询数据库中有无请求的被跟踪者的位置信息;如果查询到结果则把被跟踪者的位置信息经由新浪微博数据通道发送给客户端,客户端作为跟踪者即可接收数据,经过相应的处理将被跟踪者的位置及当时的时间信息显示在百度地图上.

3.1 数据通信协议

数据通信协议[6]也就是数据包格式,是通信双方必须遵循的数据描述格式,一般是约定发送方如何建立数据包和接收方如何处理数据包并从数据包中提取出需要的信息.通信协议的定制保证了数据传输的可靠性,通信双方通过约定好的协议将传送的数据进行封装与拆解,将信息以事先定义好的格式在客户端进行显示.该软件客户端数据以不同的包头和包尾来区分位置数据和请求数据,位置数据和请求数据分别承载了不同的数据信息,用“;”对数据内容进行分隔.服务器端数据只有一种,且数据内容同样以“;”进行分隔.

如表3、4所示为客户端所采用的数据通信协议,服务器必须严格按照这一协议进行数据解析,否则数据的解析将会出现异常.

表3 客户端发送位置信息通信协议Tab.3 The client communication protocol of sending the location infor mation

表4 客户端发送请求位置信息通信协议Tab.4 The client communication protocol of sending the request infor mation

如表5所示为服务器所采用的数据通信协议,客户端必须严格按照这一协议进行数据解析,否则数据的解析将会出现异常.

表5 服务器端通信协议Tab.5 The server communication protocol

3.2 数据的收发流程

客户端数据的发送流程和接收流程如图3、4所示.

如图3所示,客户端数据有两种,一种是作为被跟踪方要发送本地的位置信息,另一种是作为跟踪方要向服务器发送请求信息.图4是作为跟踪者时数据接收流程图.其中数据打包与拆包都应严格按照上一节数据通信协议所规定的格式来执行.

服务器数据的收发流程如图5所示.

如图5所示,用此种方法收发数据保证了数据的安全性与可靠性,只有经过允许的用户才能收发位置信息,避免了其他数据的干扰,这也是服务器的一个重要的功能.

3.3 数据库管理

SQLite[7]是轻量级的、嵌入式的、关系型数据库,目前已经在i Phone、Andr oid等手机系统中使用.该软件在服务器端采用SQLite3数据库作为数据的存储方式,核心的操作类和接口如表6所示.

表6 Android中数据库操作核心类和接口Tab.6 The core classes and interf aces used in Android database operation

数据库的基本组成单位是数据表[8],数据表由表名称、列以及属性组成.该软件所使用的数据表主要有6列,即消息ID(自动递增)、信息发布的时间、发送方的经度信息、发送方的纬度信息、信息发送方、信息接收方.当服务器接收到新的位置信息后,先进行数据的拆包,解析出相关的信息,然后按照数据表的格式存入本地的数据库中以供查询.当接收到用户的请求信息时,根据获取到的关键字对数据库进行查询,并将查询到的结果按照规定的数据格式发送给请求的用户.

4 软件测试及分析

用户通过输入被跟踪定位的人的微博账号和需要接收的起始时间来向服务器发送数据请求,请求被服务器允许之后,通过单击绘制轨迹可以把被跟踪者在起始时间之内的位置信息及其对应的准确时间信息绘制在百度地图上,如图6所示.

经测试,该软件能方便快捷地发送和请求用户的位置信息,并能准确查询用户的位置信息和所在位置的时间信息,能使跟踪者实时掌握被跟踪的行踪.且对于用户来说,具有一定的安全性和准确性,便于进行维护与管理.

[1] 胡博.基于Android平台的微博客户端开发[D].长春:吉林大学软件学院,2012.

[2] 新浪微博开放平台 API[CP/OL].(2014-06-10)[2014-10-20].http://open.weibo.com/wiki.

[3] 孙弋,李贵民,王树奇.Android微博应用开发实践[M].西安:西安电子科技大学出版社,2014.

[4] 百度地图LBS开放平台 API[CP/OL].(2014-06-10)[2014-10-20].http://developer.baidu.com/map.

[5] 付林,闫强,李祥.基于百度地图的小区域导航实现方案研究[J].计算机技术与发展,2014,24(5):223-226.

[6] 孙弋,李青,雷小佩,等.基于社交网络的维修办公终端软件设计与实现[J].安徽大学学报:自然科学版,2014,38(4):20-26.

[7] 张恒喜,史争军.基于SQLite的 Android数据库编程[J].电脑编程技巧与维护,2011,21:30-31.

[8] 孙弋,雷小佩.基于社交网络的维修办公后台软件的研究[J].电子技术应用,2014,40(7):134-136.

[9] 余志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2011.

[10] 伊达钱代,内藤孝彦[日].版面设计的原理[M].周淳,译.北京:中信出版社,2013.

[11] 刘雪.Android平台下移动轨迹定位信息系统的设计与实现[D].金华:浙江师范大学计算机学院,2013.

猜你喜欢
该软件新浪客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
猴子虽小
简单灵活 控制Windows 10更新更方便
遗留或损坏 软件卸载没商量
新浪读书排行榜
媒体客户端的发展策略与推广模式
新华社推出新版客户端 打造移动互联新闻旗舰
新浪与分众合并案告吹
捉拿李鬼