基于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 中, 视图层可以通过定义XML 文件的方式来设计用户界面, 在数据模型层提供了Co ntent Pr ovider类来屏蔽底层具体的存储设备细节, 从而使应用系统具有良好的数据迁移性。
图1 客户端MVC 结构图
2. 2 应用模块框架
Android 中用户界面允许采用定义XML 文件或编写代码建立。通过定义XML 文件来设计用户界面便于代码理解和重用, 效率较高。故系统选用定义XML文件来实现客户端的用户界面。Android 应用程序与用户打交道的基本功能单位是活动( Activity ) , 它通过调用方法setContentView ( ) 加载视图资源显示。运行于后台的应用程序可以通过Ser vice 来进行设计, 通过Binder 机制, 与相关的活动绑定在一起, 系统应用模块架构如图2 所示。
图2 应用模块框架图2. 3 数据存储
客户端采用Andr oid 平台自身所带的SQLite 数据库来存储用户信息以及即时通信聊天信息, 使用文件存储设备SDear d 来存储图片和音乐。使用contentPr ov ider 将SQLite 资料库系统封装起来, 让应用程序直接使用能够屏蔽数据库差异性, 提供一致界面的contentPro vider 所提供的界面函数。
2. 4 实现主要功能
系统客户端主要实现以下功能:
( 1) 注册用户: 填写相关的个人信息进行注册, 向服务器提交后服务器返回相应的信息;
( 2) 系统设置: 对系统的一些选项进行相应的设置;
( 3) 用户设置: 对用户基本信息和一些Jabber 选项进行设置;
( 4) 登录和注销: 选择相应的服务, 输入用户名和密码, 登录即时通信系统, 或注销用户, 退出本系统;
( 5) 分组管理: 可以创建新的分组, 对分组信息进行修改或删除;
( 6) 好友管理: 可以添加好友至某个分组, 修改好友的备注信息, 删除好友;
( 7) 好友信息: 登录后, 可以按照分组查看所有好友的信息;
( 8) 信息发送: 登录后可给某位好友发送信息, 如果好友离线, 信息暂存于服务器中, 待其上线后接收;
( 9) 信息接收: 接收好友发送过来的信息, 并显示;
( 10) 查看聊天记录: 可查看与某位好友的聊天记录。
3 主要模块设计
系统的即时通信采用XMPP 协议, XMPP 是基于XML 的协议。在系统的即时通信过程中, 通信信息都是以XML 语句进行传输的, 而具体的消息内容则嵌入在XML 元素中。系统主要包括解析、加密、即时通信、图片传输、音乐播放、图片浏览等模块, 各模块设计如下:
( 1) 解析模块。系统采用Android 平台上提供的org . xmlpull. vl 解析包对XML 消息进行解析。XMPP协议中的XML 语句是一种树型结构, 解析XMPP 协议的过程即对树的遍历, 节点的名字就是属性的名字, 节点的值就是属性的值。在解析中, 只对主要消息元素进行解析, 主要解析XMPP 协议的3 个顶层元素< message/> 、< Presence/ >和< iq/ >所包含的内容以及包含错误信息的元素 。解析完后, 封装, 供应用模块进行调用;
( 2) 加密模块。加密模块对发送和接收的消息进行加解密, 以确保通讯数据的安全。该加密机制是分
- Android开发技巧:软硬件的巧妙整合(01-16)
- 基于Android的VoIP系统的设计与实现(03-28)
- 基于Android系统的影音播放器开发(03-25)
- Android的阿喀琉斯之踵(07-08)
- Android开发之“hello World”的实现 (07-23)
- 教你在Win7下配置Android开发环境(09-26)