

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录绪论.1一. 需求分析.11.1软件功能需求分析.21 2安全需求分析.2二总体设计.32.1软件结构图.32.2功能描述.32 2. 1注册功能概要.42. 2.2登录功能概要.42 2. 3聊天功能概要.52 3安全设计.6三.数据库设计.63 1概念结构设计.63 2逻辑结构设计.73. 3物理结构设计.7四详细设计.84 1用户聊天模块总体流程图.84.2服务端模块.84.3客户端模块.9五编码.14六.结论.16学习体会.17.17参考文献.17绪论随着现代技术的不断输入和信息化的广泛普及,移动网络作为一种新兴事 物,在近些年得到了前所未有的普及和深入,移动网络上的各种应用层出不
2、穷, 给各个阶层、各个年龄段的用户提供了不同的个性化的服务。而现代中小型企业 的领导认识到进一步提髙企业信息化的必要性。为使企业能在瞬息万变的信息时 代生存下去,适应激烈的市场竞争,现代企业要求加强员工之间的交流和通信能 力,尤其是领导和员工之间的共同能力,实时的交流系统就是在这种条件下诞生 的。在这个信息化时代,手机已成为继固话之后最为通俗的交流工具,聊天” 成了生活的必需品,这就有了系统下人与人之间的多样会话方式一QQ聊天。传 统会话聊天或许是面对面闲话家常或许是通过打进行交流,但都存在各种不便及 弊端。而手机QQ,在手机系统下,占用手机相对很小的空间,系统的记录了QQ好友的信息,不仅突破
3、了各种条件的束缚,减轻了机主的负担,更方便了使用者 的通讯交流。综上所述,本课题主要研究基于Android的移动聊天系统,以更好的用户体 验性为目的开发出界面简洁,用户易操作的移动即时通信聊天工具。该聊天工具 的主要功能:用户注册,登录,好友一对一聊天,添加新好友,修改个人信息等。 在该即时通信工具中利用Bmob实现Android端与Bmob服务端的数据操作Bmob对数据的增删改查找做了很好地封装,以及其批量的处理。客户端之间通过服务 器对数据的转发实现相互通信。一. 需求分析随着经济全球化的推进以及企业激烈的竞争,改善企业部及整个供应链 各环节的管理、调度资源配置,迅速适应客户的新需求和市场
4、新机遇,是企 业赢得竞争胜利的决定性因素。需求分析是软件分析中的一个重要步骤。它的基本任务是要准确地分析 出系统应用者的需要,以及系统目标必须具备哪些功能。这些功能必须准确地,完整地体现出用户的要求。1.1软件功能需求分析通过对用户需求的市场调查的分析,确定反应用户需求的系统逻辑模型,把 整个设计划分成3个单元,分别是程序启动、用户界面、后台服务。使用Android和java编程语言及网络数据库相结合,编写一个基于android端的移动聊天系 统软件。这个系统提供多个用户及时并发通信的平台。未注册用户可以注册成系 统成员,已注册用户可以通过登录进入聊天系统。在系统中用户可以选择与某一 个用户聊
5、天,用户可以查找好友或附近的人,可以添加好友或把好友加黑等。 用户注册:用户在注册界面填入相关正确信息后,后台对其进行处理。用户登录:用户输入自己的QQ及密码后,点击登录,后台对其进行验证, 以及好友的查找,登录成功后返回该用户的会话界面。聊天:用户选定聊天对象后,对其发送信息,信息将由后台转发给选定的聊 天对象,进行,提示,显示。后台运行用户可以退出主界面,将聊天软件在后台运行,当有消息传入时, 消息会用广播的形势显示。后台管理:对用户的管理。1.2安全需求分析由于Android系统自身具备的开放源码的特征,它的安全性能成为信息安全 领域研究的一个重要课题。Android的安全性能主要体现在
6、两个方面:Android的系统安全和数据安全。Android系统安全是指智能终端本身的安全,是对操作 系统的保护,防止未授权的访问及对授权用户服务的拒绝或对未授权用户服务的 允许,包括行为检测、记录等措施-Android的数据安全指确保存储数据完整性、 合法性二个方面,要求做到系统正确地传输数据,授权程序顺利地读取数据。Android安全中的一个重要的设计点是在默认的情况下应用没有权限执行 对其他应用程序、操作系统或用户的有害操作,这些操作包括读取用户的隐私数 据,访问网络,保持设备活动等等,应用程序的进程是一个安全的黑盒子,在没有给它权限的时候它不能干扰其他应用程序。二. 总体设计系统采用流
7、行的C/S结构模式。 系统的分析设计采用面向对象的技术, 应用Visio等工具进行辅助设计。2.1软件结构图注册登录2.2功能描述进入该软件,进入登录界面,如果没有账号,则可以点击立即注卅,进入注 册界面进行注册,登录进入主界面,显示会话、联系人、设置,通过选择相应菜 单进行相关操作。会话联系人设置f退出与好友附近的人2. 2.1注册功能概要输入注册需要的信息,且保证正确参与者:用户执行者:用户前提条件:开启程序,进入注册界面用户注册流程图:图2.2. 1用户注册流程图2. 2. 2登录功能概要判断输入信息格式服务器验证输入信息跳转进入好友列表界面登录流程图:2. 2. 3聊天功能概要用户点击
8、联系人列表中的一个好友时,进入聊天界面在输入框输入信息,点击发送按钮,发送信息好友回复消息是在该聊天页面显示当有好友发消息过来时,系统会通过Toast提示当QQ在后台运行时有好友发送消息过来时,系统会通过广播的形势告诉用 户用户聊天后退出聊天界面后,聊天信息保留用户聊天模块总体流程图:进入失败图2.2.2登录功能流程图图2. 2.3用户聊天模块总体流程图2.3安全设计通过为不同的用户设计不同的用户视图,和为每一个登录的用户设置密码来 实现数据库的安全设计要求。三. 数据库设计3.1概念结构设计昵称图3. 1总体E-R图3. 2逻辑结构设计1)用户信息(用户编号,用户账号,用户密码,性别,昵称,
9、头像)2)会话信息(消息编号,好友账号,好友头像,发送/接收消息时间,消息容)3. 3物理结构设计表3T用户信息-Users明细字段类型主键外键唯一可为空用户编号objectldString是否账号UsernameString是是是否密码PasswordString否否性别sexbool是昵称nickstring头像表3-2会话信息-Bmobmsg明细字段类型主键外键唯一可为空消息编号messageIdstring是否好友账号Usernamestring是是是否好友头像否是发送/接收消 息时问S/Rtimedata是是消息容Contentstring否是四. 详细设计4.1用户聊天模块总体流程
10、图图4.1.1用户聊天模块总体流程图4.2服务端模块在该即时通信工具中利用Bmob实现Android端与Bmob服务端的数据操作Bmob对数据的增删改查做了很好地封装,以及其批量的处理。客户端之间通过 服务器对数据的转发实现相互通信。服务端具体功能:注册信息:自动分配10位对象标识,并保存该用户信息,同时将信息返回 给客户端。登录信息;检查登录信息是否正确,并向客户端返回登录信息。如信息正确, 则用户可以成功登录,若登录信息不正确,则会提示是哪种登录错误聊天信息:转发给消息指定的用户。用户间的联系:将各用户间的关系保存在服务器端,可以在服务器端看出所 以QQ用户1可的关系。4.3客户端模块客户
11、端具体功能登录功能:建立与服务器的连接并登录,能显示登录错误信息。界面显示:将好友显示在联系人列表中,并可以通过点击进入会话界面,进行与好友的聊天聊天功能:当好友发送消息时显示在会话界面。用户也同时可以在输入框中 输入相应信息点击发送与好友聊天。聊天纪录:能保存聊天纪录,并能察看聊天纪录。信息提示:系统弹出信息提示到来信息,并有声音提示。发送端提示聊天的对方。后台运行:当用户将客户端进行后台运行时,如果有消息传输过来,系统会直接通过广播的形势显示消息的来源以及容。用户在客户端点击应用程序图标后启动应用如下图:还没有账号?立即注册图4. 3. 1客户端启动界面注册登录以后就进入主界面,界面下方有
12、会话、联系人、设置选项,通过选 择相应菓单进入相应功能界面,联系人界面如下图所示:a11S0会话图4.3.2联系人界面通过点击联系人右面的加号添加好友并进入查找好友界面,前提是服务器端 存在此用户才能搜索成功,例如搜索456用户,如下图所示:5554:adt4联系人博索新朋友如附近的人MN0P联系人设遇AB图4.3.3查找好友界面点击添加按钮,则ymm用户向456用户发送好友添加申请,如果456用户在 登录状态则会收到此申请,如果同意ymm的请求添加好友申请,则可以单击同意 按钮,如下图:闫W 6:20A新朋友I.DBEftmira mt utMl貝 E urwtfM AtuoUW wr.ry
13、AS |EW r*5554:adt4nx5554:adt4 6:10456456查找好友捜索添加UMr*tyvcd” yww亠图4.3.4好友添加请求界面单击同意按钮,则同意ynrni的好友添加请求,否则忽视此条好友添加申请消息:图4. 3. 5同意好友请求界面同意ymm的申请后,则ymm用户就是自己的好友了,可以与ymm进行对话Hello, I am图4. 3. 6与ymm聊天界面退岀456账号,登录ymm账号查看,此时可以看到456用户给自己发送的消息提 醒条数并可查看相关聊天信息5554;ddt436 6:26矿Brnwe xat wuM456Hello, I am A 6:23会话今天
14、06;23与456对话83-12-28 16:53我通过了你的好友验证请求,我们可以开始聊天了!06:23图4.3.7 456用户收到回话提醒及查看消息五. 编码ChatActivity. java用户聊天代码/*聊天界面拿/public class ChatActivity extends ActivityBase implements OnClickListener.IXListViewListener. EventListener private Button btn_chat_emo, btn_chat_send. btn_chatadd,btn_chat_keyboard, btn_
15、speak.btn_chat_voice;XListView niListView;Emot i consEd i tText edi t_user_coinment ;String target Id =”;BmobChatUser targetUser;private static intMsgPagerNumprivate LinearLayout layout_more, layout_emo, layout_add;private ViewPagei pageremo;private TextView tv_picture, tv_camera, tv_location;/组装聊天对
16、象S3HellojamtargetUser = (BmobChatUser) get Intent() getSerializableExtra(nuserw); target Id =targetllsei getObjectld();/BmobLog. i (M聊天对象:” +targetUser. getUsername() +n. targetld =/+ targetld):/注册广播接收器i n i tNewMessageBroadCast();initViewO ;/* *加载消息历史,从数掲库中读出*/private List initMsgDataO List list =B
17、mobDB c?ez?fe(this) queryMessages (tnrRet Id匕gerAd/w);return list;/*界面刷新*/private void initOrRefresh() if (mAdapter != null) if (MyMessageReceiver.mNewNum!= 0) /7用于更新当在聊天界面锁.屏期间来 了消息,这时再回到聊天页面的时候需要显示新来的消息int news= MyMessageRecei ver.mNewNunr.7有可能殒屛期间,来了N条涓息. 因此需要倒叙显示在界面上int size = initMsgData() size
18、();for(int i = (news-l): i=0; i) inAdapter, add (ini tMsgDa t a (). get (size-(i+l)添加最后_条消 息到界面显示mListView. setSelection(inAdapter getCount() - 1); elsemAdapter not i fyDataSetChanged(); else mAdapter = new MessageChatAdapter(this, initMsgDataO); mListView.setAdaptei(Adapter);public void onSuccessO
19、ShowLog(发送成功);(BmobMsg) values).setStatus (BmobConf ig.STATUS_SEND_SUCCESS);pare ntV. Fin dViewById(R gress_load). setYisibil ity (INVISIBLE) xparentV. FindViewById(R. id.iv_fail_resend).setVisibility(View.INVISIBLE) -.parentV FindViewById(R. id. tv_send_status).setVisibility(View.VISIBLE) (Te
20、xtView) parentV. findViewById(R. id. tv_send_status).setText(w巳发送”);/*新消息广播接收者*/private class NewBroadcastReceiver extends BroadcastRecei vei Overridepublic void onReceive(Context context. Intent intent) String from = intent getStrin(?Extra(fromId);String msgld = intent. getStringExtraCmsgld);String
21、 msgTime = intent getStrinxExtrQCmsgTime);/收到这个广播的时候,message巳经在消息表中,可直接获取BmobMsg msg =BmobChatManger getInstance(ChatActivity this) getMessage(msgld. msgTime);if (! from, equals (target Id)/如果不是当前正在聊天对象的消息.不处理return;添加到当前页面mAdapter add(msg);/定位mListView.setSelection(mAdapter getCount() - 1);取消当前聊天对象的未读标示BmobDB create(ChatActivity. this) resetUnread(target Id);/记得把广播给终结掉abortBroadcast();六. 结论经过一个学期的学习,实践和教学老师的悉心指导,该仿QQ社交软件系统 经过测试,达到了预期的目标,完成了一些基本的功能。本系统功能虽然较为简 单,但还是具备一定的实用性和灵活性以及包括很多Android的专业知识,并可 以在使用的过程中不断的修改完善。移动聊天软件虽然原理不难,但依然有很多的问题需要我们一一解决,例如: 如何提高用户体验性, 现在市场上的聊天软件已经很多, 功能也相对完善, 技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【智联招聘】2024城市新质人才竞争力指数报告-简版
- 人教新目标 (Go for it) 版七年级上册Unit 9 My favorite subject is science.Section A教案配套
- 二年级体育上册 2.25接力跑活动教学设计
- 消防控制室硬件设备详解及保养措施
- Unit 9 Have you ever been to a museum Section A 3a~3c教学设计-2023-2024学年人教版英语八年级下册
- 2025年度幼儿园教师编制考试全真模拟试题及答案(共五套)
- 市场调研委托合同范文
- 2025标准知识产权许可合同范本
- 软件服务合同模板
- 个人承包种植合同范本
- 工作场所有害因素职业接触限值课件-
- 2023年郑州信息工程职业学院单招职业适应性测试笔试模拟试题及答案解析
- 好书推荐-《三毛流浪记》77955课件
- 领悟社会支持量表(PSSS)
- 自动控制原理全套ppt课件(完整版)
- 手卫生相关知识考核试题与答案
- 《同分母分数加减法》教学课件人教新课标
- 产业经济学第三版(苏东水)课后习题及答案完整版
- 初中综合实践课程标准
- 首件检验记录表(标准样版)
- 中建六局建设发展公司责任目标管理考核办法
评论
0/150
提交评论