基于Android 的社交App 的设计与实现.docx

上传人:李** 文档编号:48535295 上传时间:2022-10-06 格式:DOCX 页数:32 大小:1.16MB
返回 下载 相关 举报
基于Android 的社交App 的设计与实现.docx_第1页
第1页 / 共32页
基于Android 的社交App 的设计与实现.docx_第2页
第2页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于Android 的社交App 的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android 的社交App 的设计与实现.docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、广东东软学院本科生毕业论文本科毕业设计(论文)基于Android 的社交App 的设计与实现Design and implementation of Social App basedon Android院 (系) 计算机院系专 业 软件工程班 级 软件工程 8 班学 号 16210120820学生姓名 刘楷明指导教师 麦日升提交日期 2020年4月13日摘 要随着网络时代的不断发展,人与人之间的交流方式开始朝着多元化的方向发展,像现在大多数人通常使用的QQ,微信等的社交类app进行远距离聊天对话的方式已经渐渐开始替代电话进行通话的方式了,相比于电话,QQ,微信等突出了聊天方式多种多样,流量的消

2、费远比话费的消费便宜,时间控制上的便利等的多种优点。在本次设计中将开发实现一款以聊天功能为主要功能的社交型App。本app可以通过手机上的App在网络流畅的情况下随时随地进行实时聊天,在设置界面中,你可以修改自己的个人昵称,聊天头像,个人性别,声音提醒,头像显示,而在聊天界面中,你可以发送自己的表情,也可以输入文字,同时发送或者接收信息的时候都会有时间显示。本社交App开发所涉及的工具有:AndroidStudio,百度云推送,雷电模拟器关键词:社交App 百度云推送AbstractWith the continuous development of the Internet era, peo

3、ple to people communication began to develop in a diversified direction. Social apps such as QQ and wechat, which are commonly used by most people now, have gradually replaced the telephone for long-distance chat and dialogue. Compared with the telephone, QQ and wechat, the chat mode is diversified

4、and the traffic consumption is far away It is cheaper than the cost of the phone, and convenient in time control. In this design, we will develop and implement a social app with chat function as the main function.This app can chat in real time anytime and anywhere under the smooth condition of the n

5、etwork through the app on the mobile phone. In the setting interface, you can modify your personal nickname, chat avatar, personal gender, voice reminder, and avatar display. In the chat interface, you can send your own expression, or enter text. At the same time, you have time to send or receive in

6、formation Show.The tools involved in the development of this social app include: Android studio, baidu cloud push, lightning simulatorKey words: social app,Baidu cloud push目录1 绪论.11.1 研究背景.11.2 选题的意义.11.3 研究现状.21.4 研究内容. .21.5 开发目标. .31.6 总体设计思想.32 系统开发环境和相关技术.42.1 系统开发环境.42.1.1AndroidStudio.42.1.2

7、百度云推送.42.1.2 MySQL.42.2 系统开发相关技术.42.2.1 Java 语言简介.52.2.2 百度云推送功能简介.52.2.3 MySQL功能简介.53 系统分析. . .63.1 系统可行性分析.63.2 系统功能需求分析.63.3 系统性能需求分析.74 系统设计.84.1 系统总体设计.84.2 系统功能模块设计.104.2.1 聊天界面. .104.2.2 属性修改界面.104.2.3 在线人数界面.124.2.4 好友列表界面. .134.2.5 退出界面.144.2.6 设置界面.154.3 数据库设计.164.3.1数据库概念结构设计.164.3.2数据库逻辑

8、结构设计. .165 系统实现.185.1 聊天功能.185.2 聊天添加表情.185.3 个人设置.196 系统测试.216.1 测试过程.216.2 测试环境描述.216.3 测试用例执行情况.226.4 测试设计评估及改进.237 总结.24参考文献.25致谢.271 绪论1.1研究背景在21世纪的今天,各种不同的新科技改变着现在生活,尤其是随着或联网兴起的信息时代的发展,互联网的兴起带动着全世界的发展,使得各种各样的行业与生活方式都往互联网的方向靠拢,同时互联网的兴起也使得网络社交更加的多样化,而其中移动平台上的社交App又颇受人们的欢迎,相比于电话通信,社交App上进行交流可谓方便许

9、多,首先不同于电话通信,社交App使用的是网络流量进行通信聊天,而网络流量的费用比起电话通信要便宜的多,其次在通信的过程中可以通过添加各种表情包来丰富自己的对话内容,不像电话通信那样只能单一的使用声音和情绪波动来表达自己,然后在社交App上聊天可以是间断的进行,但是在电话中,这种间断聊天时不行的,多人聊天时,在app上可以切换不同的聊天界面进行一对多的聊天,而电话只能做到的是一对一通信,而如果中间挂了电话就需要重新拨号,在一定程度上也造成了一定的不方便。 1.2选题的意义在当今手机和网络技术飞快发展的时代中,各种各样的手机App也是花样百变,越来越受人们的关注和使用,更多的时候人们通常会被ap

10、p的UI界面所吸引,而智能手机App界面上的UI设计的目的是为了让人与手机的操作更加的方便和人性化,同时也保障了人与人使用手机之间进行信息的传递交互时更加的便捷和准确。在当今社会中社交App成为人们不可或缺的一部分时,社交App却朝着多样化的方向发展,各大多数的商家都开始朝着不同的方向去寻找着适合自己定位的发展方向,同时根据自己所选的方向去设计自己的App功能,而其中优秀的颇有代表性的例子不为少数,例如,虎牙,斗鱼等的主播方式,唱吧的拼歌方式,yy语音的多对多在线聊天方式。由此可知不同的主推方式可以决定一款社交App不同的成长方式和发展趋向,从而衍生出多种多样的社交型App。由此可见社交类Ap

11、p的发展前景是非常的巨大的。271.3研究现状根据2019年有关的App报告中可知,在App的使用上,最高的使用时间已超过了4.9亿小时,而相比在同年的2019年1月的使用时长上,增长了3倍有多,在2019年1月的使用时长上只有1.2亿小时。在2019年中的各种网络使用中,在6月份,社交使用人均人数已经远远的超过了社区服务使用的人群,而网友们在2019年中在社交网站的到达率也从同年的23.9%攀升至如今的26.8%,使用时间也从2019年的一月份的1.2亿小时增加到2019年六月份的4.9亿小时而在目前最受欢迎的移动app调查当中,而目前最受手机用户欢迎的手机移动App软件的应用服务前三分别为

12、游戏类的手机软件,生活服务类的手机软件以及社交类的手机软件,从大量的数据说明中不难发现,社交类App的开发市场是非常的庞大的,尤其像微信,QQ那样的社交App已经深入到人们的生活,成为不可或缺的一部分。从国外的App发展上来看,根据2020年国外发布的2020年移动市场报告来看,在2019中大部分的手机移动用户中绝大部分的用户都会在使用手机的时间上,有一半以上都是使用在社交媒体上,由于智能手机的普及以及网络流量的大众化下全球手机使用用户在使用手机在移动和社交的下载量上已经达到了95亿次,相比较与往年的数据已经是大大的提升,而在手机领域的使用时长上相比,2019年的使用时长达到了9000亿小时,

13、相对于2017年使用时长上的6750亿的时长上增加了25%,而在手机使用的领域上,移动,社交和内容营销是全球的三大趋势,由此可见,即使在全球范围内,社交App的使用趋势也是很大的。1.4研究内容本App为基础社交类手机软件,用户可以利用该App在互联网网络流畅的情况下进行远地聊天,通过选中聊天的对象,在聊天界面中通过输入聊天内容可以进行聊天,而且在聊天过程中也可以通过添加聊天表情来丰富自己的聊天内容,而且在个人设置界面中可以修改自己聊天时的人物头像,人物昵称,人物性别,同时也可以选择屏蔽自己聊天时的人物头像,同时可以查看好友界面,在好友界面中可以删除好友,并且在好友界面中可以删除好友。1.5开

14、发目标开发目标有以下几点(1) 能查看使用软件在线人数,并且能点击在线用户的头像进行聊天(2) 能进行实时聊天,并且可以发送表情,在页面上可看到发送信息的时间(3) 能修改人物相关属性,相关属性包括昵称,头像,性别。(4) App能在各种真机上稳定运行(5) 能够查看好友界面,并且能够删除好友(6) App可以在后台运行并且在后台运行的时候能够有信息提醒1.6总体设计思想(1)界面整洁,给人一种开阔感(2)通过把给每个图片设置一个xml文件,使得在图片总多的条件下更换图片出现差错的概率下降(3)使用Android studio开发,相比于别的开发工具,更加的适合安卓App的开发,在使用上也比较

15、稳定(4)软件app出现错误后可以提交错误报告,方便维护(5)按钮选择上采用简单易懂的按钮,即使没有中文提示,也能看懂按钮意思(6)使用开源的SDK以及连接服务器,使App在连接的时候更加的稳定2系统开发环境和相关技术2.1系统开发环境2.1.1 Android Studio不同于eclipse,Android Studio是一个在手机端软件开发十分方便的编程软件, Android studio提供了一系列的工具,使得在使用上能够更好的开发和调试代码。同时Android拥有专门的重新代码构建和快速自动修复错误,问题出错提示工具可修复各种代码的可用性等问题。2.1.2 百度云推送百度云推送是一款

16、消息推送服务;能够云端与客户端之间实现长距离推送服务,同时也能够进行多种不同种类的信息推送,支持一次性向所用用户或者部分用户或者特定群体推送信息,而且可以统计发送的所有的信息给用户以便统计,这同时也方便开发者进行系统的维护和系统的开发。2.1.3 MySQLMySQL是一个由约点MySQLAB公司开发,所属Oracle旗下的一款开源的数据库,本产品可用于组积,存储和管理数据,能够处理并拥有上万条记录并可运行于多个系统上,支持C,C+,Python,java等多种语言,而且MySQL支持创建大型数据库,该大型数据库最大可支持表文件为8TB的文件由于是开源数据库用户可以通过修改相应的源码来开发自己

17、MySQL系统2.2 系统开发相关技术2.2.1 Java语言简介java语言是一种拥有多种优秀特点的编程语言,首先是跨平台性,在不同的操作系统中,java能够做到使用自带的虚拟机识别特定的机器码指令,使得自身具备跨平台性,然后多线程性使得java在允许一个应用程序同时存在两个或两个以上的线程,简单性使得java能够不拘于特定的环境即使使用记事本,文件编辑器等的软件来进行代码实现,也可以编译过后直接运行。2.2.2 百度云推送功能简介在使用百度云推送时,先得去服务者中心下载统一的在Android Studio平台开发时所需要的SDK或者其他种类编程语言所用到的SDK,而且在开发中心的管理页面中

18、可以看到相应的Api,推送用的测试demo以及SDK,通过把API和SDK导入到项目中,然后在项目中,导入相应的方法,配置完Api Key和Secret Key便可以实现联网推送。2.2.3 MySQL功能简介MySQL是一款开源的关系型数据库,而在数据库中你可以创建多个表,每个表中会有相应的表和列,在表中主键是唯一的,一个表中只能有一个主键,可以通过主键来查找数据,外键可用于关联两个边,另外还有索引,和复合键等的功能,在连接MySQL上可以使用二进制和PHP脚本,连接成功后,便可以访问数据库中的数据。3 系统分析3.1 系统可行性分析本app通过在网络良好的情况下实现远地实时聊天,解决了广大

19、用户们对话费贵的担忧,实现聊天日常化,在聊天的过程中不用担心漏掉什么信息,不用担心说错了什么,更不用着急的结束对话,大大加强了聊天的趣味性。在app实现的技术上,介于百度云推出的强大的云推送包上,在勾搭服务器时,直接使用百度云所提供的包里面的服务器,在稳定性上比任何我们自己所勾搭的服务器稳定的多,在一定程度上可以确保系统的稳定性,而编程代码使用的是java语言,所以可以在多种的操作系统中进行修改和操作,而且在修改的时候也不一定需要特殊的修改工具,甚至打开一个txt文本也可以对立面的内容进行操作,而在百度云推送的管理者模式中可以对账号进行管理,对一些发送敏感信息的用户或者某些敏感内容进行操作,同

20、时管理员可以给所有在登录的角色发送信息,所有在维护安全的方面上也是有一定的保障的,然后从用户的方面去看,由于界面的整洁打发,按键较少的情况下,用户很容易就能上手使用该款app,更加的方便用户的使用。3.2 系统功能需求分析本app功能分为,聊天功能,个人信息修改,后台运行功能,下拉刷新信息功能,错误返回功能(1) 聊天功能:聊天功能为本app最主要的功能,在使用相同app的情况下,用户们可以看到在线用户的id,点击id头像就可以进入到聊天界面与你点击所选的用户进行聊天。(2) 个人信息修改功能:在个人信息修改页面中,用户可以在该页面中修改自己的聊天昵称,聊天头像,人物性别,点击保存后,信息会同

21、步到聊天界面中。(3) 后台运行功能:后台运行功能是指当App通过非退出方式返回手机主页时,可以通过下拉守手机的菜单当中看到App正在后台运行的提示,并且可以通过点击该提示去进入App。(4) 下拉刷新信息功能:就是在页面中可以通过下拉刷新信息,并且会提示下拉刷新的时间。(5) 错误返回功能:就是当App异常退出时,不是App直接闪退,而是跳转到是否选择提交错误报告的页面,用户可以在该页面中选择提交报告后退出或者直接退出App。(6) 个人空间:可以通过点击个人的属性进入到个人空间,查看空间内容3.3系统性能需求分析(1)主页:可以看到在线的人数,并且点击在线角色的头像便可以进入聊天界面进行聊

22、天。(2)聊天:在聊天界面中,你可以看到对方给你发送的聊天内容,并且你可以通过聊天框内输入聊天信息发送回对面。(3)好友:用于观看好友列表。(4)人物属性:用于修改个人资料,个人资料包括头像,昵称,性别。(5)退出:用户可以在指定的页面中点击退出的按钮,然后会跳转到二次确认退出的界面中,再次点击退出便可退出App(6)错误报告提交:当程序出现异常错误崩溃时,先跳转到错误报告提交页面,可以选择提交报告后退出app,也可以直接退出app。(7)个人空间:可以查看个人空间内容4系统设计4.1系统总体设计(1)主页在主页,可以查看在线的用户,以及对好友页面的跳转和设置页面的跳转。(2)好友页面在好友页

23、面中,可以在该页面中查看并且删除好友,而且能够通过下拉刷新是否有新的消息接收。(3)设置模块在设置页面中可以修改个人信息,以及部分App功能功能的修改,而且该页面下会有个退出按钮,点击该按钮后会跳转到二次确认退出界面,再次确认后可以退出App。(4)删除好友通过点击某个好友头像达到数秒后,会出现是否需要删除好友的提示,按照提示可以完成实现删除好友。(5)个人信息修改通过点击个人资料后会跳转到个人信息修改页面,该页面下可实现对个人信息的修改(6)退出App在点击退出按键后,会跳转到退出页面,点击退出页面就能成功退出该App图4.1总体结构图4.2系统功能模块设计4.2.1聊天界面该页面是用于用户

24、与用户间聊天所使用的,用户可以通过点击聊天对象的头像进入该页面,页面上会显示聊天信息所发送的时间,在输入框中可以选择发送文字信息或者表情包,其中可以使用的表情一共有18,并且可以通过点击退出键退出表情包页,在确认完要发送的信息后,用户只需要点击发送按钮便可以发送信息,同时在设置页面中更改的头像信息也会更新到相关的主页面和聊天页面。主页面如图4.2所示: 图4.2聊天界面 4.2.2属性修改界面属性修改页面是用于对个人的属性进行修改,其中可以修改的项目有个人头像,个人性别和昵称更换,其中头像选择和性别更换使用的是滚轮式选择方法,目前可提供的头像选择一共有19个,而且昵称的输入是非空,确认输入信息

25、后点击确认修改便可以更改个人信息。然后通过刷新页面,便可以在看到修改过的个人信息也会同步到主页和聊天页面中。属性修改页面如图4.3所示 图4.3属性修改界面4.2.3在线人数界面在线人数界面是用于查看在线登录app的人数的,如果有用户登录该app就会显示在该app上,用户可以通过点击别的用户进入聊天界面,同时左上角和右上角的按钮点击后分别可以进入到好友界面和设置界面,左边所进入到的是好友界面,右边所进入到的是设置界面,然后置顶的是当前自己所使用的名字,可以通过在个人设置中修改自己的昵称去更改置顶的名字。在线人数界面如图4.4所示图4.4人物在线界面 4.2.4好友列表界面好友列表界面是用于对好

26、友列表进行查看的列表,目前界面上是只有一个好友的分类,通过程序后台可以给分类添加别的组类,在界面中,可以给在线好友添加别的种类,目前只有一种好友种类,在搜索栏中可以加入别人的昵称,然后界面上就会出现所搜索的昵称人。然后可以通过长按好友名称会提示是否需要删除好友,当点击确认后会删除好友,否则则返回好友列表界面。好友列表界面如图4.5所示图4.5好友界面4.2.5退出界面退出界面是用于退出该app所使用的界面,通过在账号管理界面中点击红色的退出按钮会跳转到该页面对退出选项进行二次的确认,在该页面中用户只能点击的只有确定退出的按钮,点击该按钮后,将会退出该社交app。退出界面如图4.6所示 图4.6

27、 退出界面4.2.6设置界面在设置中,一共有5个内容,人物状态,个人资料,新消息声音提醒以及显示自己头像的功能,在人物状态中你可以看到自己所设置的头像,昵称以及在线状态,这些属性会随着个人属性的修改而更换,在个人资料栏中,你可以通过点击该栏跳转到属性修改界面中,通过修改属性保存后,所修改信息保存后会同步到人物状态中去,而新消息声音提醒栏中,用户可以选择开启或者关闭决定是否开启或者在接收消息时是否会有声音提醒,而聊天是否显示头像栏中,玩家可以选择开启或者关闭聊天时是否会显示自己的头像,如果选择开启,在聊天界面中发送信息时会显示自己的头像,选择关闭的话,在聊天界面中发送信息时则看不到自己的头像,最

28、后一栏就是退出按钮,点击退出按钮之后会跳转到退出界面,用于对app进行退出所使用的按钮。设置界面如图4.6所示图4.6设置界面4.3 数据库设置4.3.1数据库概念结构设计根据App的使用,一个用户可发送多条信息,并且拥有多条信息的信息保存记录,E-R图如下:图4.7 E-R图4.3.2数据库逻辑结构设计本数据库命名为App,数据库中所包含的表有用户信息表(user),聊天记录表(talk)数据库名称:App用户信息表(user)字段类型可否为空描述idint(11)否用户idusernamevarchar(30)否用户名字userfacevarchar(32)否用户头像usersexvarc

29、har(32)否用户性别实现代码CREATE TABLE user(idint(11)NOTNULLAUTO_INCREMENTusernamevarchar(30)NOTNULLAUTO_INCREMENT userpassvarchar(32)NOTNULLAUTO_INCREMENT, truenamevarchar(32)NOTNULLAUTO_INCREMENTPRIMARYKEY(id) ENGINE=InnoDBAUTO_INCREMENT=23DEFAULTCHARSET=utf8;聊天记录表(talk)字段类型可否为空描述idInt(11)否用户idtalkuservarch

30、ar(64)否聊天对象名称savetalkvarchar(255)否聊天内容savetimevarchar(64)否聊天时的时间代码实现CREATE TABLE talk(idint(11)NOTNULLAUTO_INCREMENTtalkuservarchar(30)NOTNULLAUTO_INCREMENT savetalkvarchar(32)NOTNULLAUTO_INCREMENT, savetimevarchar(32)NOTNULLAUTO_INCREMENTPRIMARYKEY(id) ENGINE=InnoDBAUTO_INCREMENT=23DEFAULTCHARSET=u

31、tf8; 5系统实现5.1聊天功能聊天功能指的是当发送聊天信息的用户发送信息给聊天对象时,聊天对面能够接收到信息,并且也能够信息给对方。在本次设计中,我是通过使用百度云推送去完成联网实时聊天功能的,完成实时聊天功能可以通过以下三步的步骤完成第一步:注册百度云账号,然后在开发者服务管理创建相关工程,便可以查看你所创建的相关工程的API Key和Secret Key,在开发中心下载你所所用编程软件所匹配的SDK。第二步:在清单文件中添加权限,注册消息接收的receiver。第三步:在主方法中添加PushManager.startWork(getApplicationContext()这行代码以及使

32、用Api Key和Secret Key所需要的方法,然后创建继承FrontiaApplication的类,创建PushMessageReceiver用于自定义广播的接受,在MyPushMessageReceiver中添加获取信息的代码以及处理错误返回的代码,导入百度云推送所需要的jar包以及so文件最后创建相关界面的xm文件对界面的布局进行编写。5.2聊天添加表情在聊天界面中可以通过选择表情,点击发送后,发送表情给聊天对象。如图5.2要实现发送表情首先得知道Pattern和Matcher,先说下Pattern,Pattern是一个正则表达式经过编译后所变现出来的模式,然后死Matcher,你所

33、使用的每一Matcher对象它需要去依据Pattern做匹配检查,然后通过把这两个类搭配使用就可以对特定的类进行筛选和匹配了,然后添加import java.util.regex.Matcher和import java.util.regex.Pattern这两行代码去调用Matcher和Pattern,然后给每个可以发送的表情定义好,通过在方法中给表情包的页数和表情包一页多少的个数定义好数量,最后创建点击表情实现跳转的类,完成点击表情发送表情的跳转。图5.25.3 个人设置在个人设置的页面上,有头像设置,性别设置,提示音开关和头像开关,在提示音开关和头像开关的实现只需要使用基础的开关控件就好,

34、但头像设置和性别设置(如图5.3)却得使用别的方法去完成,虽然说性别设置只有两个选项,可以选择别的方法去实现,但头像设置里,我导入了一共19个头像,由于选择众多,所以我选择了滚轮选择器来实现选择功能在头像的选择上使用的是滚轮布局WheelView,通过seOnEndFlingListener的方法,可以当滚轮滑动停止时,直接调用停止时所选中的当前选中的项,然后在WheelView这个类中修改所选的背景,上下阴影以及中间做选择时的所用的矩形等。最后再完成相对应的xml文件。图5.36 系统测试6.1测试过程(1) 第一步:首先对App分析,然后制定相应的策略,之后再根据大概需要的内容进行测试计划

35、。该app是使用Java语言编写的社交类实时App,本网站主要功能有进行聊天,修改个人相关属性,查看在线人数,对系统进行功能测试,检查系统是否能完成预定的功能。 (2) 第二步:搭建测试所需要的环境,然后执行测试用例。 (3) 第三步:提交缺陷。 (4) 第四步:消除缺陷。 (5) 第五步:完成测试。6.2 测试环境描述应用服务器配置: (1) CPU:Intel(R)Core(TM)i5-4210U CPU 1.70Hz(2) ROM:8G(3) OS:Windows10(4) 模拟器:雷电模拟器6.3 测试用例执行情况测试用例执行情况如表6.1所示表6.1 测试用例执行情况需求功能名称测试用例名称执行说明执行情况是否通过主页面主页面用于查看页面同时登录的人数,当页面有除了自己外的别的用户能否可以点击该用户头像,进入聊天界面,进行聊天良好是聊天页面聊天页面是否能在该页面中发送或者接收信息,能否发送表情,并且对方是否能接收到表情良好是好友页面好友页面用于查看该页面下好友的人数,用户可以通过在该页面下点击好友的名称发送信息,或者发送离线信息良好是设置页面设置页面能否在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁