基于android的聊天定位系统软件大学论文.docx
- 文档编号:12308744
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:36
- 大小:1.03MB
基于android的聊天定位系统软件大学论文.docx
《基于android的聊天定位系统软件大学论文.docx》由会员分享,可在线阅读,更多相关《基于android的聊天定位系统软件大学论文.docx(36页珍藏版)》请在冰豆网上搜索。
基于android的聊天定位系统软件大学论文
分类号密级
UDC编号
本科毕业论文(设计)
题目基于Android的聊天定位系统软件
所在院系计算机学院
专业名称计算机科学与技术(嵌入式方向)
年级12级
学生姓名
学号
指导教师
二○一六年五月
湖北第二师范学院毕业论文(设计)原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
论文作者签名:
年月日
文献综述
一、概述
Android的中文含义是“机器人”,是一个以Linux为基础的半开源操作系统,主要用于移动端,最早由安迪.罗宾创办,于2005年8月17日被Google公司的创始人佩奇收购,于两年后,与研发制造手机硬件,开发手机软件,提供固定电话,移动电话,互联网接入的通信服务公司构成开放手持设备联盟(OpenHandsetAlliance)来研发改良Android系统并生产搭载Android的智慧型手机。
Android以其开源,和硬件制造商,软件开发商,电信营运商联盟的特点迅猛发展,手机厂商们可以自由开发定制自己喜欢的Android手机,程序员们可以自由编程,这种开放,自由,合作的方式让Android系统迅速崛起,占据全球手机最大的份额。
StrategyAnalytics无线智能手机战略(WSS)服务提供的最新数据指出,2014年全球智能手机出货量年增长达到3成,突破13亿台,2014年Android智能手机独揽智能手机市场的81%份额。
随着现代化,信息化,大数据的时代到来,每天的变化不可谓不快,在这个变化万千智能手机普及的日子,有一款软件能将家人联系起来,实时守护家人的安全是绝对会受到热烈的欢迎。
能够聊天,实时定位家人的位置,查看家人最近几天的足迹的软件是每一个人都都乐意接受的,同时智能穿戴设备的火起,这些设备大多聚焦了定位功能,可以与其制造商合作,利用本软件绑定可穿戴设备,显示数据,控制设备。
不管从需求还是社会环境的考虑,开发基于Android的聊天定位软件具有很好的前景。
二、主题
手机客户端作为登入移动互联网最快捷的方式,扼守着移动互联网的第一入口,为企业进入营销时代开辟了一条康庄大道,手机客户端为企业提供完善,便捷,多样,高效的移动营销,为依然徘徊在移动营销门外的企业提供一条可供借鉴的营销模式和企业实现信息化之“道”。
2014年,除了一些大型企业,比如腾讯,阿里巴巴等拥有自己的手机客户端外,其他企业无不例外因为技术问题而被手机客户端拒之门外,据中国产业调研网发布的2016年版中国手机客户端市场专题研究分析与发展趋势预测报告显示,2015年,中国联通抢先推出10010手机客户端,覆盖苹果iOS(iPhone),谷歌(Android)两大主流智能手机平台,一手机客户端产生的产业同样发展迅猛,例如滴滴打车,外卖产业,租房行业,手机快捷支付。
企业可以无需依赖手机媒体,手机应用即可实现便捷,有效的移动营销。
本项目就是做一个基于Android平台的手机客户端,主要实现聊天,定位,足迹功能,以及一些围绕聊天,和位置产生的副功能。
三、总结
手机移动聊天定位软件拥有极大的市场需求,在智能手机横流的时代,手机都拥有定位功能,我国拥有优质的数字地图内容,导航和位置服务解决方案提供商以及全面优质的电子地图数据库。
围绕手机定位信息,根据地图SDK查询位置信息功能能演化成很多受欢迎的功能,如告诉别人自己的详细位置,查看莫个人最近几天的足迹;聊天需求虽然老土,但是为经典,人是群居性动物,交流是必不可少的,人人都需要交流,这个用户群体是巨大的;开发一款基于聊天定位的软件,前景诱人。
四、参考文献
[1]移动互联网异构接入与融合控制:
未来网络创新技术研究系列刘千里
[2]软件工程(原书第九版)2011年机械工业出版社出版
[3]定位:
争夺用户心智的战争艾.里斯,杰克.特劳
[4]新定位:
定位战略的新进展特劳特,里夫金著,马琳,施铁译
[6]大数据营销:
定位用户麦德奇,保罗B.布朗著机械工业出版社
[7]你的项目靠谱吗刘如江著
[8]第一行代码-AndroidCSDN超人气博主郭霖著
[9]Android源码设计模式解析与实战何红辉,关爱民著
[10]Android应用案例开发大全(第三版)吴亚峰,苏亚光,于复兴著人民邮电出版社出版
[11]TCP/IP协议族(第四版影印版)福罗赞著清华大学出版社出版
[12]互联网思维-独孤九剑赵大伟著机械工业出版社出版
[13]读懂互联网+曾鸣著中信出版社出版
[14]移动商业革命:
传统产业如何拥抱互联网海顿,韦伯斯特著王雪畅译人民邮电出版社出版
摘要
本论文基于android系统,利用java语言开发运行于android智能手机平台上的一款聊天定位app软件,该软件涉及到很多方面,从服务器获取数据,采用网络通信框架Volley进行图片,json数据请求,tcp长连接进行消息推送,数据库操作采用ORM框架LitePal,应用配置数据利用SharedPreferences完成,Viewpager,RecyclerView等组件以及各种自定义组件均有使用。
用户间数据传输通过长连接Tcp推到服务端,再由服务端推给目标用户,聊天数据,图片数据,音频数据,位置信息等都按照服务端制定的协议设计成按照协议要求顺序的字节数据,将原数据再加一个通道Gzip压缩,压缩的字节长度以及校验位等数据按照Big-Endian字节排列,这样形成一个Package,与服务器通过发包与接包进行数据交互,接到的包就是所谓的消息推送,经过解压与解析成对应的消息包,是聊天包,还是位置包。
本项目中类的使用大部分都使用单例模型,只实例化一个对象,灵活应用了android的四大组件Activity,BroadCast服务,Service服务,ContentProvider内容提供者,大量的运用内部事件触发外部组件的Android接口回调机制,点击事件的逐级下传以及到达最小组件逐级向父组件传递其中的事件的拦截onIterceptTouchEven—t()和调度dispathTouchEvent以及事件的处理onTouchEvent()机制。
关键词:
Volley框架ORM框架Litepal定位聊天点击事件Gzip压缩
Abstract
Thispaperbasedontheandroidsystem,useJavalanguagedevelopmentrunningonandroidsmartphoneplatformofachatpositioningappsoftware,thesoftwareinvolvesmanyaspects,togetthedatafromtheserver,andUSESthenetworkcommunicationframeworkVolleyimages,thejsondatarequest,theTCPconnectionformessagedelivery,longLitePaldatabaseoperationsusingORMframework,applicationconfigurationdatausingSharedPreferencesiscomplete,Viewpager,RecyclerViewcomponentsandavarietyofcustomcomponentswereused.UserdatatransmissionthroughalongconnectionbetweentheTcpontheserviceside,againbytheservertothetargetuser,chatdata,imagedataandaudiodata,locationinformation,etcareinaccordancewiththeserverthatisdesignedinaccordancewiththeagreement,theagreementoftheorderofbytesofdata,theoriginaldatatoaddachannelGzipcompression,thecompressionofthebytelengthandcheckdigitdataaccordingtotheBigEndianbytearray,soformaPackage,withtheserverthroughthecontractandpickupPackagedatainteraction,push,anynewsfrombagiscalledafterdecompressionandparsedintocorrespondingmessagepackets,ischatbag,bagorposition.Classinthisprojecttousemostoftheusecasemodel,onlytoinstantiateanobject,theflexibleapplicationofthefourcomponentsoftheandroidActivity,BroadCastService,ServiceService,ContentProviderContentproviders,theuseofalotofinternaleventstriggerexternalcomponentsoftheandroidinterfacecallbackmechanism,clickeventdownstepbystepandreachtheminimumcomponentstepbysteptotheparentcomponentofeventinterceptoronIterceptTouchEven-t()andschedulingdispathTouchEventandeventprocessingonTouchEvent()mechanism.
关键词:
VolleyLitepalLocationChatClickontheeventGzip
:
第1章绪论1
1.1项目开发的背景和意义1
1.2项目开发的目的1
1.3项目开发的目标1
第2章项目开发环境及工具2
2.1项目开发环境2
2.2项目软件开发工具2
第3章项目总体设计3
3.1需求分析3
3.2项目功能需求分析4
3.3项目流程图5
第4章系统详细设计8
4.1数据库设计8
4.1.1数据库设计与ER图9
4.1.2数据库关系图9
4.1.3数据库表设计11
4.1.4数据表实现15
4.1.5数据库的升级16
4.2功能模块的实现16
4.2.1聊天功能16
4.2.2定位功能19
4.2.3开屏广告功能20
4.2.4第三方应用分享21
4.2.4出入提醒功能21
4.2.5喊他上线功能22
4.3用户界面22
第5章系统测试22
5.1白盒测试23
5.2黑盒测试23
第6章总结与展望23
6.1项目开发过程的总结23
6.2展望24
参考文献25
致谢26
第1章绪论
1.1项目开发的背景和意义
Android自2008年9月23日Google发布以来,短短几年间就占据全球智能手机最大的市场,随着国家的发展,科技的进步,网络的普及,数据基站的推广建设,人们生活水平的提高,手机逐渐成为我们生活中不可缺少的一部分,Android智能手机占据了全球最大的市场,Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统,交互界面和应用程序移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,谷歌和众多硬件开发商,软件开发商以及运营商等有关各方结成深层次的合作伙伴关系,建立标准化,开放化的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android以其强大的合作伙伴阵容和开放性特性迅速席卷全球,短短几年间就占据了全球最大的市场份额。
生活节奏的加快,人们活动的方围的增加,在这高楼林立,一日千里的世界亲朋好友的交流和安全出现了巨大的危机,时常有人担心家人的安全,一个基于android的聊天定位软件是十分有必要的,一定会造福于大众。
目前国内外有众多的聊天通讯软件如QQ,微信,飞信,Googletalk,MSN,Skype等,其通讯功能的异常的强大;国内外也有很多定位导航软件,如高德地图,XX地图,Google地图,苹果地图,其电子数据库数据都很丰富,定位,导航功能也很精确。
但是现在没有一款联系通讯和定位的软件是总所周知,聊天定位软件是一款将定位数据与通讯联系到一起,定位与通讯交互衍生出很多有用的功能,如朋友的位置,足迹,到达某一位置提醒自己或朋友。
定位软件一般只能知道自己位置数据,相当于单机数据,数据是封闭的,数据不会分享,本系统软件将以定位数据分享为主题,利用聊天通讯开发出基于定位数据的位置出入提醒,足迹查看等功能。
1.2项目开发的目的
该项目集娱乐和安全一体,主要服务于于近关系群体,亲朋好友,让他们能够方便的文字聊天,语音聊天,图片交流和实时了解对方的准确位置,足迹信息,以防遇到危险时能够及时解救。
1.3项目开发的目标
本项目开发的目的及要求:
(1)本软件账户能建立圈,将其他账户拉到此圈,同时该圈也可被其他账户申请加入;
(2)用户可以同圈中的圈成员通过文字聊天,语音聊天,图片交流;
(3)用户可以查看圈成员的位置数据
(4)用户可以查看圈中成员截止今天包括今天七天之内的足迹信息,通过列表显示和地图界面打点显示并标记顺序;
(5)用户可以为圈设置位置出入提醒设置,到达某一地点后提示,可以选择提示圈中的全体成员或者其中的任意一个或多个成员;
第2章项目开发环境及工具
2.1项目开发环境
JRE(javaRunntimeEnvironment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现几Java核心类库。
JRE是针对于Java程序员使用者。
JRE不针对于Java程序员开发者。
JDK(JavaDevelopmentKit)是Java语言的软件开发工具包,主要用于移动设备,嵌入式设备上的java程序,JDK工具里的工具几乎都是Java程序,所以要使用JDK自带的开发工具软件开发Java程序,那就要自己自带一套JRE,JDK是面向开发人员使用的SDK(SoftwareDevelopmentKit,软件开发包),它提供了Java的开发环境和运行环境。
所以android开发环境安装JDK即可,JDK中都自带一套JRE。
2.2项目软件开发工具
AndroidStudio和各种Android测试机,是本项目开发的必备开发工具。
Android开发使用Google大力推荐的AndroidStudio,AndroidStudio是一个全新的Android开发环境,基于IntelliJIDEA类似EclipseADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。
谷歌2013年5月份,在I/O开发者大会上推出了基于IntellJIDEAJavaIDE上的AndroidStudio,定位很简单:
这是官方的AndroidIDE同时,谷歌承诺AndroidStudio将使开发者更快更有效率,并称它是Eclipse的替代品,而今年谷歌已停止对Eclipse的支持。
AndroidStudio现在的版本已十分稳定,非常的好用。
主要特色有以下几点:
①提示代码功能和查找功能十分的强大,非常的智能;②所引用的资源文件都可以实时预览;③支持多屏预览;④可以直接打开文件所在位置;⑤跨工程移动,搜索,跳转;⑥自动保存,无需手动保存;⑦图片可以直接转.9图片,并且自带.9图片编辑;⑧重构代码很智能,预测错误很智能;⑨在gradle编辑时使用arr依赖超级方便;⑩丰富的插件如ADB,gitignore,sql,markdown;AndroidStudio的这些特性都是Eclipse没有或不可比拟的,AndroidStudio是Android软件开发最强大的编辑工具没有之一,以其功能丰富和智能强大深受Android开发人员的喜爱。
采用真机测试方式,以保证软件开发更加方便快捷,避免了调试代码虚拟机时常卡顿和耗时长的尴尬,同时也能得到真实的数据,毕竟软件是运行在Android智能手机真机上的,较早的发现适配等问题。
第3章项目总体设计
3.1需求分析
在当今这个快速发展的社会背景下,人际关系的关系越发的复杂,亲人关系,熟人关系,好友关系,一面之交关系,路人关系等各种不同程度的亲近度关系混杂。
将家人画一个圈,开发一款适用于亲人之间交流和定位软件,促进亲人间的交流同时可以根据选择让自己的足迹位置信息共享给亲人圈,这一需求符合现在社会人们的要求,我国发展迅速,网络普及,铁路建设,大数据时代的到来,基本上每一个人都会有这一情况,总有的亲人间一年之内见面极少,尽管不是天各一方,相隔异地,通常两代以及两代以上的亲人关系都不会很熟悉,想必打造一款亲人间交流给亲人间加上一个强力且有张力的纽带十分有必要,与此同时该软件还能守护亲人的安全,能够根据自己喜好让自己的位置足迹信息让特定的人知道,万一有什么事,你的亲人和警察也能够凭借该软件不失时机的将你解救出来。
一款加强亲人间纽带关系和守护亲人的软件会受到大众的喜爱,毕竟谁不想亲戚关系藕断丝连,谁也不想亲戚关系行如陌人,谁不想时刻守护着在乎的家人。
用户市场需求分析该项目是可行的。
3.2项目功能需求分析
为打造一款优秀的聊天定位软件,能让用户满意的软件,如下功能是必须的:
(1)文字发送功能,语音发送功能,图片发送功能
文字,语音,图片发送功能满足用户聊天交流的载体,文字交流是用户最常用交流方式之一,根据文字来传递用户的意思,文字交流作为现在一种社会现象,人们用这个特有的方式来达到交流思想的目的;近年来火起来的语音交流,通过语音交流能表达更多的的信息,语气,音色等,更能表达情感,而且方便简单,尤其适合打字不是很快的用户,将语音信息通过网络传输给用户,用断续的语音代替打电话非常受欢迎;图片交流为用户间分享风景照片,人物照片等提供了可能,用户可以共享美好的画面,场景;文字,语音,图片交流已经可以很好的满足用户交流的需求。
(2)定位功能
用户可以定位圈中成员的位置,了解圈成员在什么地方,大大的增加了对圈成员的了解,无形中加强了用户与圈成员之间的联系,同时可以非常方便的碰头,不必为自己不知道自己所在何处而犯愁。
(3)足迹查看功能
足迹查看功能,能使用户查看圈成员最近一周内的位置动态,实时的了解圈成员的生活足迹,同时可以在圈成员遇到危险时,为快速解救圈成员提供强而有用的信息,也可以查看自己的生活足迹,有利于自己对生活的总结。
(4)分享功能
用户可以分享位置信息到QQ,QQ空间,微信,朋友圈,让大家对你跟了解,有利于呼救和聚会碰头。
(5)出入提醒功能
用户可以设置出入提醒功能,对圈中的成员是否公开,当自己进出某一设置地时会通知自己,并通知你允许知道位置提醒的圈成员,这有利于相互监督和公式打卡等等,是个有用的功能。
(6)隐身功能
自己的位置信息可以不对圈成员开放,圈成员不知道自己的位置信息和生活足迹,非常方便用户选择是否公开自己的隐私和选择性对象的公开自己的位置信息,这个功能非常为用户的隐私考虑。
(7)喊他上线功能
圈中成员隐身,自己查看不到他的位置信息,可以通过喊他上线按钮,通知隐身成员现身,但一天只能对同一个人使用一次。
(8)开屏广告功能
为开发者投放广告,赚点广告展示费,同时可以方便的宣传给用户你想传播的内容。
3.3项目流程图
本聊天定位软件项目的部分流程图如下:
图3-1系统部署图
系统部署图清晰明了显示出了系统运行时的结构,显示出系统中软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
非常明显的表达了客户端,服务器,数据库以及他们他们之间的依赖等关系。
客户端和服务器之间通信用两种方式,Http通信和Tcp通信,Http单向通信,客户端向服务器传递请求参数,服务器下发数据;Tcp双向通信,客户端可以向服务器发送数据,服务器也可以向客户端发送数据,因此多用户之间通信得以实现,用户A向服务器发送数据,请求把事实发送给用户B,服务器收到请求后,会将消息推送给用户B。
图3-2系统功能结构图
系统功能结构图就是对系统的整理细化,将一个大项目分解成一个个小的项目逐步的完成。
将大系统拆分成一个个小系统,在将一个个小系统分派给相应的开发者去负责完成。
系统功能图就是要将复杂的问题变成一个个简单的问题,但划分的程度也要把握好尺度。
本项目主要就是聊天功能和定位功能,只是比较笼统的描述,可以将其具体化,简单化,分解成一个个小的功能组,聊天功能分为单聊和群聊,单聊群聊又可以分为文字聊天,语音聊天,图片发送,自动识别超链接点击跳转;定位功能这个主体功能可以分为查看成员的位置信息,查看成员的足迹信息,查看成员是否隐藏位置信息,到达某一地方后通知自己或者成员已到达。
还有一些其他的附属功能可以不断的迭代丰富程序功能添加的开屏广告功能,热门活动功能,分享到第三方应用功能。
第4章系统详细设计
4.1数据库设计
数据库设计以及数据库的增删查改用ORMLitepal框架,LitePal是一款开源的Android数据库框架,采用对象关系映射的模式,将平时开发最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表,增删查改的操作,并且Litepal很“轻”,jar包大小不到100k,而且近乎于零配置。
4.1.1数据库设计与ER图
图4-1项目ER图
4.1.2数据库关系图
数据表一般都存在关联关系,他们相互依赖相互影响,数据表关联关系有一对一,多对一,多对多三种关系。
下图是本项目部分关系图
图4-2项目关系图
4.1.3数据库表设计
根据需求分析,需创建如下数据表(部分)
用户基本信息表(UserVo)用于记录用户的id,用户名,性别,生日,头像url,邮箱账号,更新时间这些基本信息
字段名
名称
数据类型
用户ID
user_id
VARCHAR
用户名
nick_name
VARCHAR
用户头像地址
header_pic
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 android 聊天 定位 系统软件 大学 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)