基于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]余志龙,陈昱勋,郑名杰,等.Google Android SDK 开发范例大
全[M].北京:人民邮电出版社,2009.
[2]张云川.标准化的即时通信协议———SIMPlE 和XMPP 的对比
研究[J].武汉科技大学学报: 自然科学版,2005,28(4):375
-377.
[3]张海燕.Java 多线程技术在手机互联网中的应用[J].农业网
络信息,2008(3):97 -98.
[4]姚昱旻,刘卫国.Android 的架构与应用开发研究[J].计算机
系统应用,2008(11):110 -113.
[5]张利国,代闻,龚海平.Android 移动开发案例详解[M].北京:
人民邮电出版社,2010.

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

时间: 2024-10-10 17:08:15

基于Android 平台简易即时通讯的研究与设计[转]的相关文章

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

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

基于Android平台的i-jetty网站智能农业监控系统

基于android平台i-jetty网站的智能农业监控系统 摘要:传统的监控系统,一般是基于PC的有线通信传输,其有很多不足之处,如功耗较高.布线成本高.难度大,适应性差,可扩展性不强,增加新的通信线路需要再次布线施工,而且维护起来也比较麻烦,一旦线路出问题,需要繁琐的检查.而嵌入式Web监控系统是基于物联网技术,其无线通信技术具有成本低廉.适应性强.扩展性强.信息安全.使用维护简单等优点. 智能农业中,种植大棚是通过大棚内安装温湿度以及光照传感器,来对农作物的环境参数进行实时采集,由Web监控

C语言 linux环境基于socket的简易即时通信程序

转载请注明出处:http://www.cnblogs.com/kevince/p/3891033.html   By Kevince 最近在看linux网络编程相关,现学现卖,就写了一个简易的C/S即时通信程序,代码如下: head.h 1 /*头文件,client和server编译时都需要使用*/ 2 #include <unistd.h> 3 #include <stdio.h> 4 #include <sys/types.h> 5 #include <sys

基于Android平台的会议室管理系统具体设计说明书

会议室管理系统具体设计说明书 第一部分  引言 1.编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和參考本说明进行代码的编写.測试. 1.2 背景 说明: A.软件系统的名称:会议室管理系统 B. 任务提出者:内蒙古大学计算机学院 开发人员:魏晓蕾 本项目将实现基于Android平台的会议室管理系统的原型部分,而且在该原型的基础上进行功能的扩展和需求的界定,终于完毕的版本号将在全国范围内推广使用. 提供会议室管理功能

手把手教Android商业项目-即时通讯-i美聊

[课程概况] 手把手教你从无到有的完整实现一个Android商业项目,是目前整个市场上所没有的课程,废话不多说,请往下看. [项目概况] 项目名称:i美聊 所属领域:移动社交 即时通讯   代码行数:10万+ 开发周期:5个月 [讲师简介]         Jason,一个闷骚的老男人 [能收获的知识] 1. XMPP协议及aSmack框架 2. 错误信息的收集与发送 3.  兼容性测试 4. 短信验证码 5. 录音的转码及发送 6. 各种第三方使用 7. 接入支付功能 8. 代码混淆 9. 上

cocos2dx-2.X前后台切换分析,基于android平台

摘自网上的android生命周期图: cocos2dx-2.X前后台切换分析,基于android平台: 1.从后台进入前台 项目的activity一般继承自Cocos2dxActivity,看过activity生命周期的 都知道onCreate,onResume等方法,这些函数是activity生命周期中 最重要的函数,具体什么时候调用,可以查看相关资料. //刚进入游戏和游戏从后台回到前台会调用 @Override protected void onResume() { super.onRes

基于Android平台开发的手电筒Light

基于Android平台开发的手电筒Light 1.     需求分析: 在现代社会中,手机的功能越来越完善,手电筒就是这些功能中必不可少的一种.当行走在漆黑的道路上,当你在黑暗狭小的地方寻找物品,当你在家中停电之时,如果你的手机拥有了手电筒的功能,那将为你带来莫大的方便.当然,它的用处不仅仅只是这样,有了这样一个方便携带的手电筒,在许多时候都是大有益处,因此,开发出了手电筒这一应用程序. 2.     开发环境: 1. JDK Ver: jdk-7u4-windows-x64.exe 2. My

基于Android平台的快递轨迹查询应用开发全程视频教程

课程讲师:欧楠课时数量:10(17节)课时用到技术:MenuDrawer.DbUtils.HttpUtils.讯飞语音识别涉及项目:基于Android平台的快递轨迹查询应用开发项目咨询QQ:1609173918 http://yunpan.cn/cVgILJtNYMcDB 访问密码 f885 目前Android平台移动应用开发正如火如荼的发展,智能手机和平板电脑的出货量正快速上升,人们正越来越习惯于在移动平台进行娱乐和各种操作.目前电子商务的发展使人们在每次网购之后都需要了解购买的商品的物流信息

基于Android平台的汽车租赁平台项目的数据库设计心得

我们团队的项目是基于Android平台的汽车租赁平台,其分为手机客户端与web后台管理系统,用以满足租车公司的业务需求,故数据库设计对于本项目显得尤为重要,我们团队数据库设计最开始用的是最原始的方式:Word手动输入,但随后随着数据库课程以及实验的学习,我们最后使用的PowerDesigner设计的数据库并生成了SQL文件,导入数据库完成的数据库最终设计与搭建,我们团队于第8周完成了数据库的搭建. 数据库设计中,数据库要严格与项目需求相联系,同时保证数据库数据完整.正确.安全以及数据处理的高效与