摘要:论文简单介绍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 平台的即时通信系统会有着很好的应用前景

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

  1. 基于Android开发的即时通讯聊天app

    基于Android开发的即时通讯聊天app 前言 即时通讯(Instant Messaging,简称IM)在互联网中应用十分广泛,它可以和很多的领域结合,发挥十分重要的作用.比如金融行业的支付宝.各大 ...

  2. android音乐播放器课程设计报告,基于android平台的音乐播放器的课程设计报告.docx...

    基于android平台的音乐播放器的课程设计报告 - PAGE - PAGE 17 - 吉 首 大 学 JISHOU UNIVERSITY <疯狂Android讲义>课程设计 报 告 书 ...

  3. 基于Android平台实现x的跑步应用App设计【附项目源码+论文说明】分享

    基于Android平台实现x的跑步应用App设计演示 摘要 随着手机使用的普及,人们获取与保存信息的方式已经发生了激动人心的转变.智能手机正在逐步融入我们的生活,并影响和改变着我们的生活.由于现在各种 ...

  4. android智能识别技术,基于Android平台的OCR识别技术研究与实现

    摘要: 随着智能手机市场的迅猛发展和普及,Android成为所占市场份额最高的手机操作系统,与此同时,人们希望在手机终端享受更丰富舒适的应用功能.将OCR和Android智能终端相结合,依托光学字符识 ...

  5. android人脸情绪识别器,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  6. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  7. 骨密度中android区域,基于Android平台的超声骨密度测试系统的设计与实现

    摘要: 骨质疏松是一种高发病率和高危害性的退行性疾病.骨密度的精确测定是骨质疏松的防治前提,也是诊断骨质疏松的金标准.针对目前骨质早期筛查的常用设备--超声骨密度仪存在的携带不便.界面单一等问题,本文 ...

  8. android学生个人事物管理系统,基于Android平台的学生个人事务管理系统的设计与实现(整理版).doc...

    DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF;DS 摘 要 Android智能手机越来越普及 ...

  9. android控制中心实现,基于Android平台的智能家居系统控制中心的设计与实现

    摘要: 随着科技的发展,人民生活水平的提高,人们对住宅的要求也越来越高,智能家居就是为解决人们的这一要求诞生的.自1984年第一栋智能建筑诞生以来,世界上出现了很多智能家居解决方案,但都或多或少的存在 ...

  10. android 人脸识别 方法研究,基于Android平台的人脸识别技术研究

    摘要: 在计算机视觉与模式识别领域中,人脸检测与识别技术是一个非常热门的研究课题,同时也具备非常广阔的商业价值.在诸多的目标检测算法中,基于AdaBoost算法的目标检测方法具有检测速度快,检测效果好 ...

最新文章

  1. 网络推广——符合网站现状的优化方案才是最适合进行网络推广的方案
  2. [hdu5203]计数水题
  3. 后端:Java 中 10 大坑爹功能!
  4. 请设计各种管理系统、业务系统的大哥大姐们,设计新系统时,拜托您,请允许我修改用户名、密码...
  5. .NET中扩展方法和Enumerable(System.Linq)
  6. CSS仿艺龙首页鼠标移入图片放大
  7. 标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...
  8. 阿里一面 —— 什么是多线程?
  9. 业内指路共享软件:更多机会在移动和海外市场(三)
  10. markdown统一设置图片格式_Markdown教程
  11. oracle 11g r2 的jdk 版本,java 连接 oracle 11gr2 出错 泪求大神
  12. python django 网页 html \n不换行
  13. Spark Container killed by YARN for exceeding memory limits. 11.1 GB of 11 GB physical memory used
  14. [转贴] 扫盲转贴:Rootkit技术发展史
  15. 英文版windows 中文软件乱码的解决方案:设置Locale
  16. Js编码和Java后台解码
  17. 《学习总章》硬件工程师学习首页
  18. PHP去掉名称字符串中的表情
  19. R语言入门基础——基础操作篇(极为基础的指令代码)
  20. 平面设计新手怎么构思设计?有什么技巧!

热门文章

  1. Python删除字符串中的符号
  2. FPGA图像处理 —— fpga实现cameralink接口图像传输
  3. FPGA自学:利用D触发器实现分频
  4. 零基础搭建双端影视盒子——一、搭建运行环境
  5. 开关稳压器设计的PCB布局布线
  6. 在中国mapinfo电子地图中添加投影教程
  7. 在Android中Unity3D透明背景的实现
  8. 手动杀毒,SOLA病毒(也称之为worm.script.bat.Agent、Trojan.Win32.Sola病毒)
  9. 学习笔记:修改网吧计费系统
  10. mysql正则表达式替换字符串_mysql正则表达式字符替换语句