基于android平台的聊天软件设计与实现大学论文.docx
- 文档编号:27891563
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:28
- 大小:329.15KB
基于android平台的聊天软件设计与实现大学论文.docx
《基于android平台的聊天软件设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《基于android平台的聊天软件设计与实现大学论文.docx(28页珍藏版)》请在冰豆网上搜索。
基于android平台的聊天软件设计与实现大学论文
毕业论文(设计)
题目基于android平台的聊天软件设计与实现
学院电气与电子信息学院
专业通信工程年级2012级
学生姓名xxxx
学号xxxxx
指导教师
基于android平台的聊天软件设计与实现
通信工程专业
【摘要】聊天工具又称IM软件或者IM工具,主要提供基于互联网络的客户端进行实时语音、文字传输。
这是一种可以让使用者在网络上建立某种私人聊天室的实时通讯服务,本课题主要研究基于Android的移动聊天系统,开发出界面简洁,用户易操作的即时通信聊天软件。
主要功能:
用户注册,登录,好友一对一聊天,群组聊天。
在该即时通信工具中客户端之间通过服务器对数据的转发实现相互通信。
本文首先概述了IM聊天工具的背景,其次是课题的目的及意义,然后介绍了软件开发的环境和开发工具及其技术,给出了软件的系统架构,各个模块的流程图及用例,在Eclipse中使用Java语言实现了APP各个功能模块,该APP的功能主要包括用户登录、注册、聊天框架、通讯录管理、个人信息管理等功能模块。
【关键词】Android通信聊天软件注册登录
【Abstract】ThemainresearchtopicsofthegraduationAndroid-basedmobilechatsystem,accordingtoitsarchitectureanddesignprinciplesdevelopedinterfaceissimpleandeasytooperatemobileinstantmessagingchattools.Themainfunctionofthechattool:
userregistration,login,friendsone-on-onechat,groupchat.Datatransmissioninthereal-timecommunicationtoolsSocketProgramming.Communicatewitheachotheronthedataforwardingbetweentheclientthroughtheserver.
ThepaperfirstoutlinesthebackgroundoftheIMchattool,followedbythepurposeandsignificanceoftheissues,andthendescribesthesoftwaredevelopmentenvironmentandthedevelopmentoftoolsandtechnology,thesoftwaresystemarchitecture,theflowchartofeachmoduleandusecases,andthendetailedchangeinstantmessagingtooldesignandimplementation,andfinallyasimpletestsystem.
【Keywords】Android;communication;chatsoftware;sign;login
目录
第一章绪论1
1.1聊天软件背景1
1.2课题意义1
1.3研究内容2
1.4设计思想2
第二章Android聊天软件可行性分析3
2.1Android行业概述3
2.1.1认识Android3
2.1.2Android开发概述3
2.1.3Android的Listview介绍3
2.2软件开发的工具和环境4
2.2.1编程语言4
2.2.2技术路线4
2.2.3用户要求5
2.2.4运行环境5
2.3基于数据库实现设计5
2.3.1常用的数据库软件5
2.3.2消息推送原理6
2.3.3数据库表6
2.3.4数据管理要求7
第三章基于Android平台的聊天系统设计8
3.1聊天软件功能8
3.1.1功能描述8
3.1.2界面布局设计8
3.1.3消息推送原理8
3.2系统架构图9
3.2.1系统逻辑流程图9
3.3.2系统物理架构图9
3.3接口设计10
3.3.1用户接口10
3.3.2外部接口10
3.3.3内部接口11
第四章基于Android平台的聊天系统实现11
4.1服务端模块11
4.1.1登录11
4.1.2注册11
4.1.3聊天12
4.1.4下线12
4.2客户端模块13
4.2.1注册/登录界面13
4.2.2聊天界面15
4.2.3好友信息界面16
4.2.4设置界面17
4.2.5聊天记录19
4.2.6退出程序20
第五章基于Android平台的聊天系统系统测试21
第六章总结与展望21
致谢23
参考文献24
1.绪论
由于现代技术的不断加深以及信息化的广泛普及,移动通信作为一种新兴技术,近年来得到了潜移默化的普及和深入,移动网络上的各种应用层出不穷,给各年龄段、各行业阶层的用户提供了不同的个性化的服务。
聊天软件要在瞬息万变的信息时代生存,适应激烈竞争的市场,必须提高市场竞争力,就要对市场作充分的调查和详细的研究,同时也要有好的客户服务。
移动网络在线聊天系统对于人们来说就是一种交流和通信的平台,本系统做到了信息的及时的反馈,即时的处理并作出相应的行动。
移动网络通信是网络应用的重要体现方面。
移动网络即时通信则是网络应用的重要体现方面。
本聊天系统主要适用于客户端与客户端通过服务器的信息传输。
本聊天程序使跨距离的交流更加方便和快捷,更能高效率的体现现代即时通信的特点。
1.1聊天软件背景
我们进入了一个信息高速发展的时代,人与人之间不再只依赖于面对面,或者依靠电话的联系,信息的快速传递不仅能够节省电话产生的费用,而且还有助于人们保持固定长远的联系。
目前,我们常用的聊天软件有QQ,微信,微博等。
在移动互联网时代,面对层出不穷的软件开发,我们需要基于移动终端开发出新型的聊天软件,来满足大众的需求,我们都熟悉且常用的移动设备终端操作系统有ios,android,symbian等等,最普及的是Android。
本课题采用聊天软件的C/S架构:
采用客户端/服务器形式,用户使用过程中需要下载安装客户端软件,典型的代表有:
QQ、微信、微博、YY、MSN等[1]。
1.2课题意义
在互联网飞速发展的今天,“网虫”在互联网上聊天已经成为一种习惯,IM程序设计就是一个多点通信程序,C/S体系架构在软件开发中越来越流行,应用软件使用这种架构可以充分发挥数据库系统优势,速度更快,从用户体验的角度来更好的满足人们对聊天软件的需求,有一个前提,频宽充足,大部分IM服务事实上提供实时通讯的能力。
实时传讯与电子邮件最大的不同在于不用等候,不需要每隔两分钟就按一次“传送与接收”[2],只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方,只要有网络,无论对方隔得多远都没有距离[3]。
本论文将对基于Android的聊天软件系统进行可行性分析、实现设计、界面设计、关键代码编写、应用功能优化、系统测试等工作,实现登录功能、向XMPP服务器发送信息包功能、用户好友通讯录获取及相关管理功能、个人信息管理功能、好友文字和语音消息发送功能、图片文件、位置发送功能。
因此本课题具有重要的实际意义和应用价值。
1.3研究内容
主要研究内容:
基于Android平台的聊天系统主要研究内容是服务器怎么样对客户端信息的识别,传输,怎么去区分信息类型,实现用户方便快捷使用本操作系统以及Android页面布局的设计内容。
第1章:
主要陈述聊天软件的的背景和来源,以及所开发的软件实际意义和现实意义,介绍了Android聊天系统的工作原理,最后说明论文主要工作。
第2章:
系统相关技术可行性分析,主要介绍软件开发所使用的工具以及开发环境,包括安卓的行业概述,操作系统的架构和应用程序的分析、常见的数据库以及数据管理要求。
第3章:
系统设计,对软件的功能进行概要分析,同时从系统逻辑和物理流程图来清晰的展现全局,系统所包含的模块各个功能进行详细的介绍。
第4章:
系统实现,从服务端和客户端两方面入手,主要对聊天、通讯录、设置的功能模块条目进行详尽的介绍,以及功能和软件实现的关键代码的呈现。
第5章:
系统测试,主要陈述系统的测试用例以及系统的完成情况。
第6章:
总结与展望。
主要介绍了项目完成经验,存在的缺陷以及不足,以及对未来的展望。
1.4设计思想
本设计通过配置AndroidSDK、Eclipse、ADT插件、java来搭建Android的运行环境,Android程序开发过程中可以使用SQLite数据库来实现程序的结构化数据存储,所有的功能都基于数据库实现,包括消息推送;通过不同的表关系来实现功能,设计实现的功能有用户登录、注册,用户与好友的一对一的聊天,添加,删除好友,加入黑名单的功能,在Android手客户端实现发送文字、图片、位置、语音的功能。
系统包括手机客户端和服务端两部分,服务器端采用了Bmbo云端服务器,利用数据库保存用户注册的信息、通讯录、聊天记录、好友资料等等,客户端实现各功能的可操作界面,并实现通过服务端达到与好友实时通信的功能。
2.基于Android平台的聊天系统可行性分析
需求分析是软件分析中的一个重要步骤。
它的基本任务是要准确地分析出系统应用者的需要,以及系统目标必须具备哪些功能。
这些功能必须准确地,完整地体现出用户的要求。
2.1Android概述
2.1.1认识Android行业
Android一词的英文本义指‘机器人’,它是Google公司于2007年11月宣布的基于Linux平台的开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成,为移动终端打造的真正开放和完整的移动软件平台[4]。
目前主流的应用在手机操作系统还有IOS,BlackBerry,Symbian.这些操作系统都大同小异,用于移动智能终端设备。
2.1.2Android开发概述
在Android平台上,开发者可以根据用户需求开发出丰富多彩的应用。
Android的应用程序使用Java语言开发的,加上Android平台提供了2D,3D的图形支持,数据库支持(SQLite),并且集成了浏览器[5]。
基于Android的平台,我们可以开发出各式各样的应用,这些应用可以涉及视频,游戏,音乐,办公软件等等,在此开放的平台上,这一切都取决于用户的需求和开发者的发挥和创意。
2.2软件开发的工具和环境
开发环境:
Eclipse
开发语言:
Java
手机运行平台:
Android5.0以及上版本
开发软件所需插件:
JDK、SDK
2.2.1编程语言
使用Java编程语言及数据库技术相结合,编写一个基于android端的移动聊天系统软件。
Java可运行于多个平台,它是面向对象的程序设计语言,由语法,文件格式,虚拟机,应用程序接口四方面组成,可用来开发可靠地,要求严格的应用程序。
编程的时候大小写敏感,因此要注意,而对于类名来讲,类名的首字母应该是大写。
源文件名必须与类名相同,Java编程语言的风格类似于C、C++语言,优势就是它是一个面向对象的编程语言,开发者不用为内存管理而担忧,在这个项目上,使用Java编程语言对于初学者来说是很好的选择。
2.2.2技术路线
Eclipse可作为Java集成开发环境是一个基于Java语言的扩展并且源代码开放开发平台。
Eclipse的本身是一个框架平台和服务,支持众多插件组件构建使得这套工具具有灵活性。
尽管Eclipse是使用Java语言开发的,但是它的使用并不局限于Java语言;他支持诸如C/C++、COBOL和Eiffel等编程语言的插件都可用。
AndroidSDK是以Java语言为基础,也是一种软件开发工具包。
开发工程师来开发软件应用,通过SDK提供的一些工具将其打包为Android平台使用的apk文件,然后用内带的模拟器来模拟和测试应用软件在安卓平台上的运行情况和效果。
AndroidSDK指的是Android专属的软件开发工具包。
下载好AndroidSDK后,开始安装,AndroidSDK采用了Java语言,所以需要先安装JDK,在这里我安装的是JDK1.7。
直接下载JDK安装文件安装更为方便。
AndroidSDK不用安装,下载后,直接解压即可,将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。
使用Eclipse进行Android应用开发需要给Eclipse装ADT插件,这样Eclipse就可以和AndroidSDK进行连接,可以在Eclipse中启动Android模拟器进行程序调试等ADT插件安装这里不再赘述,也可以下载ADT的zip包安装安装完插件后,需要做一些简单的配置:
1、在Eclipse中,选择Window-->Preference;2、从左侧的菜单中,选择Android项;3、设置SDKLocation,点Browse选择SDK的安装根目录.
2.2.3用户要求
对用户没有特定的要求,有无计算机专业知识都可以使用本软件进行聊天,因此本系统会提供一个人性化,用户易操作的界面,能实现最基础的文字传输功能,还包括语音,图片,位置的传输功能。
用户在客户端运行聊天软件时,通过判断内部控制模块是否存储了已经配置好的用户信息,若存在,则直接调用配置存储过的用户登录信息进行网络连接;若不存在,则系统判断进入向导模式,提供用户选择登录或是注册。
若用户注册过账号,则可以直接到登录界面填写登录信息进行登录,如果用户没有账号,则选择注册,到注册界面进行注册;登录成功后,就会显示联系人列表,不成功时,可以点击手动设置来配置一些登录信息和网络设置信息等[6]。
2.2.4运行环境
服务器方面要求双核,CPU频率大于2.0GHZ,内存大于1G,硬盘空间要求300G及以上,系统建议是Windows7。
客户端必须是Android系统且版本要在5.0的手机,运行内存1G以上。
2.3基于数据库实现设计
2.3.1常用的数据库软件
SQL数据库:
SQL是一种操作命令集专为数据库而建立的,相对来说功能齐全,这种数据库语言是一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义
DB2数据库:
IBMDB2 是美国IBM公司开发的一套关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。
DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令[8]。
本设计数据库采用SQLite数据库,SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
2.3.2消息推送原理
所有的功能模板都基于数据库实现,包括消息推送,接下来我将介绍推送功能的实现原理。
安卓消息推送主要有三种方式:
使用SMS服务,就是依靠服务器端发送短信广播,通过手机客户端监听短信的广播,通过系统对数据进行相应的处理,从而达到消息推送的方式。
优势就是省电,省流量。
使用轮询方式,客户端从网络中主动获取数据。
但是有一个缺点就是耗电、耗流量。
轮询方式方便于我们理解,实现也起来较为简单,若只是做个试用的版本的情况下建议使用。
但若是作为会一直在运行的应用,用很多种方法去优化,还是会比较耗费流量的,是因为运行过程中会一直获取网络中的数据。
使用长连接方式,普遍来讲,服务器端推送的数据的方式,一般都是用这种方式进行数据推送。
优点是省流量、缺点是耗电。
这里我们介绍一下工作原理,工作原理就是客户端与服务器端会建立一条长时间的数据流连接,移动客户端设备从建立起长链接开始一直在等待服务器端传过来的数据。
由于连接是持续不断的,过程中也没有数据流操作,所以这就是长链接方式的优势之处,可以相对节省流量。
可是又因为客户端会一直保持数据在网络中的连接,所以长链接的推送方式,原理上来讲是比较耗费电量的。
2.3.3数据库表
用户的数据库表
字段名
数据类型
说明
允许为空
备注
id
Int
主键
N
UserName
varchar
用户名
N
Password
varchar
密码
N
Tel
varchar
电话
Y
Sex
varchar
性别
Y
varchar
邮箱
Y
表2.1用户的数据库表
聊天记录数据库表
字段名
数据类型
说明
允许为空
备注
dataid
varchar
主键
N
name
varchar
好友账户名
N
img
varchar
好友头像
N
data
varchar
聊天记录
Y
time
datatime
最后聊天时间
Y
表2.2聊天记录数据库表
好友信息数据库表
字段名称
数据类型
说明
允许为空
备注
friendID
varchar
主键
N
name
varchar
好友账户名
N
data
varchar
聊天记录
Y
time
datatime
最后聊天时间
Y
表2.3好友信息数据库表
2.3.4数据管理要求
用户账号信息:
用户账号,由于是String类型,可以为中文。
聊天记录信息:
不能存在非法语言。
用户名信息:
不能超过20个字符。
密码信息:
不超过20个字符。
3.基于Android平台的聊天系统设计
3.1聊天软件功能
3.1.1功能描述
四种类型的消息:
文本、聊天表情、图片、语音、位置
用户管理功能:
注册、登录
好友管理功能:
添加好友、删除好友、获取好友列表、黑名单管理、
聊天记录的本地化存储。
3.1.2界面布局设计
界面布局是一个活动条目中对于用户界面的架构设计,它通过存储全部显示给用户的元素来定义界面布局结构。
客户端的用户界面布局文件存放/res/layout中,用XML格式的布局文件定义应用程序默认的布局,包括将显示在屏幕的元素和属性。
可以通过编程修改客户端界面上对象的状态,这种布局设计是非常重要的,其中也包括了系统定义在XML文件中的元素。
3.1.3消息推送原理
Java的Scoket网络编程,Java服务端对Android端提交的数据进行处理然后发给客户端进行显示。
多线程编程,每个正在系统上运行的程序都是一个进程。
每个进程包含一到多个线程。
进程也可能是整个程序或者是部分程序的动态执行,使用过程中用户在客户端首先将信息发送到服务器,服务器识别并解析信息,然后将信息转发给相应的用户,使用线程可以把占据长时间的程序中的人物放到后台去处理,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度,程序的运行速度可能加快,用户界面更加吸引人[9]。
网络编程,Android手机端将组装好的数据包通过无线网络发送到服务器,服务器读取并解析数据包,组装一个相应的回应数据库并返回给Android端,以此达到通信的目的。
3.2系统架构图
3.2.1系统逻辑流程图
用Visio结合聊天软件所实现功能画出以下流程图:
如图3-1
图3-1
3.3.2系统物理架构图
系统设计的物理架构图如图3-2
图3-2
3.3接口设计
3.3.1用户接口
本聊天软件是基于Android聊天系统的应用程序,属于在互联网基础上的聊天管理系统,用户只需要在客户端使用安卓智能手机打开应用软件和进行操作,通过系统对用户账号验证,就可以享受应用程序所拥有的功能。
系统不需要额外的特殊命令和额外的客户端,通过客户端,输入正确地址就可以访问系统。
3.3.2外部接口
服务器程序可使用oracle提供的对SQL的接口,进行对数据库的所有访问。
服务器程序上可使用oracle的数据库对重要数据进行的备份,防止数据被破坏而无法恢复。
在网络软件接口方面,使用socket传输用户信息。
3.3.3内部接口
本系统的功能模块是采用java面向对象编程的逻辑思想,通过接口实现模块与模块之间调用,增大了系统的稳定性从而减轻功能模块之间的耦合性。
模块间的数据传入是利用接口的调用,参数传递,接口返回值来达到传递数据的目的。
模块内部是采用函数调用,参数传递,返回值来实现模块内部的数据传递。
4.基于Android平台的聊天系统实现
4.1服务端模块
本设计服务器端采用了Bmbo云端服务器。
Bmob是一个开发云存储的移动应用软件,在本设计中,Bmbo给聊天软件添加了一个方便安全管理的后台管理系统,适用于浏览终端保存客户端产生的信息。
在这个平台上,注册一个帐号之后,可以申请创建一个或者多个数据库,获得对应的密钥,然后在后台下载我们所需要的对应版本的SDK程序包并嵌入到软件应用程序中,使用过程中可以对数据进行保存,修改等操作。
这个云端服务器,对于本设计来说是很好的一个选择,初学者来说使用起来较为容易,也比较方便。
数据输入的时候通过使用移动智能手机设备登录,主界面为好友聊天界面,点击好友与其进行聊天,系统会通过通信机制协议向服务端传输数据。
数据输出的时候服务端会将解析后的数据输出到客户端,通过判断客户端输出数据类型,进行相应的消息反馈。
4.1.1登录
客户端输入登录账号和密码,服务端接收到登录信息并检查其是否正确,并向客户端反馈登录信息,若是信息正确。
服务端就发送一个反馈数据给该用户,并在此时给客户端建立一个长链接,用于进行通信的基本操作,并将该用户的状态发给各在线用户。
同时在服务器端显示出来。
4.1.2注册
客户端申请注册账号,将用户账号,密码用一种普遍的加密手段打包,然后以通信协议的一种TCP方式发送到服务器上,接收服务器给定反馈的一个cookie(这个值一般是对应在服务器Session的一个验证码,里面可以包含失效时间)。
此后每次用户提交信息的行为,都可以以这个cookie作为判断条件,保存该用户账号,同时将信息返回给客户端。
4.1.3聊天
服务端创建一个ServerSocket对象,并让这个对象在端口监听,如果客户端没有发送数据,那么该线程就停滞不继续,接收到客户端发送的请求,然后识别转发给消息指定的用户。
4.1.4下线
服务端检查是否有连接,并断开与客户端的长链接,记录每一个用户的状态,当其他用户需要读取到改用户的状态,能准确读取到用户处于下线状态,将此用户下线消息发给各客户端,并改写用户在服务器端的状态[10]。
4.2客户端模块
登录功能:
建立与服务器的连接并登录,能显示登录错误信息。
界面显示:
主界面为好友聊天界面,显示了已经参与会话的好友列表,子界面为好友资料以及删除,加入黑名单的好友界面。
聊天功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于android平台的聊天软件设计与实现 大学论文 基于 android 平台 聊天 软件设计 实现 大学 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)