基于Android 平台简易即时通讯的研究与设计

摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的
作用和功能以及实现方法,复杂的通讯如引入视频音频等可以考虑AnyChat SDK。
关键词:Android 平台;即时通讯

1 Android 平台简介
Android 是Google 公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(OHA)。Google 与运营商、设备制造商、开发商和其他第三方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。正因如此,Android 正在被越来越多的开发者和使用者所接受。近日,Google 发言人Anthony House称,截止到2010 年4 月15 日,Android Market 已经有3.8 万多个应用程序。

2 Android 平台特性与即时通讯的研究

  Android 平台框架共由5 部分组成。底层核心是基于Linux 2.6内核开发的独立操作系统,该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。中间是Android 执行环境,包括系统运行库、Dalvik 虚拟机、核心库和一些C /C ++库等支持Android 使用的各个组件。应用层框架是开发人员使用这些API 框架来开发自己的应用,简化了应用程序开发的架构设计。应用层程序是用Java语言编写的运行在虚拟机上的程序[1] 。整个An- droid 平台框架如图1 所示。

即时通讯(IM)是一个终端连往一个即时通讯网路的服务。即时通讯与e-mail 的不同在于它的交谈是即时的。大部分的即时通讯服务提供了在线提醒的特性──显示联络人名单,联络人是否在线,能否与联络人交谈等。近几年即时通讯发展特别迅速,即时通讯的功能日益丰富,由PC 客户端发展到移动客户端,逐渐发展成一个综合化信息平台,国内市场上知名的即时通讯工具有腾讯QQ,新浪UC,中国移动飞信等,但这些产品都有着很严重的安全威胁,如ID 被盗、隐私威胁、病毒威胁等。

为了减小这些威胁,可以在企业内部开发自己的即时通讯软件,减少为未知用户带来的威胁。

3 简易即时通讯功能及设计

3.1 简易通讯的功能

本设计实现了在Android 平台上开发即时手机通讯系统,它能够使用户在手机客户端上登录服务器,方便、迅捷地收发即时消息。随着研究的深入,可以在该系统上实现图片的传输和接收,以及其他一些功能,这样可以使该系统功能更加多样化。

3.2 简易通讯系统框架介绍

通讯系统架构采用C /S 模式,即客户端/服务器的体系结构。客户端是基于Android 平台进行开发,通过3G 网络与Internet 建立连接,通过服务器实现Android 客户端之间的即时通讯。

客户端负责初始化通信过程,进行即时通讯时,由客户端负责向服务器端发起连接请求。服务器端采用开源的Openfire[2] 作为服务器,允许多个客户端同时登录,并且同时连接到一个服务器上。服务器对每个客户端进行认证,对认证通过的客户端创建会话,实现客户端与客户端之间的通讯。

3.3 客户端的解决方案

系统的客户端定位于Android 平台的手机,采用SIMPLE[3] 协议作为即时通讯协议,SIMPLE(SIP for Instant Messaging and Presence LeveragingExtensions) 是SIP (Session Initiation Protocol)的扩展,它为SIP 协议制定了一整套的架构和扩展方面的规范,用于支持IM。SIMPLE 通过SIP 来传递状态信息和实现分布的信息表示

。根据协议规则,采用Android 平台提供的XML 解析包对XML 进行解析。根据Activity 模块运行于主线程的特点,采用多线程[4] 技术来解决系统通信问题。系统的用户信息和聊天信息存储在Android平台自身所带的SQLite 数据库中。客户端

功能模块如图2 所示。

3.4 服务器端解决方案

系统服务器端采用开源的Openfire 来建立即时通信服务器。Openfire 采用Java 语言进行开发,Java 语言具有跨平台的特点,因此Openfire 服务器可以架设于多种操作系统平台上。Openfire服务器的内核主要由服务器连接管理组件、会话管理组件、数据存储组件和传输器组件等组成。Openfire 实现了插件机制,方便扩展,通过安装与异构网络通讯的插件,便能与其他的通讯软件实现通讯。

在网络连接中采用Apache 的Mina 框架来实现网络连接,Mina 框架使用非阻塞式的高性能I /O 底层,采用异步I /O 事件和事件驱动机制,使服务器具有很高的效率和性能,从而能够及时处理大量的客户端连接事件和I /O 随机事件,单台服务器可支持上万个并发用户。服务器与客户端的连接示意图如图3 所示。

3.5 通信系统结构

随着移动通信与Internet 的飞速发展及其相互融合,3G 无线网络使无线网络高速接入Internet成为现实,从而移动客户端可以接入到Inter- net 的服务。系统客户终端通过3G 无线网络采用TCP 协议连接到服务器,通过SIMPLE 即时通
讯协议进行及时通讯。[5]

在移动网络中,移动终端接入到3G 无线网络。
网关移动交换中心GMSC(Gateway Mobile Switc- hing Center)为用户提供分组路由、隧道和跟踪移动终端的位置等功能。UMTS(Universal Mobile TelecommunicationsSystem)提供3G 网络内部与外部网络的路由和封装,分配IP 地址,实现与Internet 网络的互通。通信系统结构示意图如图4 所示。

3.6 系统工作流程

服务器对用户输入的用户名和密码进行身份验证,验证成功后,客户端从服务器端读取客户端的个人信息,并更新好友列表和群组信息,服务器端响应客户端的各种请求,客户端可发送接收信息,通讯完毕退出系统登录状态。这样,一个简易即时通讯系统便实现了。在这里顺便提下如果要求做到音视频通讯的话可以借鉴AnyChat SDK产品。当然只是个人学习的话可以先从文字通讯开始。

图5 是认证流程示意图。

客户端软件使用Java 和XML 语言在eclipse集成开发环境中开发,基于Andriod 1.5 模拟器开发的用户登录界面如图6 所示。

4 结语
该设计主要讨论了基于Android 平台的简易即时通讯系统,研究了在开源服务器Openfire 上各个移动客户端和服务器之间的通信系统结构,实现了客户端功能。随着研究的进一步深入,基于Android的通讯系统会逐渐完善,相信基于Android 平台的即时通信系统会有着很好的应用前景

安卓平台下的即时通讯相关推荐

  1. 安卓(android)即时通讯

    安卓(android)即时通讯,也就是实现在安卓平台下的即时通讯.随着android系统的发展成熟,在即时通讯这一版块逐渐发展成一个综合化的信息平台.在Android 平台上开发即时通讯系统,它能够使 ...

  2. b/s模式下的即时通讯,使用ajax框架dwr实现

    b/s模式下的即时通讯,使用ajax框架dwr实现 了解java的发展史可以知道,客户端编程在基于浏览器的编程方面,以前的做法是用applet实现客户端编程,在当时算是流行的做法,但是随着IE的不一致 ...

  3. 基于Linux下的即时通讯聊天室项目(全代码 有注释 可直接运行)

    基于Linux下的即时通讯聊天室项目 一.序言 二.具体功能 三.系统客户要求 四.具体代码 1.服务器代码 2.客户端代码 一.序言 最近在写一个基于Linux下的聊天工具 它适合于局域网内所有人进 ...

  4. 安卓平台下的音视频即时通讯应用的开发

    现在安卓很是火热,一大堆开发人员在捣鼓安卓平台的开发,相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于安卓平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 兼容 ...

  5. 即时通讯项目 java版本qq (含服务器和客户端)源码_即时通讯安卓-QQ互联网和即时通讯云,如何实现即时通讯,这是Android还是Java...

    Android是系统平台. 应用程序所做的是应用程序的开发和完成 也就是说,通信是网络通信,但在手机环境中,网络的情况更复杂,所以我们必须做好结构 安卓即时通讯. 怎么做?安卓版TT即时通讯排行. A ...

  6. linux+即时通讯服务器,linux平台上的即时通讯应用开发

    由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有.下面介绍一款强大的音视频即时通讯平台给大家,它就是--Anychat ...

  7. 手机即时通讯开发平台

    即时通讯是目前最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷:服务提供商也提供了越来越丰富的通讯服务功能.目前在安卓平台下的主流即时通讯软件有:AnyChat.QQ.ICQ.MSN.新浪微博等 ...

  8. IOS 即时通讯开发平台(SDK)

    一.系统介绍 BRAChat for iOS SDK是一套即时通讯开发平台(SDK),包含了音视频处理模块与P2P网络模块两大部分,是BRAChat Platform Core SDK的重要组成部分, ...

  9. 如何选择企业即时通讯软件

    如何选择适合的企业即时通讯软件     目前来说,越来越多的大中型企业意识到上班时间使用个人通讯工具(IM)存在的危害(如:交流对象及交流内容的不可控.必须开通外网存在安全隐患等),并且已经开始寻求一 ...

  10. 即时通讯行业首个《安全合规白皮书》发布

    前言 随着移动互联网和 5G 通信新技术的浪潮席卷全球,传统的通信方式已经发生了翻天覆地的变化.人们已经习惯了通过即时通讯软件和网络交流平台分享自己生活的方方面面,随着人们越来越公开自己的生活,人们也 ...

最新文章

  1. python 写脚本 预约课程_Python盘纪念币系列之三:自动预约脚本编写 03 系列总结...
  2. 人眼模板匹配自动跟踪
  3. 紧急更新下降难度,《王者荣耀》绝悟 AI 难倒一片玩家
  4. 从“小”培养AI安全意识:OpenAI开源最新强化学习训练工具,安全约束自由定制,开箱即用...
  5. 运行时异常与一般异常的区别
  6. Android APP层 ShellUtils
  7. 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数
  8. 收集灵感必备|文字这样组合排版那才叫设计
  9. 24点游戏java代码 中国开源社区_编程之美 1.16 24点游戏
  10. 浅谈抖音下拉词框优化推广的优势
  11. 一个人形图案程序c语言,如何用PPT绘制出人形图形
  12. Android通过NTP服务器取得UTC标准时间
  13. python日期,时间函数
  14. Gauss-Jordan法求逆矩阵
  15. R Talk | 旷视南京研究院魏秀参:细粒度图像分析综述
  16. 用InkScape绘制中国人寿LOGO
  17. Wireshark流量分析
  18. 伊甸园日历游戏(vijos--1004)
  19. 谁说大象不能跳舞——《读书笔记》
  20. 深拷⻉和浅拷⻉区别是什么?

热门文章

  1. 跨站脚本攻击(XSS)
  2. SpringAOP之动态代理
  3. 【排序】图解冒泡排序
  4. ICCV 2019 | ICCV 2019 论文接收列表 | ICCV 2019一共接收1077篇 | 共4303篇投稿
  5. 分贝相关概念及转换:dB、dBSPL、dBm、dBu、dBV、dBFS
  6. 二阶滤波器原理及算法程序
  7. camera link
  8. mysql 省份名排序,mysql省份表,含行政区划代码、省份名和省份全拼
  9. Scintilla教程(5): 选中
  10. 分治算法求螺丝螺母匹配问题