摘要:论文简单介绍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视频开发包,可以用于二次开发。
老罗Android视频开发教程 android之http协议编程代码 很不错的Android开发教程。
教程名称:老罗Android视频开发教程-百度地图实战开发【10集】课程目录:【】1-《老罗Android开发视频教程》百度地图搭建开发环境【】10-《老罗Android开发视频教程》经纬度和地址的转换【】2-《老罗Android开发视频...
最全面的Android视频开发资料共享,从基础到高级到完整的项目
做视频开发必备的例子,,需要自己配置JMF框架。android视频开发必备!!!
老罗Android视频开发教程 android解析xml文件代码 很不错的Android开发教程。
老罗Android视频开发教程 android常用布局的介绍代码,很不错的教程代码。
android视频开发源码,代码编写MP3d_01
mars老师android视频开发教学第二季源代码,完整代码
老罗android视频开发源码和ppt.zip 非常全的源码及讲解PPT, 一共52.4M,很全。学习案例,光研究代码都能学会android开发。
老罗Android视频开发教程 android解析Json数据代码 很不错的Android开发教程。
老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。
老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。
老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。
老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。
老罗android视频开发源码和ppt 时间对话框的使用
老罗android视频开发源码和ppt---android 解析json
老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。
mars老师的Android视频开发教程的配套代码
《老罗android视频开发》入门介绍源码