基于Android的校园聊天软件的设计与实现毕业论文.docx
- 文档编号:12316497
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:15
- 大小:26.50KB
基于Android的校园聊天软件的设计与实现毕业论文.docx
《基于Android的校园聊天软件的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Android的校园聊天软件的设计与实现毕业论文.docx(15页珍藏版)》请在冰点文库上搜索。
基于Android的校园聊天软件的设计与实现毕业论文
基于Android的校园聊天软件的设计与实现毕业论文
目录
1绪论3
1.1开发背景3
1.2课题意义3
1.3研究内容3
1.4本章小结4
2软件需求分析5
2.1技术介绍5
2.1.1软件开发的工具和环境5
2.1.2Eclipse介绍5
2.1.3安装JDK和SDK5
2.2需求分析5
2.2.1主要参与者5
2.2.2功能需求6
2.3.3性能需求7
2.3本章小结7
3软件设计8
3.1软件功能设计8
3.1.1客户端功能设计8
3.1.2服务器功能设计12
3.2软件的数据库设计12
3.3本章小结14
4软件实现16
4.1服务器端16
4.1.1配置OpenFire服务器16
4.1.2使用SmackAPI与OpenFire建立连接通信17
4.2客户端18
4.2.1用户注册模块18
4.2.2用户登录模块20
4.2.3个人信息设置管理22
4.2.4好友信息管理模块24
4.3本章小结30
5软件测试32
5.1软件功能测试32
5.1.1用户注册模块测试32
5.1.2用户登录块测试32
5.1.3用户设置管理模块测试33
5.1.4好友管理模块测试33
5.1.5消息模块测试34
5.2本章小结34
结论35
参考文献36
附录:
系统主要功能代码37
致谢48
1绪论
1.1开发背景
Android的英文翻译是指"机器人",而Android这个词语作为操作系统的名称出现,是谷歌在2007年发布了应用在手机平台上的操作系统,自此Android作为手机操作系统出现在人们的视野中。
同时由于Android的操作系统的开源性和可开发性使得以Android操作系统的应用软件日益增多。
Android操作系统被越来越多的人接受和使用。
目前的Android聊天软件基本分为2种架构形式:
(1)C/S架构:
采取客户端/服务器对等传输的形式,用户方主要使用客户端软件,使用前用户通过网上下载客户端软件,再安装到手机上进行使用,市场上流行的C/S架构的聊天软件有以下几种:
QQ、微信、微博、YY、MSN等;
(2)B/S架构:
浏览器/服务端对等传输的形式,这种形式下的即时通信工具,一般都是依赖于互联网,作为用户无需下载客户端,用户一般在浏览往网上网页时浏览器会提供一个类似于客户端的界面使用户可以发送消息,此架构一般应用在数据流比较大的电商网站,如WebQQ等。
1.2课题意义
在高校传统教育教学模式下,普遍存在师生之间就教学内容比较缺乏沟通的现象,教师与学生之间的关系日趋淡漠,学生对老师缺少敬畏感,老师对学生缺少亲切感。
然而师生之间的沟通对教学是十分重要的。
另外,管理者则希望加强对教育教学过程的监督管理,籍此提高教学质量,强化教学效果。
本文研究的校园聊天软件可以为管理者、教师、学生之间提供一个高效的沟通平台,它的实施将有利于加强对教育教学过程的监督,增进师生之间、学生之间的学习交流,增强教学互动性,提高教育教学效率。
因此本课题具有重要的实际意义和应用价值。
1.3研究内容
本文将针对基于Android的校园聊天APP进行需求分析、总体设计、UI界面设计、软件代码编写、软件功能优化、软件测试等工作,实现登录功能、向XMPP服务器发送信息包功能、用户好友通讯录获取及相关管理功能、个人信息管理功能、好友文字和语音消息发送功能、图片文件发送功能。
论文的章节安排如下:
第1章:
绪论。
主要陈述项目的背景和来源,以及所开发产品的意义和未来
发展前景,介绍了国内外同类产品的发展现状,最后说明论文主要工作,本人在
项目中完成的功能模块以及论文的主要结构。
第2章:
系统相关技术介绍以及理论分析。
主要介绍项目开发所使用的技术
以及软件的需求分析,包括:
Android手机操作系统的架构和应用程序的分析、软件的用户需求分析。
第3章:
软件设计。
对软件的功能进行概要分析,同时对系统所处的子系统的各个功能进行详细的介绍。
第4章:
软件实现。
主要对系统的架构、各个模块的功能划分以及功能类图和软件实现截图进行详细介绍。
第5章:
系统测试:
主要陈述系统的测试用例以及系统的完成情况。
第6章:
总结与展望。
主要介绍了项目完成经验,存在的缺陷以及不足,以及对未来的展望。
1.4本章小结
本章主要阐述了软件的开发背景、课题意义和研究能容,通过对上述三部分的详细分析为需求分析章节做好准备。
2软件需求分析
2.1技术介绍
2.1.1软件开发的工具和环境
开发环境:
Eclipse
开发语言:
Java
模拟机平台:
AVD
手机运行平台:
Android2.1以及上版本
开发软件所需插件:
JDK、SDK
UI界面处理软件:
Photoshopcs5
音频处理软件:
绘声绘影X15,格式工厂
辅助设计工具:
ADT、LogCat、adb等
2.1.2Eclipse介绍
该软件主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分-EclipsePlatform、JDT、CDT和PDE。
JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发、EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
2.1.3安装JDK和SDK
先从网站上找到JDK1.6(JREaloneisnotsufficient)版本并下载,下载完毕后将它安装在PC机上并在PC机上设置好有关的环境变量,将JAVA_HOME,path等几个设置为适用于Java开发的环境变量,最后将其导入你的JDK文件路径。
SDK安装:
直接从相关网站下载好SDK压缩包,然后打开Eclipse软件,在其中找到对应路径将其导入就可以。
2.2需求分析
2.2.1主要参与者
根据软件设计的需要,系统主要参与者为用户和系统。
用户将对系统发起大部分功能,同时系统的一些设置信息和更新信息需要系统参与。
(1)用户:
用户在操作软件的过程中涉及到的软件功能主要包括:
用户注册功能、用户登录功能、重设用户密码功能、好友列表管理功能、聊天功能等,其中聊天功能包括聊天文字、聊天表情、语音聊天、以及图片文件发送等。
(2)系统:
系统通过调用相关功能模块将自动登录用户账号、保存用户注册时的设置信息;系统提供后台的软件更新功能。
2.2.2功能需求
校园聊天软件的功能需求包括:
用户注册、用户登录、聊天功能、通讯录管理、个人信息管理。
(1)用户注册
用户初次进入软件,需要申请一个用户名。
这就需要用户通过注册功能注册一个可以使用的账号。
(2)用户登录
为了让软件使用起来更加简便,给用户带来良好的交互体验,系统一方面允许用户采用输入账号和密码的方式进行登录,另一方面也允许记录帐号信息而自动登录。
(3)聊天功能
聊天功能是指好友之间的发送即时消息进行通讯,消息形式可以是文字、语音、表情符号、图片等等。
(4)通讯录管理
通讯录管理功能包括对好友的添加、删除、查找,显示好友列表,置顶显示即时会话等。
(5)个人信息管理
个人管理信息主要是对用户的头像、个性签名、昵称等进行管理。
图2-1系统功能模型图
2.3.3性能需求
根据以上分析,性能需求主要针对用户使用软件的的方便性和系统可靠性等方面进行考虑。
在项目设计中,主要遵循一下原则:
(1)可操作性:
用户对于软件操作时,界面要简单、方便、直观。
操作过程中要有及时的提示,比如错误提示。
从而保证用户能正确操作软件。
(2)可移植性:
设计出来的软件系统要保证在不同版本的Android手机上运行不会崩溃,同时保证数据的正确性。
(3)实用性:
从用户的实际需求去考虑软件的功能需求。
(4)安全性:
系统要保持数据的正确性,在长时间的使用过程中保证系统不易崩溃。
同时软件在运行和不运行时都要保护用户的注册信息和软件通过检测用户本地信息时所获得的信息都不被泄露,从而确保用户使用该软件的安全性。
(5)可靠性:
系统要有一套良好的运行环境。
确保系统稳定、长时间的运行不出错,从而使用户可以放心使用软件。
(6)可维护性:
系统软件在开发过程中不但要保证用户需求的功能实现,还要考虑未来为应对用户需求而更新后续版本的功能需求,以及功能的扩张性,从而维护好软件的可持续性。
2.3本章小结
本章主要阐述了项目方案和需求分析,其中项目方案包括开发的工具和搭建的环境介绍;需求分析包括主要参与者、功能需求和性能需求。
主要参与者又包括系统和用户;功能需求包括用户注册、用户登录、通讯录管理、聊天管理、个人信息管理。
3软件设计
3.1软件功能设计
根据软件需求分析,该软件功能主要分为以下几个模块:
用户注册模块、用户登录模块、好友管理模块、用户信息管理模块、聊天管理模块。
以下是系统功能模块图,如图3-1:
图3-1系统功能模块图
3.1.1客户端功能设计
根据上述本软件需求分析,用户注册模块设计如下:
(1)用户运行软件后需要通过注册界面注册账号从而使用该软件,之后软件系统验证正确后将与服务器进行通信,将注册信息发送给服务器,服务器将发回允许指令。
(2)注册的用户名不允许重复,否则服务器将会报错。
(3)密码设置时,系统要求输入两次密码,之后服务器将验证系统发过来的密码包信息。
图3-2登录流程图
根据上述本软件需求分析,用户打开软件后,用户将进入登录页面,此时只要输入已注册的用户名、用户密码就可以登录成功。
用户登录模块设计如下:
(1)用户名错误:
系统提示该用户名已存在或不存在即未注册。
此外用户名必须多于六位数。
否则系统也会提示错误。
(2)密码验证错误:
登录界面中,当用户登录时填写的登录密码被系统提示错误的时,用户需要重新填写登录密码。
(3)其它错误:
当用户进行一些不当操作也会引起错误。
从而导致登录失败。
(4)自动登录功能:
每个使用该软件的用户在第一次成功登录后,再次登录该软件时,系统都会自动选择自动登录。
因为系统会把用户之前的登录信息缓存到本地手机中,下次登录时软件系统将自动检测缓存的信息,从而自动登录。
图3-3用户登录流程图
用户通过转入个人设置界面进行信息设置,用户管理设置模块设计:
(1)用户头像管理:
用户可以设置自己的头像,上传方式可以通过本地相册和拍照两种方式上传头像,上传成功后系统将保存信息。
(2)用户昵称管理:
用户可以设置自己喜欢的昵称,用设英文16个字符,用户设置完成昵称后,点击确认按钮,上传信息。
(3)用户心情短语设置:
用户可以设置自己喜欢的心情短语,设置完成后,系统将保存信息。
(4)用户密码重置管理:
当用户为了自己信息安全考虑时,可以进行密码的重置。
密码重置的时候,为了账号安全用户必须验证原来的密码。
(5)设置管理其他信息:
用户可以对聊天中的消息提醒进行设置,可以调节音量大小,也可以设置为震动。
同时该软件的系统音量也可以如此设置
根据需求分析,好友管理模块设计如下:
(1)用户可以进行添加好友、删除好友、查找已经添加的好友的操作。
(2)用户也可以通过搜索功能键在相应的位置输入想要添加的用户名,从而添加好友。
如果陌生人想添加你为好友,只要他进行之前的操作后你也会收到验证消息,这时你可以选择是否添加他为你的好友。
根据软件需求分析,聊天功能管理模块设计如下:
(1)文字聊天:
用户在聊天过程中发送的纯文本消息将会被系统
∙
软件传输到服务器端,服务器端将检查发送过来的信息包格式之类的正确性,通过验证后给软件发送反馈。
软件收到回馈后,将给用户提示。
(2)语音消息:
好友之间可以发送语音消息。
用户点击聊天界面下方的发送语音按钮不放后,软件将开始录音。
(3)图片文件:
好友之间可以发送图片文件。
用户可以选择手机本地图片和拍照两种方式。
消息发送流程图3-4如下:
图3-4消息发送流程图
3.1.2服务器功能设计
目前市场中小范围局部的聊天软件主要为:
基于环信、融云等第三方IM服务器的通讯聊天软件或者是基于XMPP协议利用OpenFire数据库的通讯聊天软件。
此次本项目软件主要使用基于XMPP协议的OpenFire服务器,XMPP协议作为一个被广泛使用的消息协议,有大量的网络资料和成熟开源模块,例如在Android和IOS上,就很方便集成XMPP协议。
IM作为一个复杂的系统,有方方面面需要考虑,使用成熟的协议,能帮助我们避免很多问题,提高开发效率。
Openfire采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。
Openfire安装和使用都非常简单,并利用Web进行管理。
单台服务器可支持上万并发用户。
开发者可以使用它轻易的构建高效率的即时通信服务器。
由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务OpenFire作为服务器。
允许多个客户端同时登录并且并发的连接到一个服务器上。
服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,客户端与服务器端之间的通信就在该会话的上下文中进行。
在Oponfire服务器中。
针对每个用户的请求,创建一个线程来进行响应,同时采用线程池来创建和管理线程,提高了服务器的执行效率。
线程池的大小可以根据服务器在运行的过程中接收到的用户请求的数量进行自动调整。
openFire服务器如图3-5所示,openFire消息发送原理图如图3-6所示。
图3-5openFire服务器
图3-6OpenFire消息发送基本原理图
3.2软件的数据库设计
通过以上对客户端功能设计,要想实现不同客户端的用户通信,服务器端功能主要包括:
对客户端发出的消息的侦听、存储、反馈。
所以数据库设计方面也要满足这些要求。
本项目软件服务器端主要采用OpenFire服务器的数据管理功能对数据进行管理,下面的数据库表列出了系统运行时需要涉及的数据信息,共4张表,分别是用户注册信息表、好友信息表、聊天信息会话表和通讯信息表。
(1)用户注册信息表,用于存放用户注册时录入的信息,如下表3-4所示。
表3-4用户注册信息表
字段名类型约束键值说明User_idString非空主键内部使用idUser_nameString非空注册后系统使用idUser_phoneString非空用户手机号passwordString非空用户密码
(2)好友信息表,用于存放联系人信息,如下表3-5所示。
表3-5好友信息表
字段名类型是否为空键值说明T_idint否主键自增长idF_ower_idstring否用户idF_contact_idstring否好友注册号F_statusstring好友在线状态F_nicknamestring好友昵称F_moodstring好友心情短语F_phonestring好友F_portait_uristring好友使用头像
(3)聊天会话信息表,主要存储用户和好友的会话信息,它的字段如表3-6所示:
表3-6聊天会话消息表
字段名类型约束键值说明_idint非空主键自增长idOwner_idstring非空拥有者idData_idstring非空数据idContact_idstring非空好友uidD_timestring会话创建时间D_last_contentstring会话最后内容D_last_timetime会话最后时间D_last_typeint会话最后消息类型D-countint会话消息数目 (4)通讯消息表,存储的是用户与联系人通讯的消息,它的字段如表3-7所示:
表3-7通讯消息表
字段名类型是否为空键值说明T_idint否主键自增长idL_owner_idString否用户idL_data_idString否数据idF_uidStirng否联系人idL_data_timetime消息时间
表3-7(续)通讯消息表
字段名类型是否为空键值说明L_data_typeint消息类型L_data_contentStirng消息内容L_data_uriString图片uriL_data_stateint语音发送状态L_data_audio_markedint语音消息读取状态
3.3本章小结
本章主要根据需求分析对软件设计进行了如下设计:
注册模块设计、登录模块设计、用户管理模块设计、个人信息管理设计、通讯录模块设计以及数据库的设计。
4软件实现
4.1服务器端
4.1.1配置OpenFire服务器
在配置或二次开发OpenFire服务器之前,首先应该去官网下载OpenFire相关的构件和程序。
当成功下载好OpenFire服务器后,我们首先将其解压,然后在openfile/bin目录下找到OpenFire.exe,双击即可启动OpenFire服务器,如图4-1所示。
图4-1启动OpenFire服务器
当成功启动OpenFire的服务器后,我们输入:
127.0.0.1:
9090进入OpenFire服务器的管理页面。
OpenFire管理页面的端口为9090,缺省账号和密码都是admin。
如果是第一次登录OpenFire服务器的管理页面,我们则需要配置一些初始信息,当成功配置好后,我们便可以完成登录。
OpenFire的管理页面包含5个菜单选项,分别是服务器基本信息配置选项、用户组管理选项、会话管理选项、分组聊天选项和插件选项。
其中服务器基本信息配置选项主要包含了OpenFire的一些常规配置,比如端口的配置、系统属性设置、缓存设置、数据库设置(OpenFire提供了自带的嵌入式数据库)等等。
而用户组管理选项可以用来管理注册用户。
会话管理选项则用于管理客户端连接。
分组聊天选项则用于管理会话组。
而插件选项主要是用于添加开发人员对OpenFire服务器管理页面的功能扩充。
OpenFire的管理界面如图4-2所示。
图4-2OpenFire的管理页面
4.1.2使用SmackAPI与OpenFire建立连接通信
Spark利用SmackAPI进行与OpenFire服务器通信的客户端程序。
成功下载好Spark后,首先需要进行安装,然后注册登录用户,最后便可完成登录,添加用户进行会话。
建立通信代码如图4-3
图4-3SmackAPI与OpenFire建立连接通信代码
4.2客户端
4.2.1用户注册模块
用户在登录页面选择进入注册页面前,系统需要判断用户名是否为己注册。
(1)未曾注册用户名:
在注册页面用户需要填写注册信息,包括用户名、用户密码。
之后系统将存储用户的信息以便数据库以后检测用户信息。
(2)如果用户名已注册:
如果用户名已注册,系统会弹出提示,提示用户该用户名已被注册。
用户可以根据提示选择是否换个注册名或者选择找回该用户名的密码。
BaseProtocol是一个基类,HTTP传输的所有协议包都将继承它。
基类主要有三个参数:
mid、mType、mTimeOut。
BaseProtocol的主要方法有:
setParas()、getSendXML()、parseXML():
、
sendCodeProtocol是发送验证码协议类。
VSetPwdProtocol是设置密码协议类。
以上三个类都继承至BaseProtocol类,HttpEngine在需要各个功能时分别初始化上述三个对象,然后在getResponseOqb获取服务器返回的XML数据,上述三个子协议将分别解析各自对应的XML数据。
Rigiste是注册功能运行的主要类,所有与界面相关的操作都由它完成,同时
请求底层数据的发起也是由它完成。
它的主要函数如下:
Register()、initView()、initData()。
registerProgress:
注册流
∙
程。
调用此函数进入注册流程,此函数将初始化注册界面以及一些数据,使其它函数能知道此时程序正处在注册流程。
getPwdProgress:
进入重置密码流程。
此函数将初始化界面以及一些参数,使
本类处于重置密码流程中。
sendVerifyCode:
用户操控界面触发发送验证码时调用此函数,它将收集用户输入的数据,验证数据正确性,然后调用HttpEngine中相应函数完成HTTP数据请求。
veri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 校园 聊天 软件 设计 实现 毕业论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)