目录
绪 1
.需求分析 1
11软件功需求分析 2
12 安全需求分析 2
二.总体设计 3
21 软件结构图 3
22 功描述 3
221注册功概 4
222登录功概 4
223聊天功概 5
23 安全设计 6
三.数库设计 6
31概念结构设计 6
32逻辑结构设计 7
33物理结构设计 7
四.详细设计 8
41 户聊天模块总体流程图 8
42 服务端模块 8
43 客户端模块 9
五.编码 14
六.结 16
学体会 17
致谢 17
参考文献 17
绪
着现代技术断输入信息化广泛普移动网络作种新兴事物年前未普深入移动网络种应层出穷阶层年龄段户提供性化服务现代中型企业领导认识进步提高企业信息化必性企业瞬息万变信息时代生存适应激烈市场竞争现代企业求加强员工间交流通信力尤领导员工间力实时交流系统种条件诞生
信息化时代手机已成继固话通俗交流工具聊天成生活必需品系统间样会话方式—QQ聊天传统会话聊天许面面闲话家常许通电话进行交流存种便弊端 手机QQ手机系统占手机相空间系统记录QQ友信息仅突破种条件束缚减轻机负担更方便者通讯交流
综述课题研究基Android移动聊天系统更户体验性目开发出界面简洁户易操作移动时通信聊天工具该聊天工具功:户注册登录友聊天添加新友修改信息等该时通信工具中利Bmob实现Android端Bmob服务端数操作Bmob数增删改查找做封装批量处理客户端间通服务器数转发实现相互通信
. 需求分析
着济全球化推进企业激烈竞争改善企业部整供应链环节理调度资源配置迅速适应客户新需求市场新机遇企业赢竞争胜利决定性素
需求分析软件分析中重步骤基务准确分析出系统应者需系统目标必须具备功功必须准确完整体现出户求
11软件功需求分析
通户需求市场调查分析确定反应户需求系统逻辑模型整设计划分成3单元分程序启动户界面台服务Androidjava编程语言网络数库相结合编写基android端移动聊天系统软件系统提供户时发通信台未注册户注册成系统成员已注册户通登录进入聊天系统系统中户选择某户聊天户查找友附添加友友加黑名单等
Ø 户注册 :户注册界面填入相关正确信息台进行处理
Ø 户登录:户输入QQ帐号密码点击登录台进行验证友查找登录成功返回该户会话界面
Ø 聊天:户选定聊天象发送信息信息台转发选定聊天象进行提示显示
Ø 台运行 户退出界面聊天软件台运行消息传入时消息会广播形势显示
Ø 台理:户理
12 安全需求分析
Android系统身具备开放源码特征安全性成信息安全领域研究重课题Android安全性体现两方面:Android系统安全数安全Android系统安全指智终端身安全操作系统保护防止未授权访问授权户服务拒绝未授权户服务允许包括行检测记录等措施Android数安全指确保存储数完整性合法性二方面求做系统正确传输数授权程序利读取数
Android安全中重设计点默认情况应没权限执行应程序操作系统户害操作操作包括读取户隐私数访问网络保持设备活动等等应程序进程安全黑盒子没权限时候干扰应程序
二. 总体设计
系统采流行CS结构模式系统分析设计采面象技术应Visio等工具进行辅助设计
21 软件结构图
退出
联系
附
添加友
设置
消息提醒
资料
黑名单
注册
登录
会话
陌生
友
图21 软件结构图
22 功描述
进入该软件进入登录界面果没账号点击立注册进入注册界面进行注册登录进入界面显示会话联系设置通选择相应菜单进行相关操作
221注册功概
Ø 输入注册需信息保证正确
Ø 参者:户
Ø 执行者:户
Ø 前提条件:开启程序进入注册界面
户注册流程图:
开始
注册成功
存储户信息
户信息
注册
填写信息
验证信息完整性
验证信息格式
否
图221 户注册流程图
222登录功概
Ø 判断输入信息格式
Ø 服务器验证输入信息
Ø 跳转进入友列表界面
登录流程图:
服务器验证
登录成功
判断QQ号密码否空
进入
输入QQ号密码
失败
成功
图222 登录功流程图
223聊天功概
Ø 户点击联系列表中友时进入聊天界面
Ø 输入框输入信息点击发送钮发送信息
Ø 友回复消息该聊天页面显示
Ø 友发消息时系统会通Toast提示
Ø QQ台运行时友发送消息时系统会通广播形势告诉户
Ø 户聊天退出聊天界面聊天信息保留
户聊天模块总体流程图:
接收信息处理转发(根账号)
户B
成功登录返回界面
点击友进入聊天界面
输入信息
户A
成功登录返回界面
点击友进入聊天界面
输入信息
传输友回复消息 传输友回复消息
封装信息进行传输 封装信息进行传输
图223 户聊天模块总体流程图
23 安全设计
通户设计户视图登录户设置密码实现数库安全设计求
三.数库设计
31概念结构设计
友账号
消息编号
聊天
注册时间
性
账号
昵称
会话
密码
注册时间
性
账号
昵称
会话
密码
发送接收消息时间
友头
消息容
图31 总体ER图
32逻辑结构设计
1) 户信息(户编号户账号户密码性昵称头)
2) 会话信息(消息编号友账号友头发送接收消息时间消息容)
33物理结构设计
表31 户信息Users
明细
字段
类型
键
外键
唯
空
户编号
objectId
String
否
账号
Username
String
否
密码
Password
String
否
否
性
sex
bool
昵称
nick
string
头
表32 会话信息Bmobmsg
明细
字段
类型
键
外键
唯
空
消息编号
messageId
string
否
友账号
Username
string
否
友头
否
发送接收消息时间
SRtime
data
消息容
Content
string
否
四. 详细设计
41 户聊天模块总体流程图
接收信息处理转发(根账号)
户B
成功登录返回界面
点击友进入聊天界面
输入信息
户A
成功登录返回界面
点击友进入聊天界面
输入信息
传输友回复消息 传输友回复消息
封装信息进行传输 封装信息进行传输
图411 户聊天模块总体流程图
42 服务端模块
该时通信工具中利Bmob实现Android端Bmob服务端数操作Bmob数增删改查做封装批量处理客户端间通服务器数转发实现相互通信
服务端具体功:
Ø 注册信息:动分配10位象标识保存该户信息时信息返回客户端
Ø 登录信息:检查登录信息否正确客户端返回登录信息信息正确户成功登录登录信息正确会提示种登录错误
Ø 聊天信息:转发消息指定户
Ø 户间联系:户间关系保存服务器端服务器端出QQ户间关系
43 客户端模块
客户端具体功
Ø 登录功:建立服务器连接登录显示登录错误信息
Ø 界面显示:友显示联系列表中通点击进入会话界面进行友聊天
Ø 聊天功:友发送消息时显示会话界面户时输入框中输入相应信息点击发送友聊天
Ø 聊天纪录:保存聊天纪录察聊天纪录
Ø 信息提示:系统弹出信息提示信息声音提示
Ø 发送端提示聊天方
Ø 台运行:户客户端进行台运行时果消息传输系统会直接通广播形势显示消息源容
户客户端点击应程序图标启动应图:
图431 客户端启动界面
注册登录进入界面界面方会话联系设置选项通选择相应菜单进入相应功界面联系界面图示:
图432 联系界面
通点击联系右面加号添加友进入查找友界面前提服务器端存户搜索成功例搜索456户图示:
图433 查找友界面
点击添加钮ymm户456户发送友添加申请果456户登录状态会收申请果意ymm请求添加友申请单击意钮图:
图434 友添加请求界面
单击意钮意ymm友添加请求否忽视条友添加申请消息:
图435 意友请求界面
意ymm申请ymm户友ymm进行话
图436 ymm聊天界面
退出456账号登录ymm账号查时456户发送消息提醒条数查相关聊天信息
图437 456户收回话提醒查消息
五. 编码
ChatActivityjava 户聊天代码
*** 聊天界面*
public class ChatActivity extends ActivityBase implements OnClickListener
IXListViewListener EventListener {
private Button btn_chat_emo btn_chat_send btn_chat_addbtn_chat_keyboard btn_speak btn_chat_voice
XListView mListView
EmoticonsEditText edit_user_comment
String targetId
BmobChatUser targetUser
private static int MsgPagerNum
private LinearLayout layout_more layout_emo layout_add
private ViewPager pager_emo
private TextView tv_picture tv_camera tv_location
组装聊天象
targetUser (BmobChatUser) getIntent()getSerializableExtra(user)
targetId targetUsergetObjectId()
BmobLogi(聊天象: + targetUsergetUsername() + targetId
+ targetId)
注册广播接收器
initNewMessageBroadCast()
initView()
}
** * 加载消息历史数库中读出*
private List
List
return list
}
*** 界面刷新 *
private void initOrRefresh() {
if (mAdapter null) {
if (MyMessageReceivermNewNum 0) { 更新聊天界面锁屏期间消息时回聊天页面时候需显示新消息
int news MyMessageReceivermNewNum锁屏期间N条消息需倒叙显示界面
int size initMsgData()size()
for(int i(news1)i>0i){
mAdapteradd(initMsgData()get(size(i+1))) 添加条消息界面显示
}
mListViewsetSelection(mAdaptergetCount() 1)
} else {
mAdapternotifyDataSetChanged()
}
} else {
mAdapter new MessageChatAdapter(this initMsgData())
mListViewsetAdapter(mAdapter)
}
}
public void onSuccess() {
ShowLog(发送成功)
((BmobMsg) values)
setStatus(BmobConfigSTATUS_SEND_SUCCESS)
parentVfindViewById(Ridprogress_load)setVisibility(
ViewINVISIBLE)
parentVfindViewById(Ridiv_fail_resend)
setVisibility(ViewINVISIBLE)
parentVfindViewById(Rid tv_send_status)
setVisibility(ViewVISIBLE)
((TextView) parentVfindViewById(Ridtv_send_status))
setText(已发送)
}
*** 新消息广播接收者**
private class NewBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context Intent intent) {
String from intentgetStringExtra(fromId)
String msgId intentgetStringExtra(msgId)
String msgTime intentgetStringExtra(msgTime)
收广播时候message已消息表中直接获取
BmobMsg msg BmobChatMangergetInstance(ChatActivitythis)getMessage(msgId msgTime)
if (fromequals(targetId)) 果前正聊天象消息处理
return
添加前页面
mAdapteradd(msg)
定位
mListViewsetSelection(mAdaptergetCount() 1)
取消前聊天象未读标示
BmobDBcreate(ChatActivitythis)resetUnread(targetId)
记广播终结掉
abortBroadcast()
}
}
六.结
学期学实践教学老师悉心指导该仿QQ社交软件系统测试达预期目标完成基功系统功然较简单具备定实性灵活性包括Android专业知识程中断修改完善
移动聊天软件然原理难然问题需解决例:提高户体验性现市场聊天软件已功相完善技术十分成熟相信更户体验性功新颖够吸引更户然系统完善方需加改进实际运实施程中会加强改进完善够真正应实际
学体会
次课程设计组进行合作完成样仅培养团队协作意识讨程中学更知识仿QQ社交软件系统设计实现工作完成次体会想象实际差距学种语言完成项目容易短时间投入开发完成系统需量时间学通网百度解决遇问题阅相关书籍快速度熟悉Android掌握开发中种控件文Android台该台开发手机QQ做量工作够PC端够手机端运行时间关系限力问题需实现解决次系统开发说挑战努力程序运行算良基功实现次系统开发受益匪浅相信会生工作起促进作着积极影响
致谢
课程设计期间王老师邱老师严谨治学态度渊博学识学生诚恳态度受益匪浅谨王老师邱老师致诚挚谢意崇高敬意
外朋友间相互帮助样难忘怀感动深希友谊够天长久祝位朋友心想事成万事意
参考文献
1) Android移动应设计开发北京:民邮电出版社(第四版)
2) [3] Bruce Eckel.Thinking in Java.北京:机械工业出版社2009:4264
3) 韩超 Android典应程序开发[J] 力资源出版社2011:518
4) 文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档