资源地址:
基于Android仿QQ聊天系统+源码+论文+数据库+运行截图.zip
2.2.1 系统功能需求
2.2.1.1 功能需求:
普通功能:用户注册,用户登录,添加好友,聊天功能,后台运行,后台管理。
高级功能:发送语音,图片。
2.2.1.2 具体要求:
- 用户注册:用户在注册界面填入相关的正确信息提交后,后台对其进行处理,并返回相应的微聊号(唯一标识)给用户。
- 用户登录:用户填入自己的帐号与密码后,点击登录,后台对其进行验证,验证成功后显示好友列表。
- 添加好友:在添加好友界面输入用户Id提交,后台对其进行验证,成功后返回好友信息,并且可以添加好友。被添加的好友可以拒绝或者同意。
- 聊天功能:用户选定聊天对象后,对其发送消息,消息包括文本,表情,图片和语音。消息由服务器转发给特定的聊天对象,并保存在客户端本地。
- 后台运行:用户可以退出主界面,将聊天软件在后台运行,当有消息传入时,消息会用广播的形式显示。
- 后台管理:对用户的管理。
图2.1 系统用例图
2.2.1.3 系统静态模型设计
系统静态模型中所有Activity继承于WetalkBaseActivity,它是activity的集合,将开启的Activity记录于此,继承于它的所有Activity共用一个消息队列,很大的减少了工作量;主要类有客户端的启动类(WelcomeActivity)、注册类(RegistActivity)、登录类(LoginActivity)、好友列表类(FriendListActivity)、查找好友类(FindFriendActivity)和聊天类(ChatActivity)等等;与服务器大量交互用到网络类(Communication类和NetWorker类);以及一些实体类(User类等)、工具类(FileUtil类等)和页面设计类(SMSAdapter等)。
图2.2 系统静态模型
2.2.1.4 系统动态模型设计
用户在安装了客户端后,点击启动聊天系统客户端,如果用户没有账户,则点击进入新用户界面进行注册,注册成功后自动返回登陆界面进行登录,登录信息通过系统验证后,提示登录成功且返回好友列表,如果该用户有好友,点击进入聊天界面,聊天数据通过客户端封装后传到服务端进行转发给相应的好友接收显示,动态模型时序图如下:
图2.3 动态模型时序图
2.2.2 用户注册
- 描述:输入注册需要的信息,且保证正确
- 参与者:用户
- 执行者:用户
- 前提条件:开启程序,进入注册界面
2.2.2.1 注册静态模型
注册模块主要实现了用户注册功能,主要类是RegistActivity,该类中把数据封装成传输数据,最后通过Socket将封装的数据传输到服务端进行数据操作如下图所示:
图2.4 注册静态模型图
2.2.2.2 注册动态模型
用户进入注册界面后按照提示输入相关信息,客户端必须进行格式验证,验证成功后再进行注册,注册信息通过服务端处理后返回相应的id号码给用户客户端,如下图所示:
图2.5 注册动态模型图
2.2.3 用户登录
- 描述:输入正确的帐号和密码显示登陆成功,输入错误的话显示帐号或密码错误
- 参与者:用户
- 执行者:用户
- 前提条件:启动程序,进入登录界面
2.2.3.1 用户登录静态模型
登陆模块主要实现了用户的登录,该模型的主要类是LoginActivity(),其主要的数据通过客户端封装socket传输到服务器,服务器上有一个socket监听程序客户端的传输信息,并进行信息验证。该模块主要依赖相关类如下图。
图2.6 登录静态模型图
2.2.3.2 用户登录动态模型
进入登陆界面后,按系统提示输入相关信息(本系统账户号码暂定为6位数字);输入正确的帐号和密码后数据传输到服务器进行验证,并且给客户输出相关的信息,动态模型如下图。
图2.7 登录动态模型图
2.2.4 用户主面板
- 描述:头像显示,好友列表,最近联系好友列表,好友动态列表,添加好友按钮
- 前提条件:正确登陆帐号密码后
- 事件流:
- 头像的正确显示及即时更新;
- 好友列表的正确显示及即时更新;
- 点击头像出现设置界面(更改头像);
- 点击好友出现对话界面;
- 聊天消息提示。
2.2.4.1 用户主面板静态模型
用户登陆成功后进入该模块,该模块主要实现用户好友列表显示、用户最近聊天好友列表显示和用户动态显示。主要依赖一系列的界面设计类以及一些适配器类以及数据传输类。
2.2.5 添加好友
- 描述:增加好友ID
- 参与者:用户
- 执行者:用户
- 前提条件:登陆成功进入好友界面
- 事件流:
- 必须知道正确的ID格式;
- 查找成功后发送请求;
- 对方受到请求,可以选择同意或者拒绝,同意添加成功,拒绝继续添加;
- 添加后,好友列表更新;
2.2.6 用户聊天
- 描述:与好友进行聊天,可以发送文本,表情,图片和语音
- 参与者:用户
- 执行者:用户
- 前提条件:正确登录,点击好友列表
2.2.6.1 用户聊天静态模型
该模型主要实现用户聊天功能,以及消息显示功能,消息的本地存储功能,该模块的主要类及主界面(ChatActivity)主要依赖一些实体类,数据存储类以及数据传输类,如下图所示。
图2.8 聊天静态模型图
2.2.6.2用户聊天动态模型
用户点击好友列表中的好友进入聊天界面后,在输入框输入文本或者头像、图片、语音等经过封装后传输到服务器进行转发给相应的好友,如果好友不在线,先把消息存在服务器,等好友上线后再发给好友。如下图所示。
图2.9 聊天动态模型图
2.3对性能的规定
2.3.1 精度
在进行输入输出时必须清晰的列出所有输入状况及数据,不能马马虎虎,要考虑到尽可能达到的范围,已使输入输出完整准确。
2.3.2 时间特性要求
- 查询服务部分:用户通过电脑提交命令到返回结果不超过5秒钟。
- 数据管理部分:提交某一数据录入到结果返回结果不超过5秒钟。
2.3.3 灵活性
- 采用现在最流行的触控模式操作。
- 客户端运行在Android 2.1系统及以上;服务端运行在windows7上。
- 精度和有效时限由用户设定。
2.4输入输出要求
- 符合精度要求
2.5数据管理能力要求
- 帐号信息:id号码大小为6个字符,只能为数字。
- 聊天记录信息:不能存在非法语言且不能多于8行和2000字符。
2.6运行环境设定
服务器端:
- 硬件需求:处理器双核2.0GHZ以上,内存2G以上,硬盘300G以上
- 软件需求:mysql数据库
客户端:
- 硬件需求:安卓系统2.1以上平台,搭载内存卡**
3.系统总体设计
系统采用流行的C/S结构模式。系统的分析设计采用面向对象的技术,采用Visio等工具进行辅助设计。
3.1定义
3.1.1 专业术语
在整个系统设计实现中会涉及到的专业术语如下表所示:
表3.1 专业术语表
SQL | 结构化查询语言 | 数据库操作语言 |
JAVA | Java面向对象编程语言 | 编程语言 |
HTML | 超文本标记语言 | 编程语言 |
MySQL | MySQL数据库 | 数据库 |
Eclipse | 开放源代码的,基于java的可扩展开发平台 | 编程语言 |
PL/SQL | 过程化SQL语言 | 编程语言 |
Android | Android编程语言 | 编程语言 |
ADT | Android模拟器 | 运行工具 |
3.2系统体系结构设计
3.2.1 系统逻辑架构图
图3.1 系统逻辑架构图
3.2.2 系统物理架构图
图3.2 系统物理架构图
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?(2)https://developer.aliyun.com/article/1558198