目 录
1 绪论 1
1.1 项目背景 1
1.2 研究的目的和意义 1
1.3 国内外研究的现状 1
1.4 论文的主要内容和组织结构 2
1.5 本章小结 2
2 关键技术介绍 2
2.1 Android平台 2
2.1.1 Android特征 2
2.1.2 Android体系结构 3
2.2 TCP/IP协议 4
2.2.1 C/S模型 4
2.2.2 TCP协议 4
2.2.3 Android的MVC架构 5
2.3 多线程技术 6
2.4 运行环境 6
2.5 本章小结 7
3 需求分析 7
3.1 系统的整体分析 7
3.1.1 服务器端 8
3.1.2 客户端 8
3.2 可行性分析 9
3.3 本章小结 9
4 Android聊天软件系统设计 9
4.1 系统实现原理 10
4.2 服务器端 11
4.2.1 用户登录验证模块 11
4.2.2 信息的转发模块 11
4.2.3 刷新好友列表模块 12
4.3 客户端 12
4.3.1 用户登录模块 12
4.3.2 用户交互模块 12
4.3.3 用户注册模块 13
4.3.4 用户设置模块 13
4.3.5 用户注销模块 14
4.4 Android聊天软件用户存储数据库的设计 14
4.4.1 SQLite 简介 14
4.4.2 数据库设计 14
4.5 本章小结 14
5 Android聊天软件的实现 14
5.1 数据传输的实现 14
5.2 服务器端的实现 14
5.2.1 用户登录的实现 14
5.2.2 用户退出 14
5.2.3 更新好友列表 14
5.3 客户端代码的实现 14
5.4 客户端UI实现 14
5.4.1 半透明悬浮窗口的实现 14
5.4.2 主界面左右滑动切换的实现 14
5.5 本章小结 14
6 系统演示与运行 14
6.1 用户登录演示 14
6.2 用户注册演示 14
6.3 主界面演示 14
6.4 聊天界面的演示 14
6.5 本章小结 14
结束语 14
参考文献 14
致谢 14
4 Android聊天软件系统设计
通过上一章需求分析得到(系统的运行如图4-1所示)系统的需求分析以及大致的设计方向,本章将会从系统实现原理、服务器端、客户端与数据库设计的几个方面深层次的介绍系统所涉及的关键技术,通过这些技术的实现,系统的设计阶段将会告一段落。

图4-1系统运行图
4.1 系统实现原理
聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:
在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。如图4-2所示:
服务器端启动后先要调用Serversocket()函数建立一个流式套接字,并返回引用新套接字的描述符。然后将此套接字描述符与本机的一个端口建立关联,这由ServerSocket()函数来完成。服务器只有在调用了accept()函数进入等待状态之后才可以接受来自客户端的请求。一旦接收到客户端通过connect()发出的连接请求,accept()将返回一个新的套接字描述符,通过套接字描述符调用相应的流的read()或write()函数即可与客户端进行数据收发。待数据传送完成,本文转载自http://www.biyezuopin.vip/onews.asp?id=12482服务器和客户端调用closes()关闭套接字。需要说明的是服务器此时关闭的是此前由accept()所返回的新套接字,而不是先前开始创建的套接字。在此套接字被关闭后,服务器将再次处于阻塞状态,以等待下一个客户端的连接请求并重复上述过程。

图4-2系统实现原理

public boolean connect(User user) {boolean isok = false;try {s = new Socket("10.0.2.2", 9999);s.getOutputStream();oos = new ObjectOutputStream(s.getOutputStream());oos.writeObject(user);ois = new ObjectInputStream(s.getInputStream());type=(MessageType) ois.readObject();gf=(Group_Friend) ois.readObject();myapp.setChilds(gf.getFriends());myapp.setGroups(gf.getGroups());isok=type.isOk();if(isok){Client_To_ServerThread ccst=new Client_To_ServerThread(s);//启动该通讯线程new Thread(ccst).start();SaveClientSocket.add(user.getUsername(), ccst);}} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return isok;}


























基于Android的网络聊天软件(仿QQ)设计与实现相关推荐

  1. 【完整代码及文档】基于Java的网络聊天室系统的设计与实现

    摘 要 计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有了日新月异的发展,它的发展速度和计算机 ...

  2. 基于TCP的网络聊天软件

    这个聊天软件运行在linux上.整个项目有两大部分:服务器和客户端 服务器采用select编程实现与多个客户端的通信. 服务器使用了sqlite3 对客户的信息进行存储. 整个项目实现了这些功能: 注 ...

  3. 基于WebServices简易网络聊天工具的设计与实现

    基于WebServices简易网络聊天工具的设计与实现 Copyright 朱向洋 Sunsea ALL Right Reserved 一.项目内容 本次课程实现一个类似QQ的网络聊天软件的功能:服务 ...

  4. android系统电量优化,基于Android系统网络耗电量优化方法的.pdf

    基于Android系统网络耗电量优化方法的 2012年第10期,第 45卷 通 信 技 术 Vol.45,No.10,2012 总第250期 Communications Technology No. ...

  5. 基于Android的闹钟的软件

    一.本课题要求:设计一个基于Android的闹钟的软件. 实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件. 二.需求分析 该课题实现在手机操作系统And ...

  6. 基于Android的应用市场软件的设计

    基于Android的应用市场软件的设计 摘 要 随着智能手机的普及,人们越来越依赖手机进行一系列操作. 由于Android系统是一款免费的操作系统,导致了使用Android系统的手机占到7成左右.为了 ...

  7. 网络聊天软件现状及展望

    网络聊天软件现状及展望 其一是单一的即事通讯工具,如,icq,QQ,Aim,MSN messenger ,Yahoo Messenger     特点是主要是进行通讯,包括语音,问本甚至视频,仅此而已 ...

  8. 基于android系统的闹钟,基于Android的闹钟的软件

    一.本课题要求:设计一个基于Android的闹钟的软件. 实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件. 二.需求分析 该课题实现在手机操作系统And ...

  9. 基于Android平台的记事本软件(Android Studio项目+报告+app文件)

    移动应用开发技术 期末考核报告 题   目:        基于Android平台的记事本软件             学生姓名     学生学号                           ...

  10. 【毕业设计之PHP系列】基于PHP的网络聊天室系统

    基于PHP的网络聊天室系统 摘要:我们生活在一个通信变得非常重要的世界里,人们需要同他人快速容易的进行交流.E-mail.电话.邮件以及在线聊天是以书写文字的形式让人们进行思想交流的媒体.通信时一个重 ...

最新文章

  1. Hadoop中通过ToolRunner和Configured实现直接读取命令行动态出入reduce task数量,jar文件等
  2. 智宇科技 ZYARJX-1机械臂智能小车 —— PS2游戏手柄控制程序
  3. 最近处理的几个小问题_20160311
  4. 私人博客定制---服务器接口封装
  5. Flask的csrf_token的用法
  6. 敏捷需求分析及深度提升(广州 2014.1.11)
  7. 3.8 Softmax 回归
  8. [论文阅读] Exploring Dense Context for Salient Object Detection
  9. 跟ArthurXF学从雅虎抓取股票数据的方法
  10. Codeforces Round #226 (Div. 2)
  11. Allegrocadence PCB测量时显示两种单位(mil mm)
  12. 梵语和藏语_《百字明》梵文和藏文发音区分
  13. VS2015安装包-下载
  14. 光盘自动播放 html,插入dvd光盘直接播放 禁用dvd菜单制作刻录dvd光盘 光盘直接放在DVD中就可以自动播放...
  15. kind安装k8s集群
  16. vs2013编译ffmpeg之二十六 opus、shine
  17. 永不过时的优雅 KOREANO ESSENTIAL 2022秋冬系列全新上市
  18. mac u盘只读怎么修改_苹果电脑mac显示只读怎么办
  19. linux7yum配置后使用报错,Centos7 使用yum安装MariaDB 10.1(报错缺少依赖的解决情况,报错信息贴在最后)-Go语言中文社区...
  20. AutoHotKey方向键组合

热门文章

  1. 【精】beautify插件使用及配置汉化
  2. 2022软件测试好学吗,大概要学多久?(附学习路线图)
  3. UVa 11909 - Soya Milk
  4. 15 个最佳开源设计工具
  5. echarts瀑布图_Echarts自定义瀑布图开发
  6. uni-app实现微信与支付宝的境外支付
  7. STM32与BLE蓝牙通信 Android APP配置(一)
  8. 从未改过的网名,一如既往的孤荷凌寒——我的信息技术之路之五
  9. 中国黑客生存特写,互联网金钱帝国里的英雄和盗匪
  10. (笔记)数据结构——顺序表