




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着互联网的普及,社交软件的出现,让人们之间的交流变得更加人性化。基于这种思考,这次毕业设计开发了这个Android社交软件。本系统的最终成品为一款基于Android平台的社交软件,应用AndroidStudio作为开发工具开发,使用MySQL作为数据库,主要开发语言为Java。本软件作为一款社交软件主要包括好友聊天,群聊天,好友管理,群管理等模块。本文重点介绍一个Android社交软件的实现过程。包括了系统的需求分析,总体设计,数据库设计和主要模块的详细设计和系统测试。整个软件界面美观、使用方便、运行可靠,对于增进人与人之间的联系具有重大意义。关键词:社交软件;Android;MySQL数据库
ABSTRACTWiththedevelopmentoftheInternet,theemergenceofsocialsoftware,peoplecommunicatewithpeoplebecomingmorehuman.Basedonthisthinking,thegraduationdesigndevelopedtheAndroidsocialnetworkingsoftware.ThefinalproductofthissystemasasocialsoftwarebasedontheAndroidplatform,AndroidDevelopmentStudioasthedevelopmenttool,usingMySQLasadatabase,themaindevelopmentlanguageforJava.ThesoftwareasasocialsoftwareincludesBuddyChat,groupchat,friendsmanagement,groupmanagementmodule.ThisarticlefocusesonanAndroidsocialsoftwareimplementationprocess.Includessystemrequirementsanalysis,systemdesign,databasedesign,anddesignthemainmoduleandsystemtesting.Thesoftwareinterfaceisbeautiful,easytouse,reliable,andtopromotelinksbetweenpeopleandisofgreatsignificance.KeyWords:socialsoftware;Android;MySQLdatabase
目录摘要 IABSTRACT II1绪论 11.1课题目的及意义 11.1.1课题研究目的 11.1.2课题研究意义 11.2课题现状及发展 11.3论文结构 22开发技术和平台 32.1开发技术 32.1.1Java语言特点 32.1.2JDK1.7简介 42.1.3Android系统简介 42.1.4AndroidStudio简介 42.1.5Mysql数据库简介 42.2开发平台 52.2.1硬件环境 52.2.2软件环境 53需求分析 63.1系统功能需求 63.2系统用例设计 63.3数据库初步设计 73.3.1数据流图 73.3.2数据字典 103.4类图 164总体设计 184.1系统功能模块图 184.2系统功能模块图说明 185数据库设计 225.1数据库设计重要性 225.2概念结构设计 225.3逻辑结构设计 245.3.1群信息界面设计 245.3.2数据库表设计 255.4物理结构设计 275.4.1确定数据库的存储结构 275.4.2数据库关系图 275.4.3创建表 286详细设计 336.1项目结构设计 336.2软件界面设计 346.2.1登录界面设计 346.2.2注册界面设计 346.2.3软件主界面设计 356.2.4聊天界面设计 356.2.5群聊界面设计 366.2.6群信息界面设计 376.2.7设置界面设计 376.3软件业务逻辑 386.3.1用户账号相关管理模块 386.3.2用户聊天模块 396.3.3用户好友管理模块 396.3.4用户群管理模块 407系统测试 427.1功能测试 427.1.1目的 427.1.2测试用例 427.2测试结论 457.2.1结果分析 457.2.2总结 45参考文献 46致谢 471绪论1.1课题目的及意义1.1.1课题研究目的目的在于实现点对点、点对多的即时聊天。本设计的主要工作是设计一个基于Android的聊天工具。阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。C/S结构是当前数椐库应用程序中极为流行的一种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将软件工作任务分別由客户端和服务器端来共同完成,这样有利于充分合理的利用。本软件的主要是为了满足人们通讯交流的便捷,实现灵活、全面的信息传递和服务。模拟腾讯公司的QQ脚天软件,开发一个多功能的聊天系统软件。1.1.2课题研究意义当今处于一个信息爆炸的时代,随着Internet技术的迅速进步,人们之间的沟通和联系变得越来越频繁,以至于人们每天的日常活动都离不开这个具备高时效性的网络。人们能够通过各种软件进行即时性的联系,好比众所周知的Email,QQ,MSN等等。而QQ则是国内人尽皆知的社交软件,自从1998年腾讯成立以来,QQ的进步几乎是飞跃式的。据20XX年上半年腾讯官方发布数据显示,QQ月活动账户数高达8.68亿,比去年同期增长2%。,这无疑是一个惊人的数据。鉴于社交软件在当今人们日常生活中的重要位置,以及自身怀着的对社交软件的通讯机制以及其原理的兴趣,我尝试在Android平台上编写一款社交软件。1.2课题现状及发展广域网的即时通信工具使用TCP或UDP或TCP、UDP并用的方式来达成通信。目前来说,开发技术是十分成熟的了,好比腾讯QQ,微软MSN,新浪UC等,这些通信工具都完成了广域网的即时通讯,但他们却也各具特点。好比只通过TCP通信的MSN,在稳固传输和安全性上是可圈可点的。而腾讯的QQ,在功能上则是十分完善的,由于其客户端实时通讯使用UDP形式,所以通讯显得非常的顺畅和便捷,也大大降低了服务器的负荷。这些通信软件各具特点,功能方面各有所长,但由于他们在商业经营阶段,其实现的具体内在机制,咱们不得而知,但是无论他们是怎样实现的,最终也逃不过TCP/IP,UDP通讯的实质,这一点无法改变,本软件也同样如此。鉴于现在这种朝气蓬勃的市场形式,在将来的社交软件领域,不管是局域网还是广域网,必定会愈加的精彩,或者在不久的未来,通讯形式会更加的完善和方便于人类社会。1.3论文结构论文共由7个章节组成,主要内容及结构安排如下:第1章,绪论,主要介绍了课题研究的目的和意义、课题现状及发展以及论文结构。第2章,开发技术和平台,主要介绍了本系统使用的相关技术,包括Java语言、Androidstudio开发工具,MySQL数据库等。第3章,需求分析,需求分析为软件设计过程中最关键的一步,主要介绍了系统功能需求、系统用例图的设计、数据库的初步设计、类图的设计。其中数据库初步设计包括系统各层数据流图的设计、数据字典的设计。第4章,总体设计,总体设计主要任务为确定系统的总体结构,第4章主要介绍了系统功能模块图的设计以及各功能模块的说明。第5章,数据库设计,数据库保存了系统的底层数据,第5章主要介绍数据库概念设计、逻辑设计和物理设计的过程。第6章,详细设计,系统实现的具体过程,主要包括系统主要界面设计,系统具体功能算法流程图设计等。第7章,系统测试,系统测试用例设计和测试结果分析。
2开发技术和平台本软件采用Android开发技术,使用Java编程语言,数据库采用MySQL数据库。AndroidStudio作为主要开发工具。2.1开发技术2.1.1Java语言特点Java是一种安全、简单、面向对象、容易适用、可移置、多线程、高性能的语言。1)简单性Java语言简易高效,基本Java系统所占空间很少。由于Java一开始是集成管理家用电器而设计的,所以具有简单明了的特点。2)面向对象面向对象是当代工业的一次革新,提高了软件的复用率和模块化水平,缩短了软件开发周期,节约开发资本。在Java之前尽管也有面向对象的程序设计语言,但像C++这样的开发语言并不完全是面向对象的,而是面向对象和面向过程的混合物。而Java是完全面向对象的程序设计语言。3)安全性Java是一种网络程序设计语言。在网络环境中,语言的安全性变得及为重要。Java提供了大量安全机制来提供其网络适用上的安全。4)平台独立平台独立是指程序软件不受操作平台的制约,能够在各种平台上使用。Java源程序通过编译生成字节码文件,但字节码不依赖于计算机环境。只需计算机安装了Java虚拟机JVM,就可以执行这种文件,从而完成Java平台的独立。5)多线程Java具有多线程的功能,可以将一个程序分配给不同的线程,使各线程各自运行,从而加强系统的性能。6)网络功能Java能从全世界网络资源获取信息,如数据文件、音频文件等,并对取得的信息进行处理,所以Java是一种网络程序语言。7)执行效率Java的字节码文件只有通过Java虚拟机解释成机器码才可以执行,所以速度不快。然而随着java虚拟机技术水平的提高,使得其执行速度越来越靠近C与C++。2.1.2JDK1.7简介JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK现在已成为应用最普遍的JavaSDK。JDK是整个Java的中心,包含了Java执行环境、Java工具和Java基础的类库。2.1.3Android系统简介Android是一个以Linux为核心开发的开源手机端操作系统,大部分适用于智能手机和平板电脑等。Android公布的最新系统版本为Android7.0。Android操作系统最开始由安迪·鲁宾等人开发完成,最初开发这个系统的是为了完成一个数码相机的操作系统;但之后发现市场需要还不够大,加上智能手机市场的加速成长,于是后来Android被修改为一个面向智能手机的系统。于2005年8月被Google公司购入。2007年11月,Google与84家制造商、开发商及电信营运商共同研发和改进Android操作系统,随后,Google以Apache免费开放源码许可证的授权方式,公布了Android的源码,让生产商推出搭载Android的智能手机,Android后来更逐步拓展到平板电脑及其他范畴上。2010年末数据显示,仅正式推出两年的Android作业系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全世界第一大智能手机操作系统。2.1.4AndroidStudio简介AndroidStudio是一个Android集成开发工具,基于IntelliJIDEA类似Eclipse
ADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。AndroidStudio是由谷歌在2013年推出的官方IDE工具,该Android开发工具不再以插件的形式存在,并且在Android开发方面要远比Eclipse方便和强大得多。如今,AndroidStudio推出了2.2版本,稳定性提高了许多,普及也超过了Eclipse,所以本系统决定采用AndroidStudio工具完成。2.1.5Mysql数据库简介MySQL是一个关系型数据库系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不一样的表中,而不是将一切数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所运用的SQL数据库语言是用于管理数据库的最常见标准化语言。MySQL软件采用的是双授权政策,分为社区版和商业版,因为其体积小、速度快、总体享有成本低,尤其是开放源码这一特点,一般中小型网站的开发都采用MySQL作为网站数据库。2.2开发平台2.2.1硬件环境开发Android软件所要的硬件要求并不要求太高,满足以下要求即可:处理器:IntelCore2DuoCPU或者更高内存:1GB或者更高2.2.2软件环境操作系统:Windows7或者其它可用操作系统开发平台:AndroidStudio集成工具开发语言:Java数据库:MySQL5.5
3需求分析3.1系统功能需求交友平台主要完成以下功能:1)用户账户管理:用户对于自己用户资料的相关管理操作包括注册、登录和注销,其中注册指的是任何使用者都可进行注册成为用户,并用于聊天软件的登录。登录指的是任何用户输入正确用户名和密码后便可进入聊天软件进行使用。注销指的是用户登录后若想更换用户或退出登录便可注销重新回到登录界面。2)聊天:用户的聊天相关功能包括好友聊天和群聊天,其中好友聊天指的是用户登录后并添加好友后,选择与指定好友聊天。群聊天指的是用户登陆后加入相应群,在群众参与发言。3)好友管理:用户对于已添加好友的相关管理操作包括好友分组和,好友分组指用户对于已添加的好友分门别类,例如:家人,大学同学等。好友增减用户可以通过好友账号信息对好友进行添加或删除。4)群管理:用户对于聊天群的相关操作,包括加入群、退出群、创建群和解散群。其中加入群指用户发送入群申请,如群管理员通过申请则用户加入该群组。退出群指用户若有离开群的意愿,则可通过该操作退出群。创建群指用户可通过该操作创建一个群组并成为该群组管理员。解散群指将群解散的操作。3.2系统用例设计根据以上功能需求可得出以下用例图:图3.SEQ图3-\*ARABIC1系统用例图3.3数据库初步设计3.3.1数据流图首先画出顶层数据流图图3.SEQ图3-\*ARABIC2顶层数据流图根据用例图各用例画出0层数据流图。图3.SEQ图3-\*ARABIC30层数据流图功能细化得出1层数据流图。1)账户管理模块图3.SEQ图3-\*ARABIC4用户帐户管理模块1层数据流图2)聊天模块图3.SEQ图3-\*ARABIC5聊天模块1层数据流图3)好友管理模块图3.SEQ图3-\*ARABIC6好友管理模块1层数据流图4)群管理模块图3.SEQ图3-\*ARABIC7群管理模块1层数据流图3.3.2数据字典表3.SEQ表3-\*ARABIC1数据结构描述数据结构名称含义组成用户前台用户主体数据结构,定义了前台用户相关信息用户id,登录账号,昵称,密码,个性签名,性别,生日,电话,真实姓名,邮件,头像,注册日期,住址好友用户所添加的好友数据结构,定义了好友相关信息好友id,好友账号,用户账号,好友备注昵称,好友分组id好友分组用户所指定的好友分组的数据结构,定义了好友所在组的相关信息好友分组id,好友分组名,用户账号群组用户所在群的数据结构,定义了群组的相关信息群组id,群名,群号,群简介,群头像,群地址,规模群组成员定义了用户与群组的关联关系群组成员id,群号,群成员,成员等级(创建者,管理员,成员),成员昵称普通消息定义了用户与好友消息记录普通消息id,消息内容,消息发送时间,消息类型,接收状态,发送者账号,接受者账号群消息定义了用户所在群消息记录群消息id,消息内容,消息发送时间,消息类型,发送者账号,群号表3.SEQ表3-\*ARABIC2数据项描述数据项名称含义说明别名类型长度取值范围取值含义与其他数据项逻辑关系用户id唯一标识一名用户用户主键整型自增,无特殊含义与用户状态id,好友id,好用分组id等呈1对n关系用户账号用户登录标识登录名称字符型15系统分配,无特殊含义昵称用户登录成功后显示的用户名字符型30用户自行拟定密码用户登录时输入密码以验证用户真实身份登录密钥字符型20数字、字符与符号的组合用户自行拟定一个账号只能有一个密码个性签名用户通过此项彰显个性字符型255性别标识用户性别字符型10或10为女,1为男生日标识用户出生日期字符型101900年至今年份电话能联系到该用户的手机号联系方式字符型11符合手机号规则的11位字符串手机号真实姓名用户真实姓名字符型20汉字姓名邮件用户常用电子邮件地址e-mail字符型30e-mail地址头像表现自己个性、品位、喜好等的图片字符型100该图片在服务器端路径注册日期用户注册该账户的时间字符型101900年至今年份住址用户的家庭地址(可选填)字符型50符合地址格式地址用户状态编码用户当前账户所在状态的编号字符型11-9用户状态名称用户当前状态显示值字符型5与用户状态编码一一对应好友id用户所加好友的主键好友主键整型一个账户可以有多个好友,呈一对多的关系好友备注昵称用户对所加好友的昵称字符型30好友分组id用户好友所在分组的主键好友分组主键整型一个好友只属于一个分组,一个账户可以拥有多个分组好友分组名用户好友所在分组的显示值字符型30主键为好友分组id,一个分组id有一个分组名群组id群的主键整型一个账户可以加入多个群,一个群中有多个账户,多对多的关系群名群的显示名称字符型30创建者自行拟定一个群id只能有一个群名称群号社交群号码字符型15群简介社交群简单介绍字符型255创建者自行拟定群头像表现该群特点的图片字符型100该图片在服务器端路径群地址表现该群所在的地区字符型50符合地址格式地址群规模指明该群的人数范围整型1-10000人数成员等级指明该人在所在群中的等级字符型11-31为创建者,2为管理员,3为普通群成员成员昵称群成员在群中的显示名称字符型30用户自行拟定消息记录id一条消息记录的唯一标识整型一条消息记录对应两个用户,分别为发送者和接收者消息内容一条消息记录内容字符型255一条消息记录id对应一条消息记录内容消息发送时间消息发送时的系统时间字符型20一条消息记录id对应一条消息发送时间表3.SEQ表3-\*ARABIC3数据流描述数据流说明数据流来源数据流去向组成用户个人信息注册时用户输入信息用户注册登录账号,昵称,密码,个性签名,性别,生日,电话,真实姓名,邮件,头像,住址注册反馈信息注册完信息提示注册用户注册是否成功用户账户信息用户注册后录入数据库的信息注册用户表用户id,登录账号,昵称,密码,个性签名,性别,生日,电话,真实姓名,邮件,头像,注册日期,住址用户登录信息用户登录时输入的信息用户登录用户输入账号,密码登录反馈信息登录信息输入后信息反馈登录用户登录是否成功用户名/密码登录时从数据库中查询的信息用户表登录登录账号,密码注销反馈用户注销信息反馈注销用户注销是否成功好友选取信息用户选择与哪位好友聊天用户好友聊天好友账号发送信息用户向好友发送的信息用户好友聊天聊天内容回复信息好友向用户回复的信息好友聊天用户聊天内容聊天消息用户与好友的聊天信息好友聊天普通消息记录表消息内容,消息发送时间,消息类型,接受状态,发送者id,接受者id消息记录用户与好友的消息日志普通消息记录表消息记录查看消息内容,消息发送时间,消息类型,接受状态,发送者id,接受者id聊天历史用户与好友的聊天历史记录消息记录查看用户消息内容,消息时间群选择信息用户选择群聊群用户群组聊天群组账号群发言信息用户群发言用户群组聊天聊天内容群回复信息群组其他成员发言内容群组聊天用户聊天内容好友账户信息用户添加好友时指定的账号用户好友添加账号好友信息用户所加的好友信息好友添加好友表用户id,好友备注昵称,好友分组id好友记录该用户的好友信息好友表好友添加用户id,好友备注昵称,好友分组id好友验证反馈用户发送好友请求后的反馈好友添加用户好友是否通过验证好友列表用户所加好友的列表好友展示用户好友账号序列好友账号信息用户删除好友时指定的账号用户好友删除账号好友记录用户所删的好友信息好友删除好友表用户id,好友主键好友分组信息用户给好友指定的分组信息用户好友分组好友主键,好友分组主键分组记录用户的分组记录好友分组好友分组表好友分组名,用户id,好友id好友分组记录用户所加好友的记录好友分组表好友展示好友分组名,用户id,好友id待创建群组信息创建一个群组的必要信息用户创建群群名,群简介,群头像,群地址,规模群创建反馈创建群后的系统反馈信息创建群用户创建群是否成功指定解散群号用户想要解散的群的群号用户解散群群账号群解散反馈解散群后的系统反馈信息解散群用户解散群是否成功群申请处理结果群管理员是否同意加入陌生人用户群成员增减是否同意加入本群待踢出成员账号群管理员决定踢出的成员的账号用户群成员增减成员账号群列表用户所加群的列表聊天群展示用户群序列群成员列表用户所加群的成员列表聊天群展示用户群成员序列入群申请用户加入某群的申请信息用户加入群入群申请事由群申请反馈用户申请加入群的反馈信息加入群用户是否同意加入群指定退出群用户想要退出的群的群号用户退出群群账号创建群记录用户所加群的记录创建群群组表群名,群号,群简介,群头像,群地址,规模群记录用户加群的记录群组表聊天群展示群名,群号,群简介,群头像,群地址,规模群成员增加记录用户所加群中成员记录群成员增减群成员表群号,群成员,成员等级(创建者,管理员,成员),成员昵称群成员记录用户所加群中成员记录群成员表聊天群展示群号,群成员,成员等级(创建者,管理员,成员),成员昵称表3.SEQ表3-\*ARABIC4数据存储描述数据存储说明输入数据流输出数据流组成存取方式用户表记录用户基本信息用户账户信息用户账户信息用户id,登录账号,昵称,密码,个性签名,性别,生日,电话,真实姓名,邮件,头像,注册日期,住址随机存取普通消息记录表记录用户普通聊天信息消息记录消息记录普通消息id,消息内容,消息发送时间,消息类型,接受状态,发送者id,接受者id随机存取群消息记录记录用户群消息群消息记录群消息记录群消息id,消息内容,消息发送时间,消息类型,发送者id,群号随机存取好友表记录好友信息好友记录好友记录好友id,用户主键,好友备注昵称,好友分组id随机存取好友分组表记录好友分组信息好友分组记录好友分组记录好友分组id,好友分组名,用户id,好友id随机存取群组表记录用户所加群组信息群记录群记录群组id,群名,群号,群简介,群头像,群地址,规模随机存取群成员表记录用户群成员记录群成员记录群成员记录群成员id,群号,群成员,成员等级(创建者,管理员,成员),成员昵称随机存取表3.SEQ表3-\*ARABIC5处理过程描述过程名输入数据流输出数据流处理过程简要说明注册用户个人信息注册反馈信息,用户账户信息用户注册时执行,注册成功返回注册成功信息并将用户帐户信息加入至用户表,否则返回注册失败信息。登录用户登录信息登录反馈信息用户登录时执行,用户名和密码都正确进入主界面并返回登录成功信息,否则返回登录失败信息。注销用户注销操作注销反馈信息用户发出注销指令,注销成功退出账号并返回注销成功信息,否则返回注销失败信息。好友聊天好友选取信息,发送信息消息记录,回复信息用户选择一个好友并发送聊天信息,好友收到后回复,系统记录消息记录。消息记录查看消息记录,群消息记录聊天历史用户选择查看消息记录,系统查询普通消息记录表和群消息记录表并返回聊天历史。群组聊天群选择信息,发送信息群消息记录用户选择聊天群进行群聊,用户发送聊天信息并收到其他成员的回复信息,系统将聊天记录保存至好友添加好友账号好友验证反馈,好友记录用户输入好友账号进行添加,好友进行验证是否同意添加,若同意添加则将其信息加入好友表好友展示好友记录,好友分组记录好友列表用户查看好友列表时执行,系统从好友表和好友分组表中获取信息,并展示。好友删除好友账户信息好友记录用户指定删除好友账号,系统移除好友表中相应记录。好友分组好友分组信息好友分组记录用户指定好友组分布,系统在好友分布表中加入相应记录。创建群待创建群组信息群创建反馈,群记录用户录入想要创建群的具体信息点击创建,系统进行进行创建并反馈,创建成功后将群信息记录进群组表。解散群指定解散群号群解散反馈,群记录用户指定解散群群号,系统发出反馈信息并在群组表中移除相应群群成员增减群申请处理结果,待踢出成员账号群成员记录用户是群管理员并收到群申请后是否同意加群,或者用户提供待踢出的成员账号,系统将在群成员表中做出相应增减。聊天群展示群记录,群成员记录群列表,群成员列表用户查看群信息时,系统调取数据库中的群记录和群成员记录,并以列表的形式前台展示。加入群入群申请群申请反馈,群记录,群成员记录用户先发送入群申请,群管理员给出相应反馈,如同意加入该群,群组表中插入群纪录并在群成员表中加入用户账户记录退出群指定退出群账号群记录,群成员记录用户想要退出某群,指定群账号并确定,系统除去群成员表和群组表中的相应记录。3.4类图概念是对现真实世界的一种抽象。所谓抽象是对现实中的人,物,事和槪念进行人为处理,抽取所关心的共同特性。忽略非本质的细节。并把这些特性用各种概念精确的加以描述,这些槪念组成了某种模型。经过概念设计得出的概念模型是从真实世界的角度对所要处理的问题的总结,不依赖于详细的硬件环境和DBMS。图3.9系统类图
4总体设计4.1系统功能模块图本聊天软件的功能模块图如下:图4.SEQ图_4-\*ARABIC1系统功能模块图4.2系统功能模块图说明1)在用户账户管理模块中主要包括系统的注册,用户信息修改等工作。用户注册帐户以登录软件。登录后用户可以对自己的账户信息进行修改。表4.SEQ表_4-\*ARABIC1用户账户管理模块说明名称用户账户管理标识AccountManage子系统名称用户账户信息系统名称Android平台社交软件接口说明输入用户账户需修改信息输出用户账户基本信息功能说明用户可在本模块进行用户的注册和用户信息的修改运行环境说明Android4.0以上版本调用关系说明调用模块用户注册、用户信息修改模块被调用模块Android平台社交软件2)在账户状态控制模块中主要包括系统的登录、注销等工作。用户要使用软件中的功能首先要登陆软件。登录后用户可以通过注销操作返回登录界面。表4.2账户状态控制模块说明名称账户状态控制标识AccountControl子系统名称用户账户信息系统名称Android平台社交软件接口说明输入用户名登录或注销输出用户账户状态功能说明用户可在本模块进行用户的登录和注销运行环境说明Android4.0以上版本调用关系说明调用模块用户登录、注销模块被调用模块Android平台社交软件3)在聊天模块中主要包括群聊天和好友聊天功能。用户登录后选择好友聊天模式或群聊天模式,好友聊天模式下用户选择一个好友并与之聊天,群聊天模式下用户选择加入一个聊天群进行聊天。表4.3聊天模块说明名称聊天模块标识UserChat子系统名称用户聊天信息系统名称Android平台社交软件接口说明输入聊天对象账户输出用户聊天信息功能说明用户登陆后可在本模块进行用户好友单聊或群聊运行环境说明Android4.0以上版本调用关系说明调用模块用户单聊、群聊模块被调用模块Android平台社交软件4)在好友管理模块中主要包括好友添加、好友删除功能。用户可以通过账号向其他用户发送好友申请,申请通过后与之成为好友。对于既定好友,用户还可进行删除好友操作,删除后用户与之解除好友关系。表4.4好友管理模块说明名称好友管理模块标识FriendsManage子系统名称用户好友信息系统名称Android平台社交软件接口说明输入用户好友账号输出用户好友信息功能说明用户登陆后可在本模块进行好友添加、好友删除等功能运行环境说明Android4.0以上版本调用关系说明调用模块好友添加、好友删除模块被调用模块Android平台社交软件5)在好友组管理模块中主要包括好友组添加、好友组删除和好友分组功能。用户通过好友组添加新建一个好友分组,将已加好友加入分组,当然也可以删除分组。表4.5好友组管理模块说明名称好友管理模块标识FriendsGroupManage子系统名称用户好友信息系统名称Android平台社交软件接口说明输入用户好友分组操作输出用户好友分组信息功能说明用户登陆后可在本模块进行好友组添加、好友组删除和好友分组功能运行环境说明Android4.0以上版本调用关系说明调用模块好友组添加、好友组删除、好友分组模块被调用模块Android平台社交软件6)在群管理模块中主要包括加入群、退出群、创建群、解散群等功能。用户登陆后可以根据群账号发送入群申请,如通过申请则成为该群群成员。群成员用户可以通过退群操作退出该群。用户还可以通过创建群操作亲自创建一个聊天群并成为该群管理员。群管理员也可以解散群组。表4.6群管理模块说明名称群管理模块标识GroupsManage子系统名称用户群信息系统名称Android平台社交软件接口说明输入用户群账户输出用户所属群信息功能说明用户登陆后可在本模块进行加入群、退出群、创建群、解散群等操作运行环境说明Android4.0以上版本调用关系说明调用模块加群、创建群、退出群和解散群被调用模块Android平台社交软件
5数据库设计5.1数据库设计重要性数据库设计在计算机软件开发的过程总占据非常重要的地位,本文研究的重点便是计算机软件设计过程中数据库设计的重要性以及一些原则,良好的数据库设计规范不仅能够简化计算机软件的开发难度,还能够提升系统的运行效果。5.2概念结构设计用户与好友聊天E-R图图5.SEQ图_5-\*ARABIC1用户好友聊天E-R图用户发表群留言E-R图图5.SEQ图_5-\*ARABIC2用户群留言E-R图用户好友分组E-R图图5.SEQ图_5-\*ARABIC3好友分组E-R图群组与群成员E-R图图5.SEQ图_5-\*ARABIC5群成员E-R图全局E-R图图5.SEQ图_5-\*ARABIC6全局E-R图5.3逻辑结构设计5.3.1群信息界面设计E-R模型转换关系数据库的一般规则:1)将每一个实体类型转换成一个关系类型,实体的属性为关系模式的属性。2)关于二元联系,按各种状况处理,如下表所示。表5.SEQ表_5-\*ARABIC1E-R图转关系模型规则二元关系ER图转换成的关系联系的处理主键外键1:1
(2个关系)
模式A
模式B(有两种)处理方式(1):把模式B的主键,联系的属性加入模式A
处理方式(2):把模式A的主键,联系的属性加入模式B(略)(依据联系的处理方式)方式(1):
模式B的主键为模式A外键方式(2):
表A的主键为表B的外键1:N
(2个关系)
模式A
模式B
把模式A的主键,联系的属性加入模式B(略)模式A的主键为模式B的外键M:N
(3个关系)
模式A
模式B
模式A-B联系类型转换成关系模式A-B;
模式A-B的属性:
(a)联系的属性
(b)两端实体类型的主键两端实体类型的主键一起构成模式A-B主键两端实体类型的主键分别为模式A-B的外键将上述E-R模型转换为关系模型如下:实体的转换用户(用户id,登录账号,昵称,密码,个性签名,性别,生日,电话,真实姓名,邮件,头像,注册日期,住址)好友(好友id,用户账号,好友账号,好友备注昵称)好友分组(好友分组id,好友分组名,用户账号)群组(群组id,群名,群号,群简介,群头像,群地址,规模)群组成员(群组成员id,群成员账号,成员等级,成员昵称)联系的转换聊天(聊天记录id,消息内容,消息发送时间,消息类型,接收状态,发送者账号,接受者账号)发言(群聊天记录id,消息内容,消息发送时间,消息类型,发送者账号,群号)所属分组(所属分组id,好友账号,好友分组id)所属群组(所属群组id,群号,群成员账号)5.3.2数据库表设计本应用采用Mysql数据库,需要建立7张表。下面将主要介绍关键数据表的数据库设计的详细及存储后台用户基本信息的数据库表的字段说明。1)数据表的说明(1)用户表(table_user):用于存放用户基本信息。(2)普通消息记录表(table_message):用于存放用户单人聊天的聊天记录。(3)群消息记录(table_groupmessage):用于存放用户群聊天的聊天记录。(4)好友表(table_friends):用于存放用户好友信息。(5)好友分组表(table_friendgroup):用于存放好友分组信息。(6)群组表(table_group):用于存放用户所加群组信息。(7)群成员表(table_groupmember):用于存放群成员基本信息。2)数据表详细表5.SEQ表_5-\*ARABIC2用户表(table_user)名类型长度能否为null默认注释UserIdInt否自增用户表主键UserAccountVarchar15否用户登录账号NickNameVarchar30能用户登录后社交名称PasswordVarchar20否用户登录密码SignatureVarchar255能用于个性签名SexChar1能1用户性别BirthdayVarchar10能用户出生年月PhoneNumberChar11能用户手机号TrueNameVarchar20能用户真实姓名EmailVarchar30能用户常用邮箱HeadPortraitVarchar100能用户登陆后显示的肩部以上的人像RegisterdayVarchar10否用户注册账号的日期AddressVarchar80能用户的家庭地址表5.SEQ表_5-\*ARABIC3普通消息记录表(table_message)名类型长度能否为null默认注释MessageIdInt否自增普通消息的主键MessageContentVarchar255否普通消息的内容MessageSendTimevarchar20否记录消息发送的时间MessageKindChar1能1标记消息类型是文字还是其他种类IsReceiveChar1能1标记消息收否被接收SenderVarchar15否标识是谁发送了消息ReceiverVarchar15否标识消息接收方表5.SEQ表_5-\*ARABIC4群消息记录表(table_groupmessage)名类型长度能否为null默认注释GroupMessageIdInt否自增群消息的主键GroupMessageContentVarchar255否群消息的内容GroupMessageSendTimeVarchar20否记录群消息发送的时间GroupMessageKindChar1能1标记群消息类型是文字还是其他种类SenderVarchar15否标识是谁发送了消息GroupVarchar15否标识消息发送群表5.SEQ表_5-\*ARABIC5好友表(table_friends)名类型长度能否为null默认注释FriendsIdInt否自增用户所加好友的主键FriendsNickNameVarchar30能用户对所加好友的昵称FriendVarchar15否表示好友账号UserVarchar15否外键,表明该好友的归属用户FriendsGroupIdInt能外键,表明该好友所属的好友分组表5.SEQ表_5-\*ARABIC6好友分组表(table_friendsgroup)名类型长度能否为null默认注释FriendsGroupIdInt否自增好友分组的主键FriendsGroupNameVarchar30能好友分组的显示名UserVarchar15否外键,表明该好友分组的所属用户表5.SEQ表_5-\*ARABIC7群组表(table_group)名类型长度能否为null默认注释GroupIdInt否自增群组的主键GroupNameVarchar30能群组的显示名GroupAccountVarchar15否群组的账号GroupIntroVarchar255能群组的简单介绍GroupHeadPortraitVarchar100能群组的显示头像GroupAddressVarchar80能群组管理员所在的地址GroupScaleInt否群组的最大人数范围表5.SEQ表_5-\*ARABIC8群组成员表(table_groupmember)名类型长度能否为null默认注释GroupMemberIdInt否自增群组成员的主键GroupVarchar15否群组的账号GroupMemberAccountVarchar15否群组成员的账号MemberLevelChar1能1成员等级(创建者,管理员,成员)MemberNickNameVarchar30能用户对所加好友的昵称5.4物理结构设计5.4.1确定数据库的存储结构因为不同PC所安装的数据库软件位置可能不同,所以数据文件与日志文件放置位置也可能不同。本系统存放的数据库文件的位置在C:\ProgramData\MySQL\MySQLServer5.5\data\collagechat。5.4.2数据库关系图在MySQL上建立的该数据库的7张表之间的关系图如图所示。图5.7数据库表关系图5.4.3创建表1)表table_friends创建CREATETABLE`table_friends`(`FriendsId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'用户所加好友的主键',`FriendsNickName`varchar(30)DEFAULTNULLCOMMENT'用户对所加好友的昵称',`Friend`varchar(15)NOTNULLCOMMENT'表示好友账号',`User`varchar(15)NOTNULLCOMMENT'外键,表明该好友的归属用户',`FriendsGroupId`int(11)DEFAULTNULLCOMMENT'外键,表明该好友所属的好友分组',PRIMARYKEY(`FriendsId`),KEY`Friend`(`Friend`),KEY`User`(`User`),KEY`FriendsGroupId`(`FriendsGroupId`),CONSTRAINT`table_friends_ibfk_1`FOREIGNKEY(`Friend`)REFERENCES`table_user`(`UserAccount`),CONSTRAINT`table_friends_ibfk_2`FOREIGNKEY(`User`)REFERENCES`table_user`(`UserAccount`),CONSTRAINT`table_friends_ibfk_3`FOREIGNKEY(`FriendsGroupId`)REFERENCES`table_group`(`GroupId`))ENGINE=InnoDBDEFAULTCHARSET=utf8;2)表table_friendsgroup创建CREATETABLE`table_friendsgroup`(`FriendsGroupId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'好友分组的主键',`FriendsGroupName`varchar(30)DEFAULTNULLCOMMENT'好友分组的显示名',`User`varchar(15)NOTNULLCOMMENT'表明该好友分组的所属用户',PRIMARYKEY(`FriendsGroupId`),KEY`User`(`User`),CONSTRAINT`table_friendsgroup_ibfk_1`FOREIGNKEY(`User`)REFERENCES`table_user`(`UserAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;3)表table_group创建CREATETABLE`table_group`(`GroupId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'群组的主键',`GroupName`varchar(30)DEFAULTNULLCOMMENT'群组的显示名',`GroupAccount`varchar(15)NOTNULLCOMMENT'群组的账号',`GroupIntro`varchar(255)DEFAULTNULLCOMMENT'群组的简单介绍',`GroupHeadPortrait`varchar(100)DEFAULTNULLCOMMENT'群组的显示头像',`GroupAddress`varchar(80)DEFAULTNULLCOMMENT'群组管理员所在的地址',`GroupScale`int(11)NOTNULLCOMMENT'群组的最大人数范围',PRIMARYKEY(`GroupId`),KEY`GroupAccount`(`GroupAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;4)表table_groupmember创建CREATETABLE`table_groupmember`(`GroupMemberId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'群组成员的主键',`Group`varchar(15)NOTNULLCOMMENT'群组的账号',`GroupMemberAccount`varchar(15)NOTNULLCOMMENT'群组成员的账号',`MemberLevel`char(1)DEFAULTNULLCOMMENT'成员等级(创建者,管理员,成员)',`MemberNickName`varchar(30)DEFAULTNULLCOMMENT'用户对所加好友的昵称',PRIMARYKEY(`GroupMemberId`),KEY`Group`(`Group`),KEY`GroupMemberAccount`(`GroupMemberAccount`),CONSTRAINT`table_groupmember_ibfk_1`FOREIGNKEY(`Group`)REFERENCES`table_group`(`GroupAccount`),CONSTRAINT`table_groupmember_ibfk_2`FOREIGNKEY(`GroupMemberAccount`)REFERENCES`table_user`(`UserAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;5)表table_groupmessage创建CREATETABLE`table_groupmessage`(`GroupMessageId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'群消息的主键',`GroupMessageContent`varchar(255)NOTNULLCOMMENT'群消息的内容',`GroupMessageSendTime`varchar(20)NOTNULLCOMMENT'记录群消息发送的时间',`GroupMessageKind`char(1)DEFAULT'1'COMMENT'标记群消息类型是文字还是其他种类',`Sender`varchar(15)NOTNULLCOMMENT'标识是谁发送了消息',`Group`varchar(15)NOTNULLCOMMENT'标识消息发送群',PRIMARYKEY(`GroupMessageId`),KEY`Sender`(`Sender`),KEY`Group`(`Group`),CONSTRAINT`table_groupmessage_ibfk_1`FOREIGNKEY(`Sender`)REFERENCES`table_user`(`UserAccount`),CONSTRAINT`table_groupmessage_ibfk_2`FOREIGNKEY(`Group`)REFERENCES`table_group`(`GroupAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;6)表table_message创建CREATETABLE`table_message`(`MessageId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'普通消息的主键',`MessageContent`varchar(255)NOTNULLCOMMENT'普通消息的内容',`MessageSendTime`varchar(20)NOTNULLCOMMENT'记录消息发送的时间',`MessageKind`char(1)DEFAULT'1'COMMENT'标记消息类型是文字还是其他种类',`IsReceive`char(1)DEFAULT'1'COMMENT'标记消息收否被接收',`Sender`varchar(15)NOTNULLCOMMENT'标识是谁发送了消息',`Receiver`varchar(15)NOTNULLCOMMENT'标识消息接收方',PRIMARYKEY(`MessageId`),KEY`Sender`(`Sender`),KEY`Receiver`(`Receiver`),CONSTRAINT`table_message_ibfk_1`FOREIGNKEY(`Sender`)REFERENCES`table_user`(`UserAccount`),CONSTRAINT`table_message_ibfk_2`FOREIGNKEY(`Receiver`)REFERENCES`table_user`(`UserAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;7)表table_user创建CREATETABLE`table_user`(`UserId`int(11)NOTNULLAUTO_INCREMENTCOMMENT'用户表主键',`UserAccount`varchar(15)NOTNULLCOMMENT'用户登录账号',`NickName`varchar(30)DEFAULTNULLCOMMENT'用户登录后社交名称',`Password`varchar(20)NOTNULLCOMMENT'用户登录密码',`Signature`varchar(255)DEFAULTNULLCOMMENT'用于个性签名',`Sex`char(1)DEFAULT'1'COMMENT'性别',`Birthday`varchar(10)DEFAULTNULLCOMMENT'用户出生年月',`PhoneNumber`char(11)DEFAULTNULLCOMMENT'用户手机号',`TrueName`varchar(20)DEFAULTNULLCOMMENT'用户真实姓名',`Email`varchar(30)DEFAULTNULLCOMMENT'用户常用邮箱',`HeadPortrait`varchar(100)DEFAULTNULLCOMMENT'用户登陆后显示的肩部以上的人像',`Registerday`varchar(10)NOTNULLCOMMENT'用户注册账号的日期',`Address`varchar(80)DEFAULTNULLCOMMENT'用户的家庭地址',PRIMARYKEY(`UserId`),KEY`UserAccount`(`UserAccount`))ENGINE=InnoDBDEFAULTCHARSET=utf8;
6详细设计6.1项目结构设计项目结构com.hyphenate.clloagechat–全局管理类com.hyphenate.clloagechat.adapter–adapter包com.hyphenate.clloagechat.db–放置数据库相关操作的类com.hyphenate.clloagechat.domain–实体类包com.hyphenate.clloagechat.parse–第三方库parse管理包com.hyphenate.clloagechat.receiver–广播接收者包com.hyphenate.clloagechat.task–放置一些异步任务类com.hyphenate.clloagechat.ui–放置activity、fragment等UI类com.hyphenate.clloagechat.utils–工具包com.hyphenate.clloagechat.video.util–录制视频的工具包com.hyphenate.clloagechat.widget–自定义控件包主要类介绍Demo软件lication:继承于系统的软件lication类,其onCreate()为整个程序的入口,相关的初始化操作都在这里面;MainActivity:主页面,包含会话列表页面(ConversationListFragment)、联系人列表页(ContactListFragment)、设置页面(SettingsFragment),前两个继承自己EaseUI中的fragment;ChatActivity:会话页面,这个类代码很少,主要原因是大部分逻辑写在ChatFragment中。ChatFragment继承自EaseChatFragment,做成fragment的好处在于用起来更灵活,可以单独作为一个页面使用,也可以和其他fragment一起放到一个Activity中;GroupDetailsActivity:群组详情页面。6.2软件界面设计6.2.1登录界面设计图6.SEQ图_6-\*ARABIC1用户登录界面页面说明:用户第一次打开软件需输入用户名、密码,点击登录以进入软件主界面。如未拥有账号点击注册进入注册界面获得账号。6.2.2注册界面设计图6.SEQ图_6-\*ARABIC2用户注册界面页面说明:未拥有账号用户通过本界面注册。输入用户名,密码点击注册,如果用户名唯一则注册成功。6.2.3软件主界面设计图6.SEQ图_6-\*ARABIC3主界面页面说明:用户登录后进入该界面,从左到右依次为会话界面、通讯录界面和设置界面。会话界面主要保存用户最近的会话记录,通讯录界面主要展示用户添加的好友和加入的群,设置界面主要容纳用户信息和注销功能。6.2.4聊天界面设计图6.SEQ图_6-\*ARABIC4聊天界面页面说明:右图为用户与好友聊天界面,点击右上角垃圾桶按钮可以清除聊天记录。左图为群聊天界面,点击右上角按钮可进入群信息界面。6.2.5群聊界面设计图6.SEQ图_6-\*ARABIC5群聊界面页面说明:点击通讯录界面群聊项进入群聊界面如左上图,群聊界面显示用户所加的群组列表,点击新建群组进入新建群组界面,新建群组界面可设置群组名称、简介等群组信息。6.2.6群信息界面设计图6.SEQ图_6-\*ARABIC6群信息界面页面说明:点击群聊天右上角按钮进入该界面,用户可在该界面查看群管理员、群成员、群id等信息,还可以进行清空聊天信息、屏蔽群消息等群信息相关操作。6.2.7设置界面设计图6.SEQ图_6-\*ARABIC7设置界面页面说明:设置界面可执行查看个人资料、退出登录等操作。点击查看个人资料按钮进入右上界面,用户可在此界面修改头像和昵称。点击退出登录按钮则可完成注销操作。6.3软件业务逻辑6.3.1用户账号相关管理模块1)用户登录,注册,注销流程图如下:图6.SEQ图_6-\*ARABIC8用户登录注册流程图2)说明:(1)用户打开软件。(2)如果用户拥有账号则输入用户名和密码并点击登录。(3)用户名和密码正确则进入软件主界面。(4)用户名和密码不正确则提示账号密码错误。(5)当用户没有账号和密码,点击注册进入注册界面。(6)用户输入用户名、密码以及其他帐号信息后点击注册。(7)如果用户输入的信息合法,则注册成功返回登录页面,系统对用户信息进行录入。否则提示用户信息不合法。(8)用户登录后如想退出登录,则可进行注销操作返回登录页。6.3.2用户聊天模块1)用户聊天模块流程图如下:图6.SEQ图_6-\*ARABIC9用户聊天流程图2)说明:(1)用户成功登录软件。(2)用户选择聊天模式。(3)如选择好友聊天模式,选定聊天好友并发送聊天信息。(4)如选择群聊天模式,选定聊天群并发言。(5)用户退出聊天。6.3.3用户好友管理模块1)用户好友管理模块流程图如下:图6.SEQ图_6-\*ARABIC10用户好友管理流程图2)说明:(1)用户成功登录软件。(2)用户根据账号向其他用户发送好友申请。(3)如申请通过,则用户与该用户成为好友。(4)成为好友后,用户可选择是否对该好友及进行分组。(5)如好友分组不存在,用户需先创建好友分组。(6)用户对于所加好友可以进行删除好友操作。6.3.4用户群管理模块1)用户群管理模块流程图如下:图6.SEQ图_6-\*ARABIC11用户群管理流程图2)说明:(1)用户成功登录软件。(2)用户根据群账号向想要加入的群发送入群申请。(3)如通过则成为该群成员。(4)加入群后,用户选择可退出该群。(5)用户亦可亲自创建群以加入群组。(6)用户输入群名称、群简介等群信息后点击创建。创建成功后成为该群管理员。(7)群管理可解散群。(8)退出或解散的群将不在出现在用户群列表中。
7系统测试7.1功能测试7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度四川省眉山市东坡区冠城实验学校高二下学期第一次月考历史试题(含答案)
- 数字普惠金融赋能河南省中小企业高质量发展的路径研究
- 幼儿园保教工作计划
- 二零二五版员工“心理契约”的前世今生
- 二零二五幼儿园食堂聘用合同书
- 借贷担保合同补充协议二零二五年
- 地基转让合同
- 经营权质押合同
- 全新公司股权期权协议书
- 基于气热固双向耦合的核心机叶尖间隙预估与调控
- 2025年梅河口康美职业技术学院单招职业技能考试题库必考题
- 浙江省丽水市2024-2025学年高二上学期期末教学质量监控英语试题【含答案】
- 辽宁省七校协作体2024-2025学年高二下学期3月联考地理试题(原卷版+解析版)
- 基于三新背景下的2025年高考生物二轮备考策略讲座
- 小学教师招聘-《教育学》(小学)押题试卷1
- 医疗机构自杀风险评估与预防措施
- 换电站工程施工方案
- 全国自考《银行会计学》2024年7月《银行会计学》自学考试试题及答案
- 一年级美术学情分析
- 拔高卷-2021-2022学年七年级语文下学期期中考前必刷卷(福建专用)(考试版)
- CNAS-SC175:2024 基于ISO IEC 2000-1的服务管理体系认证机构认可方案
评论
0/150
提交评论