版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仿qq聊天系统课程设计 目录 绪论 1 一需求分析 1 1软件功能需求分析 2 2 安全需求分析 2 二总体设计 3 1 软件结构图 3 2 功能描述 3 1注册功能概要 4 2登录功能概要 4 3聊天功能概要 5 3 安全设计 6 三数据库设计 6 1概念结构设计 6 2逻辑结构设计 7 3物理结构设计 7 四详细设计 8 1 用户聊天模块总体流程图 8 2 服务端模块 8 3 客户端模块 9 五编码 14 六结论 16 学习体会 17 致谢 17 参考文献 17 绪论 随着现代技术的不断输入和信息化的广泛普及,移动网络作为一种新兴事物,在近些年得到了前所未有的普及和深入,移动网络上的各种应
2、用层出不穷,给各个阶层、各个年龄段的用户提供了不同的个性化的服务。而现代中小型企业的领导认识到进一步提高企业信息化的必要性。为使企业能在瞬息万变的信息时代生存下去,适应激烈的市场竞争,现代企业要求加强员工之间的交流和通信能力,尤其是领导和员工之间的共同能力,实时的交流系统就是在这种条件下诞生的。在这个信息化时代,手机已成为继固话之后最为通俗的交流工具,“聊天”成了生活的必需品,这就有了系统下人与人之间的多样会话方式qq聊天。传统会话聊天或许是面对面闲话家常或许是通过打电话进行交流,但都存在各种不便及弊端 。而手机qq,在手机系统下,占用手机相对很小的空间,系统的记录了qq好友的信息,不仅突破了
3、各种条件的束缚,减轻了机主的负担,更方便了使用者的通讯交流。 综上所述,本课题主要研究基于android的移动聊天系统,以更好的用户体验性为目的开发出界面简洁,用户易操作的移动即时通信聊天工具。该聊天工具的主要功能用户注册,登录,好友一对一聊天,添加新好友,修改个人信息等。在该即时通信工具中利用bmob实现android端与bmob服务端的数据操作。bmob对数据的增删改查找做了很好地封装,以及其批量的处理。客户端之间通过服务器对数据的转发实现相互通信。一 需求分析 随着经济全球化的推进以及企业激烈的竞争,改善企业内部及整个供应链各环节的管理、调度资源配置,迅速适应客户的新需求和市场新机遇,是
4、企业赢得竞争胜利的决定性因素。需求分析是软件分析中的一个重要步骤。它的基本任务是要准确地分析出系统应用者的需要,以及系统目标必须具备哪些功能。这些功能必须准确地,完整地体现出用户的要求。1软件功能需求分析 通过对用户需求的市场调查的分析,确定反应用户需求的系统逻辑模型,把整个设计划分成3个单元,分别是程序启动、用户界面、后台服务。使用android和java编程语言及网络数据库相结合,编写一个基于android端的移动聊天系统软件。这个系统提供多个用户及时并发通信的平台。未注册用户可以注册成系统成员,已注册用户可以通过登录进入聊天系统。在系统中用户可以选择与某一个用户聊天,用户可以查找好友或附
5、近的人,可以添加好友或把好友加黑名单等。 用户注册 用户在注册界面填入相关正确信息后,后台对其进行处理。 用户登录用户输入自己的qq帐号及密码后,点击登录,后台对其进行验证,以及好友的查找,登录成功后返回该用户的会话界面。 聊天用户选定聊天对象后,对其发送信息,信息将由后台转发给选定的聊天对象,进行,提示,显示。 后台运行 用户可以退出主界面,将聊天软件在后台运行,当有消息传入时,消息会用广播的形势显示。 后台管理对用户的管理。2 安全需求分析 由于android系统自身具备的开放源码的特征,它的安全性能成为信息安全领域研究的一个重要课题。android的安全性能主要体现在两个方面androi
6、d的系统安全和数据安全。android系统安全是指智能终端本身的安全,是对操作系统的保护,防止未授权的访问及对授权用户服务的拒绝或对未授权用户服务的允许,包括行为检测、记录等措施。android的数据安全指确保存储数据完整性、合法性二个方面,要求做到系统正确地传输数据,授权程序顺利地读取数据。 android安全中的一个重要的设计点是在默认的情况下应用没有权限执行对其他应用程序、操作系统或用户的有害操作,这些操作包括读取用户的隐私数据,访问网络,保持设备活动等等,应用程序的进程是一个安全的黑盒子,在没有给它权限的时候它不能干扰其他应用程序。二 总体设计 系统采用流行的c/s结构模式。系统的分析
7、设计采用面向对象的技术,应用visio等工具进行辅助设计。1 软件结构图 退出 联系人 附近的人 添加好友 设置 消息提醒 个人资料 黑名单 注册 登录 会话 与陌生人 与好友 图1 软件结构图 2 功能描述 进入该软件,进入登录界面,如果没有账号,则可以点击立即注册,进入注册界面进行注册,登录进入主界面,显示会话、联系人、设置,通过选择相应菜单进行相关操作。1注册功能概要 输入注册需要的信息,且保证正确 参与者用户 执行者用户 前提条件开启程序,进入注册界面 用户注册流程图开始 注册成功 存储用户信息 用户信息 注册 填写个人信息 验证信息完整性 验证信息格式 否 图1 用户注册流程图 2登
8、录功能概要 判断输入信息格式 服务器验证输入信息 跳转进入好友列表界面 登录流程图服务器验证 登录成功 判断qq号及密码是否为空 进入 输入qq号及密码 失败 成功 图2 登录功能流程图 3聊天功能概要 用户点击联系人列表中的一个好友时,进入聊天界面 在输入框输入信息,点击发送按钮,发送信息 好友回复消息是在该聊天页面显示 当有好友发消息过来时,系统会通过toast提示 当qq在后台运行时有好友发送消息过来时,系统会通过广播的形势告诉用户 用户聊天后退出聊天界面后,聊天信息保留 用户聊天模块总体流程图接收信息,处理,转发(根据账号) 用户b 成功登录/返回主界面 点击好友进入聊天界面 输入信息
9、 用户a 成功登录/返回主界面 点击好友进入聊天界面 输入信息 传输好友回复的消息 传输好友回复的消息 封装信息进行传输 封装信息进行传输 图3 用户聊天模块总体流程图 3 安全设计 通过为不同的用户设计不同的用户视图,和为每一个登录的用户设置密码来实现数据库的安全设计要求。三数据库设计 1概念结构设计 好友账号 消息编号 聊天 注册时间 性别 账号 昵称 会话 密码 注册时间 性别 账号 昵称 会话 密码 发送/接收消息时间 好友头像 消息内容 图1 总体e-r图 2逻辑结构设计 1) 用户信息(用户编号,用户账号,用户密码,性别,昵称,头像) 2) 会话信息(消息编号,好友账号,好友头像,
10、发送/接收消息时间,消息内容) 3物理结构设计 表3-1 用户信息-users 明细 字段 类型 主键 外键 唯一 可为空 用户编号 objectid string 是 否 账号 username string 是 是 是 否 密码 password string 否 否 性别 sex bool 是 昵称 nick string 头像 表3-2 会话信息-bmobmsg 明细 字段 类型 主键 外键 唯一 可为空 消息编号 messageid string 是 否 好友账号 username string 是 是 是 否 好友头像 否 是 发送/接收消息时间 s/rtime data 是 是
11、消息内容 content string 否 是 四 详细设计 1 用户聊天模块总体流程图 接收信息,处理,转发(根据账号) 用户b 成功登录/返回主界面 点击好友进入聊天界面 输入信息 用户a 成功登录/返回主界面 点击好友进入聊天界面 输入信息 传输好友回复的消息 传输好友回复的消息 封装信息进行传输 封装信息进行传输 图1 用户聊天模块总体流程图 2 服务端模块 在该即时通信工具中利用bmob实现android端与bmob服务端的数据操作。bmob对数据的增删改查做了很好地封装,以及其批量的处理。客户端之间通过服务器对数据的转发实现相互通信。服务端具体功能 注册信息自动分配10位对象标识,
12、并保存该用户信息,同时将信息返回给客户端。 登录信息检查登录信息是否正确,并向客户端返回登录信息。如信息正确,则用户可以成功登录,若登录信息不正确,则会提示是哪种登录错误 聊天信息转发给消息指定的用户。 用户间的联系将各用户间的关系保存在服务器端,可以在服务器端看出所以qq用户间的关系。3 客户端模块 客户端具体功能 登录功能建立与服务器的连接并登录,能显示登录错误信息。 界面显示将好友显示在联系人列表中,并可以通过点击进入会话界面,进行与好友的聊天 聊天功能当好友发送消息时显示在会话界面。用户也同时可以在输入框中输入相应信息点击发送与好友聊天。 聊天纪录能保存聊天纪录,并能察看聊天纪录。 信
13、息提示系统弹出信息提示到来信息,并有声音提示。 发送端提示聊天的对方。 后台运行当用户将客户端进行后台运行时,如果有消息传输过来,系统会直接通过广播的形势显示消息的来源以及内容。用户在客户端点击应用程序图标后启动应用如下图图1 客户端启动界面 注册登录以后就进入主界面,界面下方有会话、联系人、设置选项,通过选择相应菜单进入相应功能界面,联系人界面如下图所示图2 联系人界面 通过点击联系人右面的加号添加好友并进入查找好友界面,前提是服务器端存在此用户才能搜索成功,例如搜索456用户,如下图所示图3 查找好友界面 点击添加按钮,则ymm用户向456用户发送好友添加申请,如果456用户在登录状态则会
14、收到此申请,如果同意ymm的请求添加好友申请,则可以单击同意按钮,如下图图4 好友添加请求界面 单击同意按钮,则同意ymm的好友添加请求,否则忽视此条好友添加申请消息图5 同意好友请求界面 同意ymm的申请后,则ymm用户就是自己的好友了,可以与ymm进行对话 图6 与ymm聊天界面 退出456账号,登录ymm账号查看,此时可以看到456用户给自己发送的消息提醒条数并可查看相关聊天信息 图7 456用户收到回话提醒及查看消息 五 编码 chatactivity.java 用户聊天代码 public class chatactivity extends activitybase implemen
15、ts onclicklistener, ixlistviewlistener, eventlistener private button btn_chat_emo, btn_chat_send, btn_chat_add,btn_chat_keyboard, btn_speak, btn_chat_voice; xlistview mlistview; emoticonsedittext edit_user_comment; string targetid=“; bmobchatuser targetuser; private static int msgrnum; private linea
16、rlayout layout_more, layout_emo, layout_add; private viewr r_emo; private textview tv_picture, tv_camera, tv_location; / 组装聊天对象 targetuser=(bmobchatuser) getintent().getserializableextra(“user“); targetid=targetuser.getobjectid(); / bmoblog.i(“聊天对象“ + targetuser.getusername() + “,targetid=“ / + targ
17、etid); /注册广播接收器 initnewmessagebroadcast(); initview(); private list initmsgdata() list list=bmobdb.create(this).querymessages(targetid,msgrnum); return list; private void initorrefresh() if (madapter !=null) if (mymessagereceiver.mnewnum !=0) / 用于更新当在聊天界面锁屏期间来了消息,这时再回到聊天页面的时候需要显示新来的消息 int news=mymes
18、sagereceiver.mnewnum;/有可能锁屏期间,来了n条消息,因此需要倒叙显示在界面上 int size=initmsgdata().size(); for(int i=(news-1);i=0;i-) madapter.add(initmsgdata().get(size-(i+1);/ 添加最后一条消息到界面显示 mlistview.setselection(madapter.getcount() - 1); else madapter.notifydatasetchanged(); else madapter=new messagechatadapter(this, init
19、msgdata(); mlistview.setadapter(madapter); public void onsuccess() showlog(“发送成功“); (bmobmsg) values) .setstatus(bmobconfig.status_send_success); parentv.findviewbyid(r.gress_load).setvisibility( view.invisible); parentv.findviewbyid(r.id.iv_fail_resend) .setvisibility(view.invisible); parentv
20、.findviewbyid(r.id. tv_send_status) .setvisibility(view.visible); (textview) parentv.findviewbyid(r.id.tv_send_status) .settext(“已发送“); private class newbroadcastreceiver extends broadcastreceiver override public void onreceive(context context, intent intent) string from=intent.getstringextra(“fromi
21、d“); string msgid=intent.getstringextra(“msgid“); string msgtime=intent.getstringextra(“msgtime“); / 收到这个广播的时候,message已经在消息表中,可直接获取 bmobmsg msg=bmobchatmanger.getinstance(chatactivity.this).getmessage(msgid, msgtime); if (!from.equals(targetid)/ 如果不是当前正在聊天对象的消息,不处理 return; /添加到当前页面 madapter.add(msg)
22、; / 定位 mlistview.setselection(madapter.getcount() - 1); /取消当前聊天对象的未读标示 bmobdb.create(chatactivity.this).resetunread(targetid); / 记得把广播给终结掉 abortbroadcast(); 六结论 经过一个学期的学习,实践和教学老师的悉心指导,该仿qq社交软件系统经过测试,达到了预期的目标,完成了一些基本的功能。本系统功能虽然较为简单,但还是具备一定的实用性和灵活性以及包括很多android的专业知识,并可以在使用的过程中不断的修改完善。移动聊天软件虽然原理不难,但依然有很多的问题需要我们一一解决,例如如何提高用户体验性,现在市场上的聊天软件已经很多,功能也相对完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古棉原料购销合同范本
- 口腔门诊协议合同范本
- 刷脸支付商户合同范本
- 合伙经营分财产协议书
- 职业培训行业工艺流程优化
- 合同附件房型补充协议
- 企业承包生产合同范本
- 动漫委托设计合同范本
- 制作安装框架合同范本
- 股权投资市场分析与技术规范
- DB51-T 3299-2025 数据资产登记规范
- 淤地坝知识培训课件
- 保密知识培训课件
- 2025昆明幼儿师范高等专科学校引进高层次人才(6人)考试模拟试题及答案解析
- 徐志摩的诗课件
- 五年级上册体育全册教案(2025-2026学年)(表格式)
- GB/T 46225-2025柔性多孔聚合物材料层压用聚氨酯泡沫规范
- 2025年日照盐粮集团有限公司公开招聘工作人员备考考试题库附答案解析
- 2025学年第一学期江浙皖高中(县中)发展共同体高三语文10月联考试题文言文详解:《宋史·陈兢传》、王夫之《宋论》
- 2025年农村会计考试试题及答案
- 2025浙江杭州市发展和改革委员会所属事业单位招聘高层次、紧缺人才4人笔试模拟试题及答案解析
评论
0/150
提交评论