基于Android平台的即时通信系统设计与实现
即时通信论文
XXXX
本科生毕业设计(论文)
学院(系): XX
专业: XX
学生: XX
指导教师: XX 完成日期年月
XXX本科生毕业设计(论文)
基于Android的网络聊天软件的设计与实现Design and Implementation of the Network Chatting Software
based on the Android
总计:毕业设计(论文) 30页
表格:4个
图片:28个
XXX 业设计(论文)
基于Android的网络聊天软件的设计与实现Design and Implementation of the Network Chatting Software
based on the Android
学院(系): XX
专业: XX
学生姓名: XX
学号: XX
指导教师(职称): XX
评阅教师: XX
完成日期:
南阳理工学院
Nanyang Institute of Technology
基于Android的聊天网络软件的设计与实现
软件工程XX
[摘要]即时通信(Instant Messaging,IM)软件产生以来,这种通过网络与其它在线用户进行交流的方式,受到了个人公司以及行业的青睐。
本文采用软件工程的管理和设计方法,对项目的需求进行了分析,完成了功能用例建模,使用Socket通信技术结合TCP/IP协议原理实现了基于Android操作系统的聊天软件各个模块的分析设计,提出了系统的体系结构和整体架构设计方案,并予以实现,取得了较好的使用价值。
[关键词]Android;即时聊天;客户端/服务器模型;套接;。
基于Android终端的视频通话系统设计与实现
基于Android终端的视频通话系统设计与实现近年来,智能手机操作系统发展迅速,尤其是Android系统的迅猛发展已经将全球智能手机市场引领到了大爆炸的状态。
随着手机社交网络、手机多媒体通信和手机游戏等应用程序不断地被开发出来,各种基于智能手机操作系统的应用程序正在逐渐影响和改变人们的生活方式。
从Android 2.3版本之后,Android SDK开始支持前置摄像头和SIP协议栈的开发,这标志着Android手机即将步入即时视频通话的时代。
本文对基于Android Camera的视频采集技术和基十SIP协议栈的语音通话技术进行了深入的研究,对两个开源项目FFMPEG库和JRTPLIB库进行了详细的分析,并在研究了Android NDK开发原理的基础上将这两个库移植到了Android开发环境中。
在此基础.上,本文设计并实现了一套基于Android终端的视频通话系统,该系统搭载了最新发布的Android 2.3.X操作系统,使用Android Camera系统作为视频采集源,使用SIP协议栈作为通话发起和管理协议,使用MPEG-4标准作为视频编解码标准,使用RTP/RTCP协议作为网络传输协议。
Android Camera和SIP 部分采用Android应用层开发的手段来实现,MPGG-4标准和RTP/RTCP协议采用Android本地层开发的手段来实现。
本文首先简单介绍了Android终端的系统原理,包括Android系统的架构以及Android应用层开发和本地层开发的方法;然后依次从基于Android Camera 的视频采集技术、基于FFMPEG的视频编解码技术、基于SIP的语音通话技术和基于JRTPLIB的实时传输与控制技术四个方面全面地介绍了本文系统的技术构成以及本文如何使用这些技术,还介绍了本文对FFMPEG库和JRTPLIB库的移植过程;最后详细地介绍了本文系统的设计与实现过程,包括系统的总体框架、系统的总体解决方案和系统各个组成模块的内部执行流程以及各模块间的配合。
Android平台基于LBS的即时通信系统设计
多媒体技术及应用 Computer CD Software and Applications 2012年第8期— 210 —Android平台基于LBS的即时通信系统设计王建勇,刘飞(四川大学计算机(软件)学院,成都 610207 )摘要:针对android系统,本文介绍了一种基于LBS即时通信系统的解决方案。
该系统基于XMPP协议(可扩展通讯和表示协议)构建通信子模块,通过android手机自带的GPS定位系统进行用户定位,从而实现位置感知子模块,最后结合Google Map实现地图显示。
系统采用分层化瘀模块化设计,具有良好的可扩展性。
关键词:android;XMPP协议;Google Map中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2012) 08-0210-02如今,随着wifi热点的增多和3G网络的流行,手机地图已经触手可得,加上时下流行的LBS服务(Location Based Services),于是我们提出了基于地图显示的即时通讯系统。
考虑到Android系统迅速发展,以及其对google map的良好支持从而选择在Android系统作为开发平台。
一、XMPP协议介绍(一)什么是XMPP协议XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议,目前被IETF国际标准组织完成了标准化工作。
标准化的核心结果分为两部分:核心的XML流传输协议和基于XML流传输的即时通讯扩展应用。
XMPP在Client-to-Server 通信,和Server-to-Server通信中都使用TLS (Transport Layer Security)协议作为通信通道的加密方法,保证通信的安全。
(二)XMPP基本网络结构XMPP中定义了三个角色,客户端,服务器,网关。
通信能够在这三者的任意两个之间双向发生。
服务器同时承担了客户端信息记录,连接管理和信息的路由功能。
Android即时通信设计与实现(代码)
Android即时通信系统设计与实现(代码如下):1,登录界面(IP地址):package Nclient;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditT ext;public class LoginActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.login);Button btnLink = (Button) findViewById(R.id.btnLink);final EditT ext etIPaddr = (EditT ext) findViewById(R.id.etIPaddr);final Intent intent = new Intent();btnLink.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){intent.setClass(LoginActivity.this, ClientActivity.class);//清除堆栈中其他Activityintent.putExtra("IPaddr", etIPaddr.getT ext().toString());intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);LoginActivity.this.finish();startActivity(intent);}});}}2,客户端(Android):package Nclient;// 123456import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import .Socket;import .UnknownHostException;import java.util.Date;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.View;import android.view.View.OnClickListener; import android.widget.Button;import android.widget.EditT ext;import android.widget.T oast;public class ClientActivity extends Activity {Socket socket;BufferedReader br;PrintStream ps;Button btnSend;Button btnExit;Button btnFile;EditT ext etSend;EditT ext etReceive;MyHandler handle;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.client);Intent intent = getIntent();String IPaddr = new String(intent.getStringExtra("IPaddr"));etReceive = (EditT ext) findViewById(R.id.etReceive);etSend = (EditT ext) findViewById(R.id.etSend);btnSend = (Button) findViewById(R.id.btnSend);btnExit = (Button) findViewById(R.id.btnExit);btnFile=(Button)findViewById(R.id.btnFile);try{socket = new Socket(IPaddr, 9998);if (socket != null)T oast.makeT ext(ClientActivity.this, "成功连接到服务端", T oast.LENGTH_LONG).show();// 创建输入流InputStream ins = socket.getInputStream();InputStreamReader isr = new InputStreamReader(ins, "gbk");br = new BufferedReader(isr);// 创建输出流OutputStream os = socket.getOutputStream();ps = new PrintStream(os);btnSend.setOnClickListener(new RcbtnOnclickListener());handle = new MyHandler();new Thread(new Receive()).start();// handle.post(new Receive());} catch (UnknownHostException e){e.printStackT race();} catch (IOException e){e.printStackT race();}btnFile.setOnClickListener(new OnClickListener() {public void onClick(View v)// 为文件按钮注册按钮监听{System.out.println("benfile");}});btnExit.setOnClickListener(new OnClickListener() {public void onClick(View v)// 为退出按钮注册按钮监听{System.exit(0);// 此方法可以结束线程,但无法完全退出// ClientActivity.this.finish();//此方法无法结束线程// android.os.Process.killProcess(android.os.Process.myPid());// 此方法可以结束线程,但也无法也完全退出}});// etReceive.setOnKeyListener(new )}// 发送消息按钮监听class RcbtnOnclickListener implements OnClickListener {@Overridepublic void onClick(View v){Date now = new Date();String time = timeFormat(now.getHours()) + ":"+ timeFormat(now.getMinutes()) + ":" + timeFormat(now.getSeconds());String message = etSend.getT ext().toS tring();if (!(message.equals(""))){message = time + " : " + message;etReceive.append("<<< " + message + "\n");ps.println(message);ps.flush();etSend.setT ext("");T oast.makeT ext(ClientActivity.this, "消息已发送", T oast.LENGTH_LONG).show();}else T oast.makeT ext(ClientActivity.this, "消息为空", T oast.LENGTH_LONG).show();}}// 定义消息处理方法class MyHandler extends Handler {public MyHandler(){}public MyHandler(Looper L){super(L);}// 子类必须重写此方法,接受数据@Overridepublic void handleMessage(Message msg){super.handleMessage(msg);Bundle b = msg.getData();String receive = b.getString("receive");if (!(receive.equals(""))) etReceive.append(">>> " + receive + "\n");// else etReceive.append(" ");}}// 创建发送按键的监听器class Receive implements Runnable {@Overridepublic void run(){String receive = "";try{if (br.ready())try{receive = new String(br.readLine());} catch (IOException e){receive = "服务端已停止,请退出";}} catch (IOException e){receive = "服务端已停止,请退出";}Message msg = new Message();Bundle b = new Bundle();b.putString("receive", receive);// b.putString("receive", "刷新");msg.setData(b);ClientActivity.this.handle.handleMessage(msg);handle.postDelayed(new Receive(), 300);}}//发送文件按钮监听/*----------* -----------* -----------class btnFileListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("发送文件监听");}}*//* ==========转换时间格式========== */ public String timeFormat(int time){if (time < 10) return "0" + time;else return "" + time;}}3,服务端(Java):package server;import java.awt.*;import java.awt.event.*;import javax.swing.JFrame;import java.io.*;import .ServerSocket;import .Socket;import java.util.Date;import javax.swing.*;public class Server extends JFrame implements ActionListener {private static final long serialV ersionUID = 1L;JPanel panel1 = new JPanel();JPanel panel2 = new JPanel();JPanel panel3 = new JPanel();JButton btnSend = new JButton("发送");JButton btnExit = new JButton("退出");T extArea taSend = new T extArea("", 4, 58, T extArea.SCROLLBARS_NONE); T extArea taReceive = new T extArea("", 15, 58,T extArea.SCROLLBARS_VERTICAL_ONLY);ServerSocket ss = null;Socket socket = new Socket();BufferedReader br;PrintStream ps;public static void main(S tring args[]){new Server();}public Server(){btnSend.addActionListener(this);btnExit.addActionListener(this);btnSend.setMnemonic('1');btnExit.setMnemonic('2');btnSend.setFocusable(false);btnExit.setFocusable(false);setTitle("服务端");setLayout(new FlowLayout());setSize(450, 420);setResizable(false);panel1.add(taReceive);panel2.add(taSend);panel3.add(btnSend, BorderLayout.WEST);panel3.add(btnExit, BorderLayout.EAST);// taReceive.setSize(590, 320);// taSend.setSize(590, 150);// taReceive.setEnabled(false);taReceive.setFocusable(false);taSend.setEnabled(true);add(panel1, BorderLayout.NORTH);add(panel2, BorderLayout.SOUTH);add(panel3);// 关闭窗口事件的监听及处理this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});setBackground(Color.GRAY);setLocation(300, 120);setVisible(true);while (true){try{if ((ss = new ServerSocket(9998)) != null){// taReceive.append("系统提示:已打开监听端口\n");break;}} catch (IOException e){e.printStackT race();}}while (true){try{if ((socket = ss.accept()) != null){taReceive.append("系统提示:客户端已连接\n");// 创建输入流InputStream ins = socket.getInputStream();InputStreamReader isr = new InputStreamReader(ins, "utf-8");// 此处注意一定要加上解码方式,否则汉字会出现乱码// 可用System.getProperty("file.encoding")方法获得默认编码方式br = new BufferedReader(isr);// 创建输出流OutputStream os = socket.getOutputStream();ps = new PrintStream(os);break;}} catch (IOException e){e.printStackT race();}}String receive = null;try{while (true){try{receive = br.readLine();} catch (IOException ex){ex.printStackT race();}// receive = new String(receive.getBytes("gb2312"));if (!(receive.equals(""))) taReceive.append(">>>> " + receive + "\n");}} catch (Exception ie){System.out.println("客户端已断开");try{for (int i = 3; i > 0; i--){taReceive.append("客户端已断开连接," + i + "秒后自动退出\n");Thread.sleep(1000);}System.exit(0);} catch (InterruptedException e){e.printStackT race();}}}@Overridepublic void actionPerformed(ActionEvent e){if (e.getActionCommand() == "退出"){System.out.print("服务端已停止");dispose();System.exit(0);} else this.sendMessage(taSend.getT ext().toString());}@SuppressWarnings("deprecation")private void sendMessage(String message){Date now = new Date();String time = timeFormat(now.getHours()) + ":"+ timeFormat(now.getMinutes()) + ":" + timeFormat(now.getSeconds()); if (!(message.isEmpty())){message = time + " : " + message + "\n";taReceive.append("<<<< " + message);// message = new String(message.getBytes("gbk"),"gb2312");// 发送端转码在此处不可行,系统在发送时会默认编码添加行结束符if (ps.checkError()) taReceive.append("系统提示:客户端未连接");else{ps.println(message);ps.flush();taSend.setT ext("");}} else taReceive.append("系统提示:不能发送空消息");}// 将时间格式化成常用格式public String timeFormat(int time) {if (time < 10) return "0" + time;else return "" + time;}}。
即时通讯系统的设计与实现
收稿日期:2019-01-31 修回日期:2019-05-31 网络出版时间:2019-11-07基金项目:2018年度国家级大学生创新创业训练计划基金资助项目(201813902002);2018年度广东省大学生科技创新培育专项资金资助项目(pdjh 2018b 0642);2017年度广东省大学生创新创业训练计划基金资助项目(201713902027)作者简介:叶为正(1996-),男,研究方向为移动互联网㊁Web 应用开发;李 晶,硕士,讲师,研究方向为电子商务㊁数据挖掘㊂网络出版地址:http :// /kcms /detail /61.1450.TP.20191107.0908.016.html即时通讯系统的设计与实现叶为正,林声肯,黄立轩,许志明,李 晶(中山大学新华学院,广东广州510520)摘 要:随着以智能手机和平板电脑为代表的移动设备的迅速普及,基于当前企事业单位内部即时通讯技术的实际需求,自主设计并实现一个即时通讯系统,对于企事业单位沟通与交流具有重要意义㊂项目开发主要分为两部分:客户端使用HBuilder 工具进行开发,使用MUI 与H5Plus 开发移动应用客户端,充分利用当前混合开发技术的优势,实现一次开发即可生成运行在Android㊁iOS 以及小程序端的移动应用;后台服务端使用IntelliJ IDEA 开发,使用Netty+SpringBoot 框架作为后台的主要框架,利用Nginx+FastDFS 分布式文件系统搭建图片服务器,使用MyBatis 框架操作MySql 数据库㊂该系统主要功能有聊天㊁通讯录㊁扫一扫㊁添加好友㊁上传头像以及修改个人信息等功能,对即时通讯系统的搭建有一定的借鉴意义㊂关键词:Netty;即时通讯;混合开发;MUI中图分类号:TP302 文献标识码:A 文章编号:1673-629X (2020)02-0216-05doi:10.3969/j.issn.1673-629X.2020.02.042Design and Implementation of Instant Messaging SystemYE Wei -zheng ,LIN Sheng -ken ,HUANG Li -xuan ,XU Zhi -ming ,LI Jing(Xinhua College of Sun Yat -sen University ,Guangzhou 510520,China )Abstract :With the rapid popularization of mobile devices represented by smart phones and tablets ,based on the actual needs of instant messaging technology in enterprises and institutions ,it is of great significance for enterprises and institutions to design and implement an instant messaging system independently.The project development is mainly divided into two parts.The client uses the HBuilder tool for development.The MUI and H 5Plus are used to develop the mobile application client.With full use of the current hybrid development technology ,mobile applications running in Android ,iOS and small programs can be generated in one development.Background server uses IntelliJ IDEA for development ,with Netty +SpringBoot framework as the main framework ,Nginx +FastDFS distributed file system as the image server ,MyBatis framework to operate MySql database.The main functions of the system include chatting ,address book ,sweeping ,adding friends ,uploading avatars and modifying personal information ,which can be used for reference in the construction of instant messaging system.Key words :Netty ;instant messaging ;hybrid development ;MUI0 引 言随着网络技术的发展,越来越多的人开始使用互联网,人们对网络即时通讯系统的需求量也越来越大,并且已成为当今人们交流的重要途径,这使得即时通讯技术飞速发展[1-2]㊂尽管市场上出现了许多第三方即时通讯提供方,如环信㊁融云以及腾讯云通信IM等,但自主开发出一款能在企事业单位内部使用的㊁进行工作沟通交流的即时通讯系统具有重要意义[3]㊂文中首先介绍了实现该系统所采用的技术,并在IntelliJ IDEA 与HBuilder 开发环境下进行编程开发,然后重点研究整个即时通讯系统的设计思路㊁实现方法以及实现效果㊂1 相关技术1.1 Nginx 与FastDFSNginx 是一款高性能的Web 服务器[4],采用多进程的基于事件驱动的架构,全异步的网络I /O 处理机制,以及极少的进程间切换设计,使得它能够同时支持百万级别的TCP 连接[5]㊂FastDFS 是用C 语言编写的一款开源的分布式文件系统[6]㊂FastDFS 是为互联网第30卷 第2期2020年2月 计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT Vol.30 No.2Feb. 2020量身定制,充分考虑了冗余备份㊁负载均衡㊁线性扩容等机制,并注重高可用㊁高性能等指标㊂使用FastDFS可以很容易搭建一套高性能的文件服务器集群提供文件上传㊁下载等服务[7]㊂文中采用Nginx+FastDFS搭建图片服务器,用于存储用户头像和二维码等图片文件㊂1.2 MUI框架与HTML5+MUI框架,是DCloud公司发布的一款开源框架,是最接近原生App的前端框架[8]㊂HTML5+是HBulider利用自己的IDE结合不同平台的接口再加上HTML5[9]开发出来的一套框架,它有自己的使用规范,允许和提供了一些接口和函数来让Web[10]开发者实现原生App所能实现的功能,并且MUI以iOS平台UI为基础,补充了Android特有的UI组件[11]㊂1.3 Netty框架与SpringBoot框架Netty是一个性能极高㊁异步事件驱动的框架[12],是一个异步非阻塞的框架㊂这个框架支持多种通信协议,包括UDP㊁TCP以及文件传输协议等[13]㊂通过使用Netty,对于所有的IO操作,开发人员都可以主动地或由它内部的机制取得结果[14]㊂SpringBoot是由Pivotal团队开发的全新的开源开发框架,能够简化应用Spring开发项目㊂最突出的特点是配置方式,大大简化了Spring应用的各个方面㊂另外SpringBoot能够集成大量的框架,解决了之前很重要的项目之间包的版本依赖和稳定性等问题[15]㊂2 平台系统结构设计该平台采用C/S模式,前端也就是客户端采用移动应用程序的方式,后端采用SpringBoot+Netty作为主要的服务端,利用Spring MVC的注解创建RESTful Web服务㊂移动客户端与服务端连接读写逻辑处理均是启动阶段通过给逻辑处理链Pipeline添加逻辑处理器实现连接数据的读写逻辑㊂客户端连接成功回调逻辑处理器channelActive()方法,客户端/服务端接收连接数据调用channelRead()方法㊂写数据调用write⁃AndFlush()方法,客户端与服务端交互的二进制数据传输载体为ByteBuf,ByteBuf通过连接的内存管理器创建即ctx.alloc().buffer(),通过writeBytes()方法将字节数据填充到ByteBuf写到对端㊂Netty客户端与服务端通信流程如图1所示㊂图1 Netty客户端与服务端通信流程3 平台功能模块设计客户端模块设计:用户通过登录或者注册进入到App时,首先会进入到聊天页面,通过底部导航进入发现页进行好友添加操作,当好友添加成功,在通讯录中即可显示已添加的好友,点击头像跳转至聊天页面㊂在个人信息页,可以进行头像㊁昵称的修改以及退出登录㊂平台功能模块设计如图2所示㊂4 系统的数据库设计经过对即时通讯系统的设计和功能需求分析,建立了关系数据库的实体-关系模型,确定数据库里用户㊁通讯录好友㊁好友请求㊁聊天信息实体㊂每个实体对应一个数据表,具有多个字段属性㊂图2 平台功能模块设计4.1 系统实体设计该系统将MySQL数据库作为后台数据库,创建㊃712㊃ 第2期 叶为正等:即时通讯系统的设计与实现的后台数据库名称为IMDB,包括4个表:用户信息表㊁通讯录好友信息表㊁好友请求记录表㊁聊天信息表,如表1所示㊂表1 即时通信系统中的表表名实体说明users用户my_friends通讯录好友friends_request好友请求chat_msg聊天记录4.2 数据表设计在对系统需求和实际情况分析的基础上,对每个表的字段名㊁数据类型㊁完整性约束信息进行定义,便于各类资源的信息的存储和数据检索㊂系统数据表详细情况如表2~表5所示㊂表2 用户信息字段名类型描述id varchar标识id username varchar用户名password varchar密码face_image varchar头像缩略图face_bigimage varchar头像nickname varchar昵称qrcode`varchar二维码表3 通讯录好友信息字段名类型描述id varchar标识id_my_user_id varchar用户idmy_friend_user_id varchar用户好友id表4 好友请求信息字段名类型描述id varchar标识id send_user_id varchar请求方用户idaccept_user_id varchar接收方用户idrequest_date_time datetime请求时间表5 聊天信息字段名类型描述id varchar标识id send_user_id varchar发送方用户idaccept_user_id varchar接收方用户id msg varchar消息sign_flag int签收状态Create_time datetime发送时间5 平台功能设计与实现5.1 关键技术即时通讯APP开发主要包含两个部分:移动客户端和Java Web后台服务端㊂客户端的聊天功能通过WebSocket与后端数据进行交互,其他功能均采用MUI提供的Ajax与后端数据进行交互㊂5.2 登录模块用户第一次进入该系统时,输入用户名和密码,后端接收到用户输入的信息后,会判断数据库中是否存在该用户,若不存在则自动注册后登录,并将用户的信息通过H5+提供的API接口plus.storage.setItem(key, value)方法存储在本地数据存储区㊂当用户打开该软件时,系统会自动通过plus.storage.getItem(key)方法获取应用存储的值进行登录操作㊂5.3 个人信息模块在个人信息模块中,主要有查看头像㊁昵称㊁账号㊁我的二维码与退出登录等功能㊂点击头像即可查看头像㊁下载头像与上传头像㊂上传头像时,系统会调用开源图片裁剪插件Cropper进行图片的裁剪,通过前端传过来的base64字符串,然后转换为文件对象再上传到FastDFS,将拼接好的图片url写入用户对象,最后调用MyBatis对该用户对象进行更新操作㊂二维码是用户注册时后端使用谷歌开源项目zxing所生成的,点击二维码,即可查看二维码或者下载二维码,其他用户可以通过发现页的扫一扫功能实现添加好友的功能㊂点击退出登录,即可将用户的信息从系统中清除,跳转到登录模块㊂个人信息页面如图3所示㊂图3 个人信息页面㊃812㊃ 计算机技术与发展 第30卷5.4 发现模块本模块主要有添加好友与扫一扫功能,输入好友的账号即可实现好友请求的发送㊂在扫一扫中也可以通过扫描好友的二维码进行添加好友的请求㊂通过H5+API中的Barcode模块完成二维码的扫描识别功能,获得码数据及码类型,再使用mui.ajax(url[, settings])将myUserId与friendUsername传递至后端,或者直接通过添加好友将数据传递至后端,后端根据friendUsername将朋友信息通过mybatis操作数据库查询出这个Users对象,然后再查询发送好友请求记录表(friends_request),如果sendUserId和acceptUserId 没有关联,则建立关联关系,实现发送添加好友的请求㊂在对方登录系统后,如果忽略好友请求,则直接删除好友请求的数据库表记录,如果是通过好友请求,则互相增加好友记录到数据库对应的表,然后删除好友请求的数据库表记录㊂发现页面如图4所示㊂图4 发现页面5.5 通讯录模块该模块使用MUI的Ajax将该用户的id传至后端,获取所有好友列表,通过words.convertPinyin(friend.friendNickname)将好友的昵称转化成拼音,截取拼音的首字母,构建通讯录html进行渲染㊂当用户下一次打开通讯录,直接从缓存中获取联系人列表渲染到页面㊂对好友通讯录批量绑定点击事件,当用户点击某个好友,即会打开聊天页面,并携带相应的用户参数㊂通讯录列表页面如图5所示㊂5.6 聊天模块在该模块的后端主要有两个类:WebSocket服务端启动类WSServer与处理类ChatHandler㊂聊天列表页面如图6所示㊂图5 通讯录列表页面图6 聊天列表页面在WSServer中,由于WebSocket是基于http协议的,所以要通过pipeline.addLast(new HttpServerCodec())来添加http编解码器,此外,还要增加心跳支持以及httpWebsocket支持,最后增加自定义的处理类Chathandler以及心跳处理类HeartBeatHandler㊂在Chathandler中,它继承了SimpleChannelInboundHan⁃㊃912㊃ 第2期 叶为正等:即时通讯系统的设计与实现dler<TextWebSocketFrame>类,在Netty中,是用于为WebSocket专门处理文本的对象,frame是消息的载体㊂聊天模块实现的业务逻辑如下:步骤1:获取客户端传输过来的消息㊂通过msg.text()获取客户端传输过来的消息,通过ctx.channel()获取当前的channel,并将客户端传递至后端的json字符串转换成相应的DataContent数据内容对象㊂步骤2:通过数据内容对象中action属性与后端的枚举类中的属性进行对比判断消息类型,并根据不同的类型来处理不同的业务㊂(1)当websocket第一次open的时候,初始化channel,把用的channel和userid关联起来㊂(2)若是聊天类型的消息时,就把聊天记录保存到数据库,同时标记消息的签收状态为 未签收”㊂发送消息,即从全局用户Channel关系中获取接受方的channel,若channel为空代表用户离线㊂当接受方re⁃ceiverChannel不为空的时候,从ChannelGroup去查找对应的channel是否存在,当用户在线时,通过writeAndFlush推送消息㊂(3)若是签收消息类型,就针对具体的消息进行签收,修改数据库中对应消息的签收状态 已签收”㊂(4)若是心跳类型,则打印输出相应的心跳包数据㊂步骤3:当触发handlerRemoved或发生异常, ChannelGroup会自动移除对应客户端的channel㊂若心跳处理类HeartBeatHandler类中的IdleStateEven为读写空闲时,也会关闭无用的channel,以防资源浪费㊂6 系统测试与运行该平台开发完成后,该系统服务端部署MacOS,并将Nginx+FastDFS图片服务器部署在CentOS6.5中㊂在小米8手机(四核,高通骁龙845,运行内存6 GB,6.21英寸屏幕,Android OS v8.0)以及iPhone8手机(六核,苹果A11+M1协处理器,运行内存2GB, 4.7英寸屏幕,iOS v10)中对各项功能进行了测试,客户端运行良好,可以实现登录注册㊁修改个人信息㊁添加好友以及聊天的功能㊂7 结束语研究了基于Netty+SpringBoot的即时通讯系统的设计与实现,采用了HBuilder和IntelliJ IDEA开发了即时通讯系统,通过HBuilder开发出来的应用可生成适用于安卓与苹果系统的安装包,节约了开发人员同时开发不同客户端的成本,实现了基本的数据通信,可以满足日常的通信需求㊂参考文献:[1] 王全彬.基于Java的网络即时通讯系统的设计与实现[D].成都:电子科技大学,2007.[2] 傅 瑶.Java即时通讯系统程序的设计与实现[D].长春:吉林大学,2015.[3] 李元君.基于Java的即时通讯系统的设计与实现[D].济南:山东大学,2013.[4] 凌质亿,刘哲星,曹 蕾.高并发环境下Apache与Nginx的I/O性能比较[J].计算机系统应用,2013,22(6):204-208.[5] CHI Xiaoni.Web load balance and cache optimization designbased Nginx under high-concurrency environment[C]//Proceedings of the3nd international conference on digital manufacturing&automation(ICDMA2012).[s.l.]:[s.n.],2012:4.[6] 蒋 园,阳许军.基于人脸识别的海量图片的存储和索引优化[J].计算机技术与发展,2019,29(3):85-88. [7] CHEN Haimeng,ZHANG Hua.Exploiting FastDFS client-based small file merging[C]//Proceedings of joint2016in⁃ternational conference on artificial intelligence and engineer⁃ing applications(AIEA2016).Wuhan:Wuhan Zhicheng Times Cultural Development Co.,2016:5.[8] 金 敏.基于MUI的汽车服务系统设计与实现[D].南昌:南昌航空大学,2018.[9] YU Wei,XU Yong.Research on the application of HTML5in the development of mobile internet[J].Journal of Intelli⁃gent and Fuzzy Systems,2018,34(2):945-954. [10]GUTIÉRREZ R T.Understanding the role of digital com⁃mons in the web;The making of HTML5[J].Telematics and Informatics,2018,35(5):1438-1449. [11]武秋芳,张冠胜.基于HTML5Plus的智能运维管理平台移动端App的开发研究[J].信息通信,2016(9):80-83. [12]张艳军,王 剑,叶晓平,等.基于Netty框架的高性能RPC通信系统的设计与实现[J].工业控制计算机,2016,29(5):11-12.[13]范华峰.一种基于Netty框架的网络应用服务器设计方法[J].福建电脑,2015(10):33-34.[14]YANG Jun,ZHANG Haipeng,HAN Lifang,et al.Design andimplementation of software consistency detection system based on Netty framework[C]//International conference on broadband and wireless computing,communication and ap⁃plications.[s.l.]:Springer International Publishing,2016: 343-351.[15]张 峰.应用SpringBoot改变web应用开发模式[J].科技创新与应用,2017(23):193-194.㊃022㊃ 计算机技术与发展 第30卷。
基于Android的简易即时通信系统设计与实现
摘 要: 该 文介绍 了一种基于 云技 术实现 A n d r o i d 设备 之间文字 、 语 爵即时通信的解 决方案 。 该 系统无
需搭 建服 务器 , 利用 免费 的公共 云存储平 台 以及推送 平 展性 强等特点 。该 系统 避开 了移 动运营商 的短 信和语音 电话平 台 , 为小范 匍人群通 信提供 了一 种实时 、 廉价 的通信方式 。
C L C n u mb e r : T P 3 7
D o c u me n t c o d e : A
Ar t i c l e I D: 1 0 0 3 — 0 1 0 7 ( 2 0 1 4 ) 0 3 — 0 0 0 9 — 0 5
0引言
息 传送 到终端 , 实现信息 的点到点传输 。当用 户 A需要
黄福 贵 , , 李文辉 , , 陈功 z ( 1 . 海 军驻 景德镇地 区航空军事 代表室, 江西 景德镇 3 3 3 0 0 0 ; 2 . 常州 _ T : 学院, 江苏 常州 2 1 3 0 2 2 )
H u a n g F u — g u i ’ . L i We n — h u i ’ , C h e n G o n g  ̄ 1 . A v i a t i o n M i l i t a r y R e p r e s e n t a t i v e O f i f c e
推 送请求 , 推送服 务器接收请求 , 向 目的用户 B的客 户
端 传送该 文本信息。然而 , 通常 免费的公共推送服 务器
向另一用 户 B传输文本信息时 , 直接 向推送服务器发送
“ 云”技术是 当前 网络技术一个十 分重要的发展 方
向 以及应用领域 。云技术 以当前普遍覆 盖 、 方便接入 的 高速 网络 为纽带 , 整合 了“ 云” 的 巨大存储 容量 、 高速计 算能 力 、 庞大 的网络 资源等 , “ 端” 的低 成本 、 便捷等 多种 在传统 网络应 用模式 下相互 矛盾 的特性 , 为开 发“ 随时
基于Android的视频通话系统的设计与实现毕业设计论文
东北大学毕业设计(论文)摘要基于Android的视频通话系统的设计与实现摘要近年来,智能手机操作系统发展迅速,尤其是Android系统的迅猛发展已经将全球智能手机市场引领到了非常火爆的状态。
随着手机社交网络、手机多媒体通信和手机游戏等应用程序不断被开发出来,各种基于智能手机操作系统的应用程序正在逐渐影响和改变人们的生活方式。
实时视频流技术在可视电话、远程教育、视频点播等方面得到了广泛的应用。
本文设计并实现的基于Android的视频通话系统采用C/S架构,包括PC和手机两个客户端。
手机端使用Android2.3操作系统。
本系统共包含四个子系统:PC端接收子系统、发送子系统,Android端接收子系统、发送子系统。
接收子系统实现数据接收、转码和呈现,发送子系统现实数据采集、编码压缩和数据发送。
PC端基于JMF框架来实现,Android端使用Android Camera类及其相关类来实现。
本文对国内外视频通话的研究情况以及今后的发展前景,对实现视频通话所涉及到的协议和相关技术进行了分析,在此基础上提出了一种可行的网络视频通话设计方案,并通过需求分析、详细设计、编码实现、单元测试以及集成测试等过程完成了本系统的设计与实现。
本系统实现了跨平台视频通话,使PC与Android之间的视频通话成为了可能,可以起到丰富人们日常生活交流和娱乐方式的作用。
关键词:Android,视频通话,JMF,PC,RTP/RTCPDesign and Implementation of an Android-BasedVideo Calling SystemAbstractIn recent years, the rapid development of smart phone operating system, especially Android system, has led the global smart phone market into explosion state. With some application such as mobile social networking, mobile media communications and mobile games being continually developed, a variety of application on smart phone operation systems are increasingly affecting and changing people’s lifestyles. The real-time video streams technology is used widely in such aspects as videophone, distance education and video on demand.The system based on android uses c/s architecture. It includes two clients. One is on the Windows system, the other one is on the Android 2.3 system. There are four subsystems. Each of clients has a send subsystem and a receiver subsystem. The main function of the receiver subsystem is to receiver data from internet and decodes that data. After that, it will display that data as soon as possible. The main function of the send subsystem is to collect data from camera and then encodes the data. After that, the data will be sanded to the Internet. On the PC client, we use the JMF framework. One the Android client, we use Android API. This paper firstly introduces the research condition of the video call and development tendency. It analysis some technologies about the video calling system and comes up with a feasible plan. It introduces the video calling system about requirement analysis, detailed design, realize and testing.This system achieves the cross-platform video calling. It becomes possible to make video calling between PC and Android and will enrich the people’s communication and entertainment in their daily lives.Key words: Android, video call, JMF, PC, RTP/RTCP目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题概述 (1)1.1.1 课题背景 (1)1.1.2 课题的目的及意义 (1)1.2 国内外发展现状 (2)1.3 研究内容 (2)1.4 组织结构 (3)第2章相关技术 (4)2.1 Java多媒体框架 (4)2.1.1 JMF的功能 (4)2.1.2 JMF中的数据源 (4)2.1.3 JMF中的媒体播放器 (4)2.1.4 JMF中的媒体处理器 (5)2.1.5 JMF中的事件模型 (6)2.2 RTP/RTCP协议 (6)2.2.1 RTP实时传输协议 (6)2.2.2 RTCP实时传输协议 (8)2.3 FFmpeg视频编解码技术 (9)2.3.1 FFmpeg简介 (9)2.3.2 组成 (10)2.3.3 编码框架 (10)2.3.4 解码框架 (11)2.4 本章小结 (12)第3章系统分析 (13)3.1 需求分析 (13)3.1.1 系统总体需求 (13)3.1.3 用例分析 (14)3.2 系统运行环境与开发环境 (19)3.2.1 运行环境 (19)3.2.3 开发环境 (20)3.3 系统可行性分析 (20)3.3.1 技术可行性 (20)3.4 本章小结 (21)第4章系统设计 (22)4.1 概要设计 (22)4.1.1 系统软件体系结构的设计 (22)4.1.2 系统功能模块 (23)4.1.3 模块功能分析 (23)4.2.3 数据库设计 (29)4.2 本章小结 (30)第5章系统实现 (31)5.1 功能子模块的实现 (31)5.1.1 硬件检测模块 (31)5.1.2 数据采集模块 (32)5.1.3 压缩编码模块 (33)5.1.4 数据发送模块 (34)5.1.5 数据接收模块 (36)5.1.6 解码模块 (37)5.1.7 呈现模块 (38)5.1.8 会话参与者管理模块 (39)5.2 本章小结 (40)第6章系统测试 (41)6.1 单元测试 (41)6.2 集成测试 (43)6.3 本章小结 (44)第7章结论 (45)参考文献 (46)致谢 (47)第1章绪论1.1 课题概述1.1.1 课题背景随着移动通信网络与多媒体技术的飞速发展,很多智能手机以及其应用软件的产生和发展正在逐渐改变人们的生活方式和生活习惯。
基于Android平台即时通信系统的设计与实现
基于Android平台即时通信系统的设计与实现一、概述随着移动互联网的快速发展和智能手机的广泛普及,即时通信系统(Instant Messaging System,简称IMS)已经成为人们日常生活中不可或缺的沟通工具。
特别是在Android平台上,由于其开放性和广泛的用户基础,开发一款高效、稳定、用户友好的即时通信系统显得尤为重要。
本文旨在探讨基于Android平台的即时通信系统的设计与实现,包括系统架构、关键技术、功能模块以及用户体验优化等方面。
我们将对即时通信系统的发展历程进行简要回顾,分析其在Android平台上的发展现状和趋势。
我们将详细介绍系统的整体架构设计,包括前端用户界面、后端服务器架构、数据库设计等关键部分。
在此基础上,我们将深入探讨实现即时通信功能所需的关键技术,如网络通信协议、消息加密与解密、用户身份认证等。
我们还将介绍系统中各个功能模块的设计与实现,如用户管理模块、消息处理模块、文件传输模块等。
每个模块都将详细阐述其功能特点、实现原理以及面临的挑战和解决方案。
我们将讨论如何通过优化算法和界面设计来提升用户体验,包括降低延迟、提高消息传输稳定性、增强用户界面友好性等方面。
1. 介绍即时通信系统的重要性和应用场景即时通信系统(Instant Messaging System,简称IMS)是现代通信技术的重要组成部分,其重要性和应用场景日益凸显。
在当前的数字化时代,即时通信系统已经成为人们日常生活和工作中不可或缺的一部分。
无论是在个人社交、企业沟通,还是在教育、医疗、金融等各个领域,即时通信系统的应用都发挥着重要的作用。
在个人社交方面,即时通信系统如微信、QQ、WhatsApp等已经成为人们日常沟通的主要工具。
通过即时通信系统,人们可以随时随地与朋友、家人保持联系,分享生活点滴,进行实时语音或视频通话,增进彼此的感情。
即时通信系统还提供了丰富的社交功能,如朋友圈、群组聊天、表情包等,使得人们的社交方式更加多样化、便捷化。
一种基于Android平台的即时通信方案
e n a b l e t h e m h a s t h e f u n c t i o n o f t i mi n g s e n d i n g a n d d e l e t i o n .B y c o n s t r u c t i n g p r a c t i c a l t e s t e n v i r o n me n t ,w e v a l i d a t e t h e s c h e me c a p bi a l i t i e s i n a c c u r a t e l y c o mp l e t i n g t h e s e l f - o r g a n i s e d c o mmu n i c a t i o n a s we l l a s i n t e l l i g e n t S MS s e n d a n d r e c e i v e . Ke y wo r d s An d r o i d L o c l a Ad — h o c n e t w o r k T i mi n g s e n d i n g T i mi n g d e l e t i o n
关键词 中图分类号 A n d r o i d 局域 自组 网 定 时发送 T P 3 9 3 文献标 识码 A 定 时删除 D O I : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 0  ̄8 6 x . 2 0 1 3 . 0 4 . 0 2 9
AN I NS TANT CoM M UNI CATI oN S CHEM E BAS ED oN ANDRoI D P LATFoRM
王 楠 宋 飞 周华春
( 北 京交 通大学 电子信 息工程学 院 北京 1 0 0 0 4 4 )
基于Android平台的音视频即时通信设计与实现
i mp l e me n t t h e f u n c t i o n o f a u d i o a n d v i d e o r e a l - t i me t r a n s mi s s i o n b e t we e n An d r o i d a n d P C, o r a n o t h e r
基于 A n d r o i d平 台的音视频 即时通信设计 与实现
倪 健 徐 晟
0 5 6 0 0 3 ) ( 河北工程大学信电学院 河北邯郸 摘
要 :本 文以 A n d r o i d系统为平 台,提 出一种高质量音视 频的即时通信解决方案,
采用 A n d r o i d应用程序通过 j n i 接口 调用数据传输库和音视频编解码库的形式。本设计可以实
平 台下 基于 n 口 / r t c p协 议 实现 高质 量音 视频 的实 时 传 输提 出一种 解 决方案 。
2 R t p / r t c p和 S i p协议 简 介
无 状态 的 ( Mi n i ma l S t a t e ),它 只定义 应该 如何 管
理 会话 。
nd a r o i d ma c h i n e . Ke y wo r d s : An d r o i d Rt p / Rt c p Re a 1 . t i me c o mm u n i c a t i o n Au d i o nd a v i d e o H2 6 3
基于Android平台的即时通信系统客户端设计
基于Android平台的即时通信系统客户端设计引言Android 是Google 推出的一个基于Linux 操作系统,包含底层框架,中间件和开发环境的一套平台系统。
它支持流行的组件式程序设计,具有针对性移动设备的Dalvik 虚拟机。
浏览器核心是基于开源的WebKit 引擎,对基于HTML 的各种语言具有良好的支持。
图像引擎使用基于openGLES1. 0 的三维图形库。
本文的研究目的就是基于Android 平台,提出一种能为多种移动客户端提供即时通信服务系统的客户端解决方案。
1 系统开发环境Android 的应用开发使用Java 语言环境下Android 应用开发工具和API 接口,包括支持各种分辨率的设备模拟器、调试工具、内存及性能分析图表和Eclipse 集成开发环境插件在内的方便快捷的开发环境。
2 客户端设计系统客户端主要实现与服务器端进行通信,向服务器发送和接收相应的请求,完成即时通信的过程。
开发的客户端基于Jabber 协议[ 4] , 可以实现用户注册和登录、即时消息处理、好友的分组管理、在线状态的监视等功能。
2. 1 客户端设计结构系统客户端,采用MVC 模式来进行构建,MVC 模式中应用系统被分成3 个部分:模型( Model) 、视图( View) 和控制器( Contr oller)。
View 向用户展示模型的状态以及控制信息,CONt roller 作为控制器,负责View 和Model 之间的流程控制,客户端MVC 结构如图1 所示。
采用MV C 模式架构进行设计,可以将视图层与逻辑代码以及数据模型层进行分离,实现系统的松散耦合,便于系统的维护和代码的重用。
同时,在Android 中,视。
基于Android平台的即时通信系统设计与实现
基于Android平台的即时通信系统设计与实现作者:陈育斌来源:《中国科技博览》2015年第05期[摘要]目前主流的IM协议有四种,包括:可扩展消息与存在协议(XMPP)、空间和即时信息协议(PRIM)、即时信息和空间协议(IMPP)、针对即时信息和出席扩展的会话发起协议SIP(SIMPLE)。
在这四种主流协议中,XMPP协议具有很好的灵活性和扩展性。
由于XMPP协议是高度自由、高度开放的协议,易于掌握和理解,而且在服务器、客户端、插件、源代码厍等方面,有多种实现。
任何遵循XMPP协议的软件,可以实现相互通讯。
加之Google公司开发的Gtalk软件也是基于XMPP协议的及时通讯软件,同时很多软件巨头也对XMPP协议进行支持,促进了XMPP协议的推广和普及。
因此,研究XMPP协议及基于此的即时通讯软件的设计与实现,有深远的意义。
[关键词]XMPP协议;即时通信系统中图分类号:TN914 文献标识码:A 文章编号:1009-914X(2015)05-0322-011系统相关技术背景介绍1.1 XMPP协议分析目前主流的IM协议有四种,包括:可扩展消息与存在协议(XMPP)、空间和即时信息协议(PRIM)、即时信息和空间协议(IMPP)、针对即时信息和出席扩展的会话发起协议SIP(SIMPLE)。
在这四种主流协议中,XMPP协议具有很好的灵活性和扩展性。
由于XMPP 协议是高度自由、高度开放的协议,易于掌握和理解,而且在服务器、客户端、插件、源代码库等方面,有多种实现。
任何遵循XMPP协议的软件,可以实现相互通讯。
加之Google公司开发的Gtalk软件也是基于XMPP协议的及时通讯软件,同时很多软件巨头也对XMPP协议进行支持,促进了XMPP协议的推广和普及。
因此,研究XMPP协议及基于此的即时通讯软件的设计与实现,有深远的意义。
1.2 XMPP协议簇XMPP协议簇一共分为四层,最底层的是TCP协议,向上依次分别是TLS协议(即传输层安全协议)、SASL协议(简单认证和安全层协议)、XMPP协议。
2016届计算机科学与技术专业本科毕业设计(论文)选题指南
宁夏师范学院数学与计算机科学学院2016届计算机科学与技术专业毕业设计(论文)选题指南一、计算机科学与技术专业培养目标本专业培养具有良好的科学与工程素养,系统地掌握计算机科学与技术,包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在企业、事业、技术和行政管理部门等单位从事计算机应用的创新型人才。
二、毕业设计(论文)选题原则1.选题必须符合计算机专业的综合培养要求;2.应尽可能选择应用性较强的课题;3.论文工作要有一定的编程量要求,以保证有明确的工作成果;4.选题原则上一人一题,如果是比较复杂的课题,每个学生必须有毕业设计的独立子课题;5.选题应尽量结合本地、本单位的教学、科研、技术开发项目,在实际环境中进行;6.结合非计算机学科进行的课题,应有1/3以上的内容涉及计算机软硬件的设计。
三、毕业设计(论文)选题范围(1) 网络与应用系统集成设计(2) 数据库应用(3) 管理信息系统设计(4) 操作系统开发与设计(5) 单片机及嵌入式应用系统开发(6) B/S模式应用程序设计(7) 图像采集及数据处理(8) 微机接口电路设计(9) 网络应用程序设计(10)基于andriod的应用程序开发与设计四、指导教师:白川平五、毕业设计(论文)参考题目:题目编号毕业设计(论文)题目所采用技术题目描述1 房屋销售管理系统的设计与实现不限在线预约,房屋数量、位置、价格在线统计与分析,销售情况的总体分析与统计等功能。
2 图书管理系统的设计与实现不限3 学生成绩查询系统的设计与实现不限4 二手商品交易网站的设计与开发不限5 数据结构中图的求解问题的动画演示系统的设计与开发不限6 基于51单片机的城镇道路交通灯控制系统的研究与设计不限7 基于51单片机的室内温度自动控制系统的研究与设计不限8 基于单片机的出租车自动计价器的研究与设计不限9 FLASH课件在物理教学中的应用研究FLASH要求对教育教学理论有一定的了解,对所选课题的教育现状有较充分的认识,制作相应课件支持研究中所提出的相应观点。
(毕业设计)基于Android通讯录的设计与实现
毕业论文(设计)题目基于Android通讯录管理系统设计与实现学生姓名学号学院专业指导教师联系QQ 1912881988本人严重声明:1、持以“求实、创新”的科学精神从事研究工作。
2、本文是我个人在导师指导下进行的研究工作和取得的研究成果。
3、本文除引文外,所有实验、数据和有关材料均是真实的。
4、本文除引文和致谢内容外,没有抄袭其他人或其他机构发表或撰写过的研究成果。
作者签名:__________日期:__________目录1 绪论 (1)1.1 手机通讯录管理系统的开发背景 (1)1.2 手机通讯录管理系统的研究目的和意义 (1)1.3 系统主要实现内容及实现方式 (1)1.3.1系统主要实现功能 (1)1.3.2 Android系统的开发平台 (2)1.4 系统开发所需的技术支持 (2)1.4.1 Java开发语言 (2)1.4.2 Android简介 (3)2 手机通讯录管理系统分析 (3)2.1技术可行性分析 (3)2.2 经济可行性分析 (4)2.3 需求可行性 (4)3 系统概要设计 (4)3.1 总体功能设计 (4)3.2 系统流程设计 (5)3.2.1 业务流程图 (5)3.3 系统数据库简介与设计 (6)3.3.1 SQLite数据库简介 (6)3.3.2 系统数据库设计 (6)4 系统详细设计 (7)4.1 联系人模块 (7)4.1.1 联系人操作模块 (7)4.1.2 联系人查找模块 (9)4.2 信息模块 (10)4.2.1 信息显示模块 (10)4.2.2 信息编辑模块 (10)4.3 个人中心模块 (12)5 系统测试与调试 (13)5.1 测试的概念 (13)5.2测试的目的 (13)5.3 测试的原则 (13)5.4程序测试 (14)5.5 测试的主要内容 (14)5.6 测试用例 (14)5.7 系统测试结果 (15)5.7.1 编辑联系人功能测试 (15)5.7.2 查找联系人功能 (16)5.7.3 删除联系人测试 (16)5.7.4 短信息发送测试 (17)5.7.5 短信息删除测试 (17)5.7.6 备份功能测试 (17)5.8 测试总结 (18)6 总结 (18)参考文献: (19)致谢 (20)基于Android通讯录管理系统设计与实现摘要:随着科学技术的不断进步与发展,移动便携式设备,如手机,平板电脑等产品越来越普及,其中大部分产品的操作系统采用的Android操作系统,并且自Alphabet收购安卓系统后,安卓的市场份额急剧扩大并且还在进一步增加。
Android平台的即时通信系统客户端设计方案
Android平台的即时通信系统客户端设计方案黄伟敏【期刊名称】《现代电子技术》【年(卷),期】2011(034)016【摘要】为解决在基于Linux操作系统的Android手机平台上即时通信问题,实现在系统客户端进行文本、图片、音乐的传送和播放.采用Java语言环境下Android 应用开发工具和API接口,并使用Eclipse加上Android集成开发环境插件为手段,对客户端架构、应用模块框架、数据存储、主要功能和核心模块开发技术等全方面分析,从而提供了实现即时通信系统的客户端解决方案.%To solve the problems of the instant communication on Android mobile platform based on Linux operating system, and achieve the transmission and play of text, picture and music in the client-side, Android application development tools and API interfaces are adopted in Java language environment, and Eclipse plus Android integrated development environment plugins are taken as means. The client-side ramework, application module framework, data storage, main function and core module development technology are analyzed. Thus the solutions for client-side instant communication are provided for realizing the instant communication system.【总页数】3页(P140-142)【作者】黄伟敏【作者单位】陕西铁路工程职业技术学院,陕西渭南 714000【正文语种】中文【中图分类】TN919-34;TP399【相关文献】1.基于Android平台的即时通信系统设计 [J], 雷文礼;任新成;张栋;高瑛2.Android平台基于LBS的即时通信系统设计 [J], 王建勇;刘飞3.基于Android平台的可视即时通信系统的设计与实现 [J], 王伟;董平;李超;4.基于Android平台的EAST即时通信系统 [J], 赵金幸;肖炳甲;袁旗平5.基于XMPP协议的即时通信系统客户端的设计与研究 [J], 于承立因版权原因,仅展示原文概要,查看原文内容请购买。
毕业设计(论文)-基于安卓的聊天App的设计与实现
本文在分析了当前环境下聊天 App 的发展前景后,进行了系统的设计和实现,并对 系统进行了完整的测试。系统具有界面友好,操作简单,方便实用的特点。 关键词: Android;即时通讯;环信;聊天 计与实现
Design and Imple mentation of Android Chat room
2.3.4 Broadcast Receiver ...................................................................................................... - 9 2.4 ANDROID 和其它手机操作系统的比较................................................................................ - 9 2.5 本章小结........................................................................................................................- 10 -
安徽工程大学毕业设计(论文)
基于android系统的即时通讯系统设计与实现的开题报告
基于android系统的即时通讯系统设计与实现的开题报告一、选题背景与意义随着移动互联网的普及,人们对于即时通讯系统的需求越来越高。
而在移动互联网中,具有开放性与跨平台性的移动操作系统Android近年来在全球范围内广泛被应用。
故本课题拟基于Android系统设计与实现一个即时通讯系统,以帮助实现人们的即时交流需求。
本课题拟通过深入阐述Android系统相关知识与即时通讯系统的设计、通讯协议、数据加密、用户身份验证、网络连接等方面的内容,实现基于Android系统的即时通讯系统设计与实现的目标。
从而最终实现一个安全、快速、稳定、有多种功能的即时通讯系统。
二、技术方案1. 设计思路本课题采用Android Studio开发工具进行开发,具体设计思路如下:①登录页设计:正确的信息被输入,则自动跳转到主页面界面。
②主页面设计:主要分为搜索、通讯录、消息、我四个模块设计。
③消息模块设计:消息展示,包含聊天模块及通知模块设计。
④聊天模块设计:通讯录模块所列出好友的点击进入聊天面板展示,包含表情包、发送语音、发送图片等功能。
⑤通讯录模块设计:设计出添加好友、查找好友等四个模块。
⑥我的模块设计:本课题主要设计了头像更改、个人信息修改及退出登录等功能。
2. 技术关键点本课题设计的技术关键点主要有:①使用XMPP协议:采用XMPP技术实现即时通讯系统。
②数据加密:使用AES加密算法进行数据加密。
③用户身份验证:使用MD5加密算法及RSA算法验证用户身份。
④ p2p通信:使用MTX技术实现android平台间高速数据传输。
⑤数据库存储:使用SQLite数据库进行数据的存储。
三、预期成果1. 功能实现本课题预期实现的功能主要包括:①用户注册、登录、退出等基本功能。
②通讯录管理,包括好友添加、群组管理等。
③聊天功能,包括文字、语音、图片、表情等多种形式。
④消息推送功能,包括好友请求、系统通知等。
⑤个人信息管理,包括个人资料修改、头像更换等。
基于Android的Wi-Fi Direct即时通信系统的设计与实现
即时通信(Instant Message,IM)在很大程度上改变了人们的通讯习惯和交流方式,甚至影响了很多人的社交圈。
人们生活也越来越离不开智能手机,手机之间需要彼此连接、交换数据的需求也越来越大。
市场上存在的通讯软件如QQ,WhatsApp,微信等必须连网才能为用户提供服务。
但现实中并不是随时随地都有4G或网络接入点(Network Access Point,AP)。
例如偏远山区无基站服务,以及发生地震等自然灾害的地区也会由于大量基站受到破坏而无法提供网络服务。
在这种情况下,用户之间的通信连接就成为一个亟待解决的问题。
Wi-Fi Direct这种新技术的产生能够很好地解决这个问题,它可以让具备硬件支持的设备在没有中间接入点的情况下进行直接互联。
Android是由Google公司设计的一种基于Linux 的开源智能操作系统,主要服务于手机、平板电脑等移动设备[1]。
Android系统的的开源性吸引了大量移动终端厂商纷纷加入到Android联盟中来,制作具有自己特色的Android应用与服务[2]。
Android4.0(API版本14)及以后的系统都提供了对Wi-Fi Direct的API支持,这为Android系统的应用开发扩展了一个新层面。
Android强大的通信功能使得基于Wi-Fi Direct的各种应用能在Android平台上得以实现,同时也能够促进Android自身的发展。
本文设计并实现的基于Android的Wi-Fi Direct 即时通信系统能够解决在恶劣网络环境下或突发情况下用户之间无法进行通信的问题。
文献引用格式:常朝霞,程卫军.基于Android的Wi-Fi Direct即时通信系统的设计与实现[J].电视技术,2018,42(1):95-99.CHANG Z X,CHENG W J.Design and Implementation of Wi-Fi Direct IM system based on Android[J].Videoengineering,2018,42(1):95-99.中图分类号:TP393.1文献标志码:A DOI:10.16280/j.videoe.2018.01:018基于Android的Wi-Fi Direct即时通信系统的设计与实现常朝霞,程卫军(中央民族大学信息工程学院,北京100081)摘要:目前市场上存在许多即时通信软件,如QQ,WhatsApp,微信等。
基于网易云信的即时通讯系统(Android端)
本科毕业设计(论文)学院(部) 计算机科学与技术学院题目基于网易云信的即时通讯系统(Android端)年级2103级专业软件工程(嵌入式)班级嵌入式二班学号1327403069姓名曹经纬指导老师金海东职称讲师论文提交日期2017-5-19目录前言 (3)第一章绪论 (4)1.1开发背景 (4)1.2国内外即时通讯发展状况 (5)1.3 课题意义 (5)1.4 研究内容 (6)1.5 论文结构 (6)1.6 本章小结 (6)第二章基于网易云信的即时通讯系统的需求分析 (8)2.1 系统概述 (8)2.1.1 网易云信简介 (8)2.1.2 开发环境搭建 (9)2.1.3 网易云信的账号体系 (11)2.2 需求分析 (12)2.2.1 目标 (12)2.2.2 主要参与者 (12)2.2.3 功能需求 (13)2.2.4 非功能性需求 (15)2.3 本章小节 (16)第三章基于网易云信的即时通讯系统的设计 (17)3.1 软件功能设计 (17)3.1.1 客户端功能设计 (17)3.1.2 服务端功能设计 (21)3.2 软件的数据库端设计 (22)3.3 本章小结 (24)第四章基于网易云信的即时通讯系统的实现 (25)4.1 服务器端 (25)4.2 客户端 (28)4.2.1整体程序设计 (28)4.2.3 用户注册模块 (30)4.2.4用户添加管理好友和群模块 (35)4.2.5 用户创建管理群模块 (39)4.2.6 好友/群组列表显示 (40)4.2.7 用户聊天模块 (42)4.2.8 聊天记录查询模块 (45)4.2.9 个人信息设置模块 (47)4.2.10 最近联系人模块 (48)第五章基于网易云信的即时通讯系统的测试 (50)5.1 用户注册功能测试 (50)5.2 用户登录功能测试 (50)5.3 用户添加好友功能测试 (50)5.4 消息功能测试 (51)第六章总结 (52)6.1 本文总结 (52)6.2 系统不足与未来展望 (52)参考文献 (54)致谢 (55)摘要本文分析了即时通讯的特点和用户需求,在网易云信服务的基础上,开发出一套即时通讯系统,系统由服务端和客户端组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
式 服 务器端 采 用当今 流行 的开 源服 务器O p e n i f r e 和 开源数 据 库My S Q L 构建 。 O p e n i f r e 服 务器 负责 处理 客户 端软 件发 送 的身份 验证 请求 、 连接请 求 、 数 据交 换等, 配 合My S QL 的 数据 存储 功 能 , 实现X MP P 协 议客 户端 软件 的 即时通 讯 。
基于 An d r o i d平 台的 即时通信 系统设 计 与实 现
陈育 斌
( 同济 大学 软 件学 院 上海 2 0 1 8 0 4 )
[ 摘 要] 目前主 流 的I M协议 有 四种 , 包括: 可 扩展 消 息与存 在 协议 ( X MP P ) 、 空 间和 即时 信息 协议 ( P R I M) 、 即时信 息 和空 间协 议( I MP P ) 、 针对 即时信 息 和 出 席扩展 的会 话发 起协i RS I P ( S I MP L E ) 。 在 这 四种 主流 协议 中 , XMP P 协议 具有很 好 的灵活性 和扩展 陛。 由于 X MP P 协议 是高 度 自由 、 高 度开放 的协 议 , 易于 掌握 和理 解, 而且 在服务 器 、 客户 端 、 插件 、 源代 码库 等方面 , 有 多种 实现 。 任何 遵循 X MP P 协议 的软件 , 可以实 现相互 通讯 。 加 之G o o g l e 公 司开发 的G 件 也是基 于X MP P 协议 的及 时通讯 软件 , 同时很 多软件 巨头 也对 X MP P 协议 进行 支持 , 促 进 了X MP P 协议 的推 广和 普及 。 因此 , 研究XMP P 协议及 基于 此 的即 时通讯软 件 的设计 与 实
涪 牲和扩 展性 。 由于 X MP P 协议 是高 度 自 由、 高 度开 放 的协 议 , 易 于掌 握和 理 解, 而且 在 服 务器 、 客 户端 、 插件 、 源 代 码 库等 方 面 , 有多种实现。 任 何 遵 循
用户 运行客 户端 时 , 首先在 内部控 制模 块判 断 , 是否 存在 用户配 置好 了 的 信息, 如果存 在 , 则直 接调 用配置 过得信 息进 行 网络连接 。 如 果没 有 , 则会进 入 向导 模式 , 这个 时候供用 户选择 , 如果 用户 已经有账号 了 , 则 可 以直接 到登 录界 面填写登录 信息进 行登录 , 如果 用户没有 账号 , 则选择 注册 , 到注 册界面进 行注 册, 登 录成功 后 , 就会 显示联 系人 列表 , 不成 功 时 , 可 以点击 手动 设置 来配置 一
基于 X I v L P P 协议 的 及 时通讯 软 件 , 同时 很多 软件 巨头也 对Xi V L P P 协 议进 行 支 持, 促进 了x P 协 议的 推广和 普及 。 因此 , 研 究X I V L P P 协议及 基于 此的 即时通
讯 软件 的设 计 与实现 , 有深远 的意 义 。
4 . 1 用户界 面布 局实现
本系 统客户 端 的用户界 面布 局文件 存放在/ ms / l a y o u t 中, An d r o i d 系 统据 系统可 以根 据系统 自身 的重力感应 , 进行 相应 的屏幕适 配。 当然 , 如果手机 横屏
和 竖屏 的布 局存在 明 显差异 , 则可 以通过 在r e S 目录 下创 建l a y o u t ~ l a n d 与l a y —
1 1 X M P P 协 议分 析
ห้องสมุดไป่ตู้
系统 客户端 的界 面设计 包括 用户注 册 , 用 户登 录 , 配置设 置 , 联 系人列表 ,
个 人信 息及状 态设 置 等。
目前 主流 的I M协议有 四种 , 包括 : 可 扩展消 息与存 在协 议( X MP P ) 、 空 间和 即时信 息协 议( P RI M) 、 即时信 息和 空间协议 ( 1 MP P ) 、 针对 即时信 息和 出席 扩展 的会话 发起协 i RS I P ( S I MP L E ) 。 在 这 四种 主流 协议 中, X MP P 协议 具有 很好 的灵
1 . 2 X M P P 协 议簇
本系统采用C / s ( 客户端一服务器端) 的系统架构 , 客户端是基于A n ro d i d
手机操 作系 统开 发的 即时通 讯 软件 , 采 用J a v a 编程 语言 开发 和MVC 的设计 模
X MP P 协 议簇 一共 分为 四层 , 最 底层 的是 T C P 协议 , 向上 依次 分别 是T L S 协议 ( 即传 输层 安 全协 议 ) 、 S A S L 协 议( 简单 认 证 和安 全层 协议 ) 、 XMP P 协议 。 TL S由操 作 系统 提供 , 用于 在两 个 通信 应用 程序 之 间提 供保 密性 和数 据 完整 性。 8 AS L 是 由应用 层提 供 , 而X MP P  ̄ U 是 应用层 本 身。 XMP P 协议 采用 S AS L f  ̄ 议作为 身份认 证协 议。 基 于X MP P 协议 的S A S L 协议需提 供如 下三个 方面信 息 :
些 登录信 息和 网络设 置信 息等 。 由联 系人 列表视 图可 以进 行好友 管理 , 分 组管 理, 个 人信 息管 理 , 状态 信息 管理 等等 。 4即时 通讯 系统 的实 现
X MP P 协议 的软 件 , 可 以实现相 互通 讯 。 加之 G o o g l e 公司 开发 的G t a Ⅱ 【 软 件 也是
现, 有深 远的 意义 。 [ 关键 词] X MP P 协议 , 即时 通信 系统 中图分 类号 : T N9 1 4 文献标 识码 : A
文章编 号 : 1 0 0 9 - 9 1 4 X( 2 0 1 5 ) 0 5 - 0 3 2 2 -0 1
1系统 相关 技术 背景 介 绍