版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文) 题目:基于Bmob云服务的移动聊天app 指导老师: 职 称: 学生姓名: 专 业:计算机科学与技术(软件开发java) 院 (系): 完成时间: 2016年4月26号 前言1.1 项目背景十几年前,谁又会知道,人们感觉浪费时间的qq聊天软件如此的火爆,相继有出现了一大批类似于qq,微信,微博等火热的聊天软件,与原来最早出现的qq火热相对,开启了一场没有硝烟的战争,随着时代的发展,QQ依赖庞大的用户群来扩展它其他领域的业务,是的QQ在,通信行业占有非常重要的位置,和庞大的市场,所以说,移动通信在互联网使用中具有几乎不可动摇的地位,虽然,QQ用户着极大的用户量,很多领域几乎都是
2、被QQ所垄断,但是在一些移动聊天开发中还是有非常可观的利益的,所以我就打算在及时通信方面做些研究,为自己开发一款属于大众的聊天软件。1.2 项目的目的和意义及时通信的重要基础就是拥有庞大用户群,从而来垄断市场,所以说新开发的及时通信聊天必须重新找到另外一个突破口和机遇是必须要有。面向个人用户,是当下即时通信市场的一个重要的特点,不过这种模式一般短时间不会产生非常直观的利益,但是对于以一个企业来说它们也存在巨大的潜在价值,这也将在以后会带来非常可观的价值,对于一个一个后来者来说,这也许是一个切入点。一切从用户的需求出发,调查看看用户需要什么,我就可以按照用户的需求来定制开发,使得用户对于我们的产
3、品有种依赖的态度,慢慢的我们就可以获得更大的用户群体,从而也可以像QQ那样来扩展自己的其它领域的业务。所以一个新的及时通信的软件闪亮出现在大众的眼前。所以说开发这框即时通信app微圈还是用很大的潜在价值的,不过要想获得更大的用户群,还必须依赖企业这种大公司来做广告来推广,不然会过段时间消失在大众的眼前,所以即使通信在前期的宣传是很有必要的。 2 关键技术介绍2.1 android系统的分层架构图本软件是基于android系统的,Android是一个以Linux为基础的半开源的操作系统,主要用于移动设备由Goole和开放的手持设备联盟主导的。Android系统最初由安迪.鲁宾制作,最初主要支持手
4、机。Android是系统内核,是运行于Linux kemel之上,但是并不是Linux。Android为达到商业的应用,必须移除被GUN GPL授权证所约束的部分,例如Android将驱动程序移到userspace,使得Linux driver kernel彻底分开。Android的架构采用了分层架构的思想,如图2-1所示,从上层到底层共包括四层,分别是应用程序层,应用程序框架层,系统和库和运行时,Linux内核应用程序层:在这层,系统提供了一些基础的核心应用包,如短信联系人管理电子邮件,日历,系统设置,浏览器等,同时开发者可以利用java语言编写属于自己的应用程序,这些程序与核心应用层是一样
5、的。图2-1 Android分层架构图应用程序框架层:改成作为应用程序是开发的基础,在很多的情况下开发人员都与它进行交流。应用程序框架层:括活动管理器,窗口管理器,内容提供者,视图系统,电话管理,资源管理,位置管理,通知管理,所以在Android平台上,开发人员完全可以访问核心应用程序所使用的的API框架,并且任何一个程序都可以发布自身的功能模块,而其它的我应用程序则可以使用这样的发布的功能模块,基于这样的重用机制,用户可以方便地替换平台本身的应用程序组件。2.2 Android的工作机制一个Android应用程序由四大组件构成,它们分别是Activity,Service,Content-pr
6、ovider,BroadCast Receiver,但是并不是每一个应用程序都包括这四个组件,在应用程序中使用这些组件时,必须在AndroidMainFest.xml配置文件中配置,才能够用去使用。Android应用构成图联合工作流程图2-2如下:图2.2 工作流程图2.2.1 ActivityAndroid中,Activity是所有的程序的根本,所有程序的流程都运行在activity之中,activity可以说是开发中遇到最频繁,也是最基本的模块之一了,在android程序中Activity一般代表手机屏幕的一个屏,把手机作为浏览器,Activity就相当于一个网页,Activity中可以添
7、加一些按钮文本框等一些控件,activity可以实现页面之间的跳转,activity是有一定的声明周期的。如图2-3所示:图2-3 activity的声明周期2.2.2 Service Android中Service是运行在后台的东西,看不见摸不着的,级别和activity差不多,没有界面,你可以启动一个服务Service来播放音乐,或者记录你的地理位置的改变,或者启动一个服务来监听某一个动作。Service和其他组件一样都是运行在主线程中因此不能用它来做耗时的请求或者动作,服务一般分为本地服务,和远程服务。本地服务应用程序内部的调用,远程服务用于android系统中内部应用程序的相互调用,定
8、义接口,把接口暴露出来,以便其他应用程序操作。2.2.3 Content Provider当应用程序继承ContentProvider类,并重写该类用于提供数据和存储的方法,就可以像其他应用共享其数据。Android为常见的一些数据提供默认的ContentProvider(包括视频,音频,图片和通讯录)。所以我们可以在其他应用程序通过哪些ContentProvider获取这些数据。虽然使用其方式也可以对外共享数据,但是数据访问的方法会因数据存储的方法不同而不一样。2.2.4 Broadcast Receiver广播接受器是一个专注接受广播通知消息,广播就是当一个事件发生的时候,比如突然断网等,
9、系统就会发一个广播信息给所有的接受者,在所有的接受者得到消息之后就知道现在没有网络了,我们的程序怎么办,比如显示图片细信息,提示用户。广播之间传递信息是通过Intent对象传递信息,Intent分为显示调用和隐示调用两种,由于这里可以通知所有的接受者,所以肯定不能使用显示调用,只能使用隐示调用intent对象。2.3 Bmob云2.3.1 Bmob介绍 Bmob 可以为你提供实时的数据和文件的存储功能,轻松的让你实现云端和客户端之间的数据连通。数据的存储除了常规的应用文本信息的的存储,还可以包括存储图片,视屏,音频,地理位置等信息。此外数据服务还可以内置用户系统,权限管理控制。轻松就可以搭建应
10、用数据库,支持可视化操作,提供可视化云端数据表设计界面,轻松建库建表,支持10多中不同的数据存储类型:如字符串,整型,数组等。支持文件上传和存储,cdn加速更加稳定更加的快只需要通过调用api就可以实现文件上传,数据安全可靠,可以实现用户全站的加速更加快捷。可以在线编写代码和调试代码让逻辑实现更加的灵活容易,同过编写javascript和Java代码,并且部署到Bmob后端云的平台上,可轻松实现业务的需求。使用云逻辑代码片段是更新和维护变得更加便捷。定时任务,一一定的时间间隔自动完成指定的动作,比如以某个时间点定时更新平台信息内容。2.3.2 Bmob的使用Bmob是移动端的后台服务,它帮助我
11、们把服务端的东西打包,做移动端的人不用考虑如何写服务端,如何设计数据库,搭建服务器等,它把一切都放到云端,用户只需要调用api接口,去实现你需要的功能就可以,当然这需要获得官网的api,才可以去使用。API截图如2-4所示:图2-4 Bmob云api截图3系统分析3.1 开发环境 开发工具选用Android studio,Android Studio简称 as是一个Android集成的开发工具基于intellij idea类似于EclipseADT ,AS提供了集成的Android开发工具个调试。开发环境和java 的开发环境一样需要安装java 的jdk和jre。3.2 需求分析随着互联网的
12、发展,及时聊天拉近人与人之间的距离,用户点开app的页面,就会进入注册页面,注册以后就进入了登录页面,登录过来就可以使用该软件,进行了聊天,但是首先你必须要有好友,所以你需要添加你的好友,等待好友同意,你们就可以进行聊天。并写可以发送表情等信息,也可以发送心情,供所有的好友都可以看到你所发送的心情,并且可以进行评论和分享给其它平台的好友。3.3 系统功能分析用户进入应用程序完成用户的注册,进行登录就可以登录到该应用程序的主界面,该应用程序主要的功能包括,添加好友,当你输入 要添加好友的名字,点击添加好友,系统通过网络就给该好友发送添加好友的请求,该好友点击同意该请求,你们就是好友,就可以相互聊
13、天,当你们是好友的时候,在主界面的新朋友模块,会有提示信息。好友之间通信,可以相互的发送文本信息,表情,地理位置。联系人模块,按照字母的顺序对所有的好友进行排序,最上面的栏目里面可以进行好友的搜索,属于异步请求搜索,不需要点击按钮,就可以列出满足条件的好友。新朋友功能就是当有好友向你发送添加好友的请求的时候,该栏目就可以列出所有的好友添加请求,可以进行是否添加或者拒绝添加好友,或者删除好友的请求不显示。附近的人栏目,就是点击附近的人按钮就可以看到附近五公里以内的好友,可以查看好友的基本信息(包括头像,昵称,账号,性别)等基本信息。并且可以选择是否添加好友等请求。也可以显示该好友与你的距离,和该
14、好友最近登录的时间点。朋友圈模块,就是一个可以分享你的动态向所有的用户,可以发布此时此刻的心情,如果有用户看见你分享的内容,也可以进行评论,你发布的分享也可以进行分享到其他的为网络平台上,比如QQ好友的分享,QQ空间的分享。分享的的动态,和评论都有显示当时操作的时间点。设置模块功能,就是相当于个人中心,可以对自己的资料进行修改,当然了账号是不可以进行修改的,可以修改自己的性别等信息。该模块可以把好友拉进黑名单,不再接受好友发送的信息。也可以把好友从黑名单中移除,又可以重新接受该好友发送的信息。该模块可以设置,接受消息是否通知,和通知消息是否有声音,或者是否需要震动。3.4 系统任务的可行性分析
15、3.4.1 技术可行本软件开发工具采用了Android studio,使用了Android技术和Bmob技术结合进行开发的数据库采用了两种数据库,一个是bmob云里面的网络数据库,一个是本地的数据库SQLite,界面布局还是才有老式的xml布局,数据库存储,访问采用的是bmob,具有高并发量的访问,完全没有压力,已经得到大量的实验了,所以说该软件从用户并发量上考虑也都是可行的。3.4.2 系统安全可行性本系统是通过网络协议进行数据传输,数据全部保存到我自己在bmob云的账户里面,可以随时的进行对数据的操作,数据安全的角度考虑还是比较安全的,毕竟只有自己才能登陆账号对数据库进行操作。4 系统设计
16、4.1 系统概要设计 启动软件有个大大启动logo 微圈的字样,启动后假如是新用户,必须注册以后才能进入程序的主界面,注册以后就可以进入程序的主界面了,主界面分为五个Frame,分别是会话,联系人,朋友圈,设置和开发者。会话Frame:指的就是你和好与进行聊天的历史页面和好友聊天的列表,点击其中的一个列表就可以看到和好友的历史聊天记录,长时间点击列表可以弹出删除历史聊天记录的按钮,点击删除就可以在本地数据库删除本次历史聊天记录。联系人Frame:笨页面就显示好友的联系人的页面,吧好友的显示页面按照字母的顺序进行排序,该界面的上部是好友搜索的文本框,可以按照好友的名字进行搜索,是模糊查询的搜索,
17、符合添加的好友都会被查询出来。下面的框是新朋友的区域,当你的好友向你发送一些请求的时候,这区域就是一个通知的区域,提示你是否同意接受本次请求,可以选择接受或者拒绝。再下面的文本框就是附近的人,就是查找附近五公里以内的人,不过都是陌生人,所以要想和他们聊天必须要加他们好友才可以正常的发送信息。最下面的就是好友列表的显示区域。朋友圈Frame:所有的用户都可以在朋友圈里面发送自己的心情,发过的朋友朋友圈信息,所有注册过的用户都可以看到,便于大家的一起交流,没有是不是好友不可以看到的权限限制,你所发过的朋友的信息,你的好友包括自己都可以进行评论,并且显示在朋友圈的信息的下面,并且所有的用户也都将可以
18、看到所有的评论上,所有的用户也可以将别人发布的信息分享到别的平台上面(目前为止只是可以分享到QQ平台上QQ空间和QQ好友)。设置Frame:设置界面是个人资料的修改页面,包括软件本身的一些基本的设置,资料修改头像的修改,昵称的修改,性别的修改,可以设置接受信息是否开启通知,设置声音是否静音,设置消息通知是否震动。开发者Frame:这个界面主要介绍开发这的基本信息,和联系方法,有什么问题或者对此软件比较感兴趣或者是投资什么的,都可以通过这个界面获得开发者的基本信息。这样有利于软件的正常运行。4.2 数据库设计数据库是一个系统的灵魂所在,所有的操作数据库都必须要保存到数据库中,但是重要的还是数据的
19、保存在数据库中并且展示出来,因此数据库的设计在整个项目中承担及其重要的位置。本系统中的数据库命名为circle一共设计了五张表,分别为用户安装登录表,用户表,用户聊天信息表,用户发布朋友圈信息表,用户评论表。如下图4-1所示。图4-1 数据库表设计4.2.1 用户安装信息表用户安装信息表那些用户注册安装过本程序,包括的表属性有安装的地点,安装的时间,更新程序的时间,安装程序的设备,安装程序的用户的id,名字,安装的序列号等一些基本的信息。如下图4-2所示 图4-2 用户安装信息表4.2.2 用户表用户表主要包括一些用户注册的一些基本信息,和操作修改过的一些基本信息,有用户唯一标识,用户名字,用
20、户的密码(是加过密的),用户的性别,用户黑名单的关联关系,用户是否是好友的关联关系,用户使用的手机的设备类型,用户的坐标位置信息,用户的昵称信息,和用户发布的朋友圈的关联信息,用户的创建时间和更新的时间。如下图4-3所示图4-3 用户表4.2.3 聊天消息表 聊天消息表包括的属性有信息的唯一标识,用户的名称,用户的昵称,聊天的内容,对话的唯一标识,是否阅读过标识,信息的时间,开始时间和更新时间。图标如下图4-4所示。图4-4 聊天消息表4.2.4 朋友圈表朋友圈表包括的属性有唯一标识属性,为那个用户评论的属性,发布的内容,关联的评论属性,创建时间。如下图4-5所示。图4-5 朋友圈表4.2.5
21、评论表评论表包括的属性有唯一标识,指向的用户指向的朋友圈内容,和创建时间和更新时间。如图4-6所示。图4-6 评论表5 系统功能的实现5.1 启动页面的展示点击软件app可以进入到启动页面,启动页面就是一个大大logo显示软件的名字微圈。布局显的简单大方也美观。如图5-1所示。图5-1 app启动页面5.2 主界面启动界面加载完毕以后及进入到主界面,主界面就是会话界面 ,可以和你的好友进行聊天,发送文本信息是,发送你的地理位置,发送你想要发送的表情,在主界面的好友聊天列表中,可以进行聊天内容删除。如图5-2所示。图5-2 app主界面5.3 联系人界面联系人界面,上面是查找好友的文本框,输入好
22、友的名字就可以就进行查询,并且还是模糊查询,符合条件好友会展示在下面的好友列表中,新朋友模块,就是陌生人向你发送添加好友的请求,你可以选择添加好友或者是拒绝添加好友,当有未处理的的好友请求的时候该模块的会有一个小红色的点点,提示用户您有未处理的好友请求。然后让用户去点击处理未处理的信息。下面的模块就是一个休闲娱乐的模块,就是你五公里以内的好友可以看见你的名字,这样你们班就可以相互的添加好友来相互的认识,是的你的朋友圈更加的有趣,更加的广泛,朋友更加的多,同时也可以显示与朋友的具体的距离位置,也显示对方最近登录的时间,让你的好友更好的判断你是否在线。如图5-3所示。图5-3 联系人界面5.4 朋
23、友圈界面朋友圈界面是可以发布心情的的功能模块,点击右上角的书写按钮就可以进行发布心情,编辑好你的文字点击对号按钮就可以发布心情,并且也可以显示发布说说的时间,向下拉刷新就会看到自己发布的信息,点击自己发布的信息的模块就会进入到详情页面,详情页面可以对该心情进行评论,同时也可以看到其他好友进行的评论,实现了信息的共享。同时也可以将别人发布的心情分享到其他的网络平台上面,包括QQ空间,QQ单个好友或者是QQ群里面都可以进行分享。如图5-4所示。 图5-4 朋友圈界面5.5 个人信息设置界面个人设置界面主要包括个人资料的修改,点击个人资料,可以进行昵称和性别的修改,头像暂时还是不可以进行修改的,因为
24、账号是唯一的不变的,所以不可以进行账号的更改。下面的模块就是黑名单模块的的管理,可以把之前加入黑名单的人员从黑名单里面移除出去,就可以正常的接受之前被加入黑名单好友的信息,被列入加入黑名单的好友,是接受不到它所发来的任何的信息提示。该模块还可以设置就接受新信息的通知,设置是否有声音的提示,或者是否有震动的提示。下面有最后一个功能就是退出登录功能,点击退出登录的时候,系统就会进入到登录的界面,需要使用的时候必须输入用户名和密码才能够正产给的使用。如图5-5所示。 图5-5 个人信息设置界面 6 系统测试6.1 系统测试的目的系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的
25、错误的测试。测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试时应遵循以基本原则。应尽早并不断地进行测试。测试不是在应用系统开发完之后才进行的。由于原始问题的复杂性开发各阶段的多样性以及参加人员之间的协调等因素,
26、使得毛开发各个阶段都有可能出现错误。因此测试应贯穿在开发的各个阶段,尽早纠正错误,消除隐患。6.2 测试的环境测试环境:操作系统:win8数据库:bmob云的数据库 开发测试的工具:Android Studio,海马手机模拟器6.3 测试的方法6.3.1 单元测试单元测试(unit testing),是指读软件中的最小可可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判断其具体的含义,如c语言中单元指一个函数,java中单元指额就是一个类或者是说成一个类里面的方法,图形化的软件中可以值一个窗口或者一个菜单等,总体来说,单元就是人为规定的最小的被测的模块,单元测试就是软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其它部分相隔离的情况下进行测试。6.3.2 集成测试集成测试就是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块,子系统或者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性肾脏病妊娠管理
- 院团委社团管理中心
- 360 轨外绳式推车机
- 我的战友邱少云课件公开课
- 妊娠高血压综合征-妊高征课件
- 4-2.1生物选修1课堂教学-微生物的实验室培养课件
- 《《乘与除》》教案模版
- 2024年房地产经纪人《房地产交易制度政策》考前必刷必练题库500题(含真题、必会题)
- (道德与法治)2025年绵阳市江油外国语学校九年级中考仿真模拟试题
- 职场面试技巧
- 《物流网络规划》课件
- 提升自我领导力培训
- 电梯维保公告栏表格
- 直播电商基地推动城乡经济融合发展
- 机场安全管理体系-安机场安全管理手册2
- 《手机与我们的生活》教案、教学设计
- 文印服务投标方案(技术方案)
- 人教版(2023版)小学数学四年级上册电子课本
- 离心机的验收报告
- 项目报备合同范本
- 药剂科考核标准(临床药学室)
评论
0/150
提交评论