基于android开发平台的聊天软件实现(论文+源码)_kaic

摘要:互联网时代的到来使得手机通讯变得更为普及和强大,人们可以随时随地地进行交流。由于工作的繁忙以及生活节奏的加快,人们无法有更多时间展开面对面的交谈,导致在线聊天软件的使用更加频繁,所以本文尝试设计了一款在线聊天软件。为了更好的用户体验,我们开发了一款界面相对简单、交流方便快捷且操作相对简单的即时聊天软件。介绍了所用到的开发软件与相关技术。并且,本次研究基于Android平台,本聊天软件的主要功能有:用户的登录与注册、一对一聊天(包括文字聊天、发送语音信息和表情的发送),修改个人信息,更换头像,修改密码等功能。本篇论文首先介绍了聊天软件的发展历程与背景,然后介绍了本次课题的目的与意义,接着还列出了软件的系统架构、各个模块与功能实现的流程并重点介绍了即时通信实现的相关原理和实现的流程,最后也对项目进行了一些相关的测试与检查试验。
关键词:Android;登录注册;即时通信;多线程;Socket

Abstract
The advent of the Internet era makes mobile communication more popular and powerful. People can communicate anytime and anywhere. Due to the busy work and the accelerated pace of life, people can not have more time to carry out face-to-face conversation, resulting in more frequent use of online chat software, so this paper attempts to design an online chat software. For better user experience, we have developed an instant chat software with relatively simple interface, convenient and fast communication and relatively simple operation. The development software and related technologies are introduced. Moreover, based on the Android platform, the main functions of this chat software are: user login and registration, one-to-one chat (including text chat, sending voice information and expression), modifying personal information, changing avatar, modifying password and so on. This paper first introduces the development process and background of chat software, then introduces the purpose and significance of this topic, then lists the system architecture of the software, the implementation process of each module and function, focuses on the relevant principles and implementation process of instant messaging, and finally carries out some relevant tests and inspection tests on the project.
Keywords: Android; Login and registration; Instant messaging; Multithreading; Socket 
目  录
第1章 绪论
1.1选题背景及意义
1.1.1个人即时通讯软件
1.1.2企业即时通讯
1.2国内外发展现状简述
1.3主要设计内容及预期目标
第2章 关键技术介绍
2.1 Android平台
2.1.1 Android平台的特征
2.1.2 Android体系结构
2.2 TCP/IP协议
2.3 C/S模型
2.4 Android的MVC架构
2.4.1视图层(View)
2.4.2 控制层(Control)
2.4.3 模型层(Model)
2.5多线程技术
第3章 系统的总体设计
3.1系统的整体流程
3.2服务器功能模块图
3.3客户端功能模块图
第4章 软件的具体设计实现
4.1系统实现原理
4.2服务器端功能具体实现流程
4.2.1用户登录验证模块
4.2.2信息的转发模块
4.3客户端功能具体实现流程
4.3.1用户登录模块
4.3.2用户注册模块
4.3.3用户消息发送模块
4.3.4用户设置模块
4.3.5 用户添加好友模块
4.3.6 用户退出登录模块
第5章 软件运行与测试
5.1用户个人操作相关界面
5.1.1 用户登录界面展示
5.1.2 用户注册界面展示
5.1.3 聊天消息界面展示
5.1.4 通讯录展示
5.1.5 添加好友界面展示
5.1.6 消息验证界面展示
5.1.7 个人信息界面展示
5.1.8 头像更换界面展示
5.1.9 重置密码界面展示
5.2 聊天功能相关展示
5.2.1 即时聊天界面展示
5.2.1 语音消息发送界面展示
5.2.2 位置信息界面展示
5.2.3 退出登录界面展示
结 论
参考文献
致  谢
 
第1章 绪论
1.1 选题背景及意义
随着信息技术的高速发展,人类的通讯变得高效而便捷。得益于人们对沟通的迫切需求,即时通讯得以出现并获得了长足的发展。在本篇文章中,我们详细介绍了基于Android系统开发而出的即时通讯软件,并提供了真实而具体的案例加以说明。
为了提高市场竞争力,有必要对整个市场进行仔细检查并提供优质的客户服务。公司需要在复杂的环境中采取行动,员工与领导或者是员工与员工之间的沟通的即时性就显得特别重要。在线即时聊天系统是企业进行交流和沟通的平台。本系统能够及时反馈信息,立即处理和采取相应的措施。
移动网络通网络应用的重要体现。移动即时通讯传递则是移动网络应用程序的重要方面。该聊天系统主要用于个人聊企业,学校和小型局域网等受众使用。该应用程序可以使近距离通信更快,更方便并且更有效地反映现代即时通信的特性该系统可以满足个人聊和学校内部的在线即时通信需求。在内部网络正常运行时提供即时通讯功能。该系统是使用javaSE(服务器)和Android(客户端)开发的。局域网中使用的系统为中小企业之间的合作和沟通提供了强大的工具,有助于加强公司员工之间的沟通和工作效率的提高。
当前,许多企业为了保证沟通的便捷与高效,都企业内外部的即时通讯投入了大量的资金和精力,以下是适用于不同需求的即时通讯软件的介绍:
1.1.1 个人即时通讯软件
个人即时通讯软件称为个人IM,典型的代表性产品(如微信和QQ)主要由个人用户使用,这些产品的用户通常可以免费使用。在开发此类产品的各种功能时,公司通常要求注册用户输入所需的个人信息,例如昵称、性别、年龄、地址、职业和教育背景等。公司设计这些功能并不是因为有利可图,而是对于不同的用户需求来说,可以尽可能方便地进行聊天和交流。
1.1.2 企业即时通讯
企业级的即时通讯产品,可称作企业IM,主要是以企业用户使用为主的,具体可分为以下三种不同的类型:
(1)局域网软件型企业即时通讯产品
基于局域网的企业即时通讯软件(例如Qida Longchat)必须部署在自己的服务器上。所有信息和数据都存储在我们的服务器上。一般而言,系统各方面安全性都较高,所以一般在政府,军队和大中型企业集团更常用。
(2)互联网平台型企业即时通讯
互联网平台型企业即时通讯软件,我们不需要手动的在自己服务器上部署软件,我们只需要下载客户端即可使用,产生的和使用的数据都是在云服务器部署和保存的,这样也就导致了数据的安全性不高,但是成本也相对较低。
(3)API云服务即时通讯产品
API云服务即时通讯软件,对使用者的技术有一定要求,使用者需要拥有独立技术开发能力以及自己的APP产品,通过调用相关API接口将项目集成到自己的产品中。
1.2 国内外发展现状简述
即时通讯最初是由AOL,Microsoft,Yahoo,腾讯和其他独立于运营商的即时通讯供商提供的。但是,随着科技的不断进步,它们的功能越来越丰富,应用程也越来越广泛,并且即时通讯増强软件(尤其是IP电话)的某些功能正在转移并取代传统的电信服务。企业必须釆取步骤应对这一挑战。
2019年,相关机构发布了一份“全球最受欢迎的社交软件榜”,从这份榜单中可以看到全球最受欢迎的即时通讯软件用户数量排名。在全球范围内,微信以11.11亿用户排名榜单第三,而QQ则8.23亿用户排名第四。作为我国用户数量最多的即时通讯平台,微信只能排到第三,排在第二的是Facebook,用户数达到13.03亿,值得一提的是,排名榜首的是WhatsApp,其用户数量超过了16亿,比微信高出了整整5亿的用户。
2006年6月,中国移动推出了自己的即时通讯工具“飞信”,中国联通也推出了即时通讯工具“超级信”,但由于推迟进入市场,用户规模和品牌不如原始的众所周知一些即时通讯服务提供商。近年来,即时通讯市场的用户规模迅速扩大,市场规模具有广阔的前景。随着 Internet用户的快速增长,即时通讯传递用户的数量也在增加。2004年,中国的即时通讯用户数量达到7,000万,而2005年达到9,300万。2006年,中国的即时通讯用户数量增长了近三成,达到1.2亿。此外,根据摩根士丹利( Morgan Stanley)发布的数字数据,艾瑞咨询( i Research)发现,中国的即时通讯市场市值在2005年约为6200万美元,在2006年为7700万美,2010年则首次破亿,达到1.14亿美元。
移动即时通讯市场具有迅速增长势头和非常诱人的发展空间。根据艾瑞咨询( i Research)2007年5月发布的研究报告,2005年中国动即时通讯用户数量达到500万。2006年,中国移动即时通讯注册用户达到700万。未来几年,移动即时通讯用户数量将快速增长,到2010年,中国移动预计将达到2000万即时通讯用户。
1999年,腾讯推出了OICQ,从那以后,即时通讯已经在中国发展了二十余年。当前,即时通讯领域的国内竞争从“诸侯之间的战斗”的情形变为了腾讯公司一家独大,仅微信而言,注册用户就超过了十亿,实时在线用户最多8亿。2005年,i Research对即时通讯市场进行了调查统计,QQ占据了78.8%的市场份额,MSN为3%,网易泡泡为1.6%,淘宝旺旺为2.1%,Yahoo Messenger为0.7%等。而到了2020年,中国即时通信用户规模为9.81亿人,其中99.3%使用手机登录,微信月活用户更是突破了11亿,QQ则为8亿人,腾讯公司继续领跑全中国。
如今,即时通讯行业继续快速发展,未来的发展趋势是集成多种服务,扩展移动平台,企业用户渗透率以及包含付费内容。移动运营商原先有很大的机会深入到市场之后,但是目前看来它们并没有很好地把握,因而通讯市场的地位遭受很大的威胁。移动运营商可以访问与即时通讯通讯行业的发展兼容的多服务资源。在此阶段,腾讯在内的公司都可以利用即时通讯开发过程中积累的用户习惯以及业务和运营经验来获得更快的成功。

1.3 主要设计内容及预期目标
本文的主要研究内容是设计和实现Android平台的即时通讯系统,以实现移动设备和PC终端之间的相互通讯。具体包括以下几个方面:
1. Android平台上即时通信系统的体系结构:为了实现整个系统,提出了一种合理的体系结构。
2. TCP / IP协议:介绍TCP / IP协议的内容并分析该协议。
3.移动即时消息系统的实现:根据提出的系统架构,我们将详细说明移动即时消息系统的设计和具体实现,最后演示和操作该系统。

第2章 关键技术介绍
2.1 Android平台
Android操作系统是Google和开放电话联盟共同开发的移动设备操作系统。 它的最早发布版本始于2007年11月,当时首次发布的便是Android1.0 Beta,还顺带着发布了多个更新版本的Android操作系统。到2010年底,Android系统的 市场额正式超过已经占领市场10年诺基亚Symbian系统。2012年2月,Android操作系统在全球智能手机操作系统中的市场份额达到52.5%,成为了全球最大的智能手机操作系统,2020年,Android系统的市场占比已经达到了 97.7%,形成垄断之势。
2.1.1 Android平台的特征
1.它提供用于访问硬件的API函数,并简化了诸如相机和GPS之类的硬件的访问过程。
2.它自己具备的运行时虚拟机;
3.提供用户调用的丰富界面控件,以加速用户界面开发并确保 Android平台上程序界面的一致性。
4.提供一种轻量级的进程间通信机制,该机制旨在允许进程组件进行通信并发送系统级广播。
5.该服务作为后台运行的组件提供,没有用户界面。
6.支持高效、快速的数据存储。
2.1.2 Android体系结构
软件堆栈层体系结构分为四个层,如下图2-1所示:
 
图2-1 Android的体系结构图
丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。
内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:
系统 C 库:一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。
媒体库:基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。
Surface Manager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
LibWebCore:一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
2.2 TCP/IP协议
TCP协议是网络通信的基本核心协议,并且Java还提供了一个Socket类库来抽象化TCP协议和三次握手,这是基于TCP协议的常见通信方法。在本节中讨论TCP协议之前,让我们首先讨论一些概念。
2.2.1 TCP协议
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK
(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。在这之后,连接就建立起来了,这个连接将一直保持活动状态,直到连接超时或者客户端和服务器任何一方发出一个FIN(结束)信号是结束。这种通信模式也叫客户端/服务器(C/S)模式。如下图2-2 TCP的三次握手。
由此可见,通过客户端和服务器的“三次握手”,双方可以建立畅通的通信信道,在此信道上双方互相传输数据。
 
图2-2 TCP的三次握手

2.3 C/S模型
所谓的C/S模型,就是客户机/服务器网络。在C/S模型中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需的网络资源,而服务器为客户机提供网络必须的资源。通过C/S模型可以从分利用两端硬件环境的优势,将任务合理分配到客户端和服务器端来实现,所以C/S模式具有以下几个优点:
(1)因为在客户端上有一套完整的系统软件,具有很强的交互性,系统工作人员在运用系统时可以获得出错提示、在线帮助等较强功能;
(2)由于C/S模式是配对的点对点的结构模式,因此多采用局域网的协议,并且通常是学校内部固定的从事学生学籍管理工作的用户群,所以安全性较高;
(3)因为C/S模式只有两层逻辑结构,因此网络通讯量低,传输速度快,占用网络资源少。
随着Android手机性能的不断提升,使用C/S架构将一些需要较长时间处理的功能放置到客户端。使用户得到更好的网络传输,提升用户随着Android手机性能的不断提升,使用C/S架构将一些需要较长时间体验。
2.4 Android的MVC架构
在客户端的实现中,我们用到了MVC模式的架构思想,大大提高了程序模块化的程度。
 
 
图2-3 Android MVC架构

2.4.1 视图层(View)
视图主要提供一种用于显示用户数据输入界面和模型数据显示功能的界面功能的机制,并且还包括信息提示功能。 此方面主要介绍Xml配置文件,包括样式布局文件(样式),动画效果布局文件和图像布局文件。
2.4.2 控制层(Control)
控制层主要负责调度系统响应的流程,管理用户界面的逻辑流,用户交互如何影响数据模型以及数据模型如何影响用户交互的过程。这些是通过Android活动完成的。在Android开发中,配置文件AndroidManifest.xml充当控制器,并将文件中的各种组件视图配置为在模型更改时调用该视图。
2.4.3 模型层(Model)
控制层主要作用是对进行数据库的增、删、改、查等操作。并包含了对信息的接受、发送、请求的提交等一系列操作。具体到在程序中是通过Service实现数据的发送和接收。当一个Activity启动后动态的调用相关函数将它和Service进行绑定。
2.5 多线程技术
多线程是构建大型系统的重要技术,尤其是在效率和性能之间进行权衡的情况下。正确使用多线程可以显着提高系统性能。使用多线程的优点是:
(1)使用线程将任务放置在需要长时间在后台进行处理的程序中。
(2)用户界面可能更具吸引力。例如,当用户单击按钮触发特定事件的处理时,可以弹出一个进度条以显示处理的进度。
(3)可以加快程序执行速度。
(4)线程有助于完成等待的任务,例如用户输入,读取和写入文件以及通过网络发送和接收数据。这样可以释放宝贵的资源,例如内存使用率。
Java是一种多线程语言,它允许多个线程同时运行以处理多个任务。同时,Java具有内置的多线程控件,可以大大简化多线程应用程序的开发。它提供了一个Thread类,该类封装了所有相关的线程控制,并负责一系列逻辑控制操作,例如线程准备,运行,睡眠,暂停,恢复,结束和退出。
 

  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心工作室(kaic_kaic)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值