已阅读5页,还剩57页未读, 继续免费阅读
基于Android平台IMS客户端的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
e 立交迪厶堂童些亟 堂位途塞史塞擅塑 中文摘要 目前3 g 4 g 网络高速发展 全球正在经历固定网络和移动网络的快速融合 移动互联网的强劲发展和移动智能设备的迅速增长为服务提供商带来了极大的机 遇和挑战 即时消息 视音频通话这样广大用户经常使用的服务正在从固定网络 向移动网络迁移 为了应对互联网企业带来的竞争压力 通信产业推出了i m s i p m u l t i m e d i as u b s y s t e m i p 多媒体子系统1 应对挑战 本文从工程开发的角度 提供了一个跨平台的i m s 客户端解决方案 并从底 层协议栈结构 a n d r o i d 平台软件开发 软件设计和开发方法等多个角度对a n d r o i d 平台i m s 客户端的设计与实现做出详细阐述 文中对客户端采用的关键技术做出 论证和分析研究 然后采用软件工程的管理方法 从需求分析 软件架构及概要 设计 详细设计及实现等阶段详细阐述客户端的设计和结构 架构上客户端采用 分层设计 跨平台共享协议栈代码 并实现了业务层和u i 层的分离 使程序的耦 合度大大降低 本客户端遵循i m s 标准 能够与其他平台符合i m s 标准的客户端成功互通 客户端实现了用户注册 网络地址簿 历史记录 即时消息 群组聊天 文件传 输 视音频电话 视音频会议等功能 获得了良好的用户体验 关键词 i m s a n d r o i d 即时通信 视音频电话 协议栈 s i p s d p 分类号 t p 3 1 1 5 j 塞童遒厶堂童些亟 堂位途塞 垒鱼量上l 型 a b s t r a c t c u r r e n t l v t h e3 g 4 gn e t w o r ki sd e v e l o p i n gr a p i d l y t h e w o r l di se x p e n e n c m g r a p i di n t e g r a t i o no ff i x e da n dm o b i l e n e t w o r k s t h er a p i dg r o w t ho f m o b i l ei n t e r n e ta n d t h es t r o n gd e v e l o p m e n to fm o b i l es m a r td e v i c e sh a v eb r o u g h tg r e a to p p o r t u n l t l e 8 a n d c h a l l e n g e st os e r v i c ep r o v i d e r s i n s t a n tm e s s a g i n g v i d e oa n da u d i oc a l l s s u c hav a s t n u m b e fo fu s e r so f t e nu s e ds e r v i c e s a r em o v i n gf r o mt h ef i x e dn e t w o r kt o m o b l l e n e t w o r km i g r a t i o n i nr e s p o n s et op r e s s u r e sf r o mt h ei n t e r u e t c o m p a n l e s t e l e c o m i n d u s t r yl a u n c h e di m s i p m u l t i m e d i as u b s y s t e m t of a c et h ec h a l l e n g e f r o mt h ee n g i n e e r i n gp o i n to fv i e w t h i sa r t i c l ep r o v i d e s ac r o s s p l a t f o r mi m s c l i e n ts o l u t i o n w h i c he x p l a i n st h ed e s i g na n di m p l e m e n t a t i o no f t h ei m sc l i e n to n a n d r o i dd l a t f o r i l lf o rv a r i o u sa s p e c t s s u c ha s t h es t r u c t u r eo ft h ep r o t o c o ls t a c k t h e a n d r o i dd l a t f o r m s o f t w a r ed e v e l o p m e n t a n ds o f t w a r ed e s i g n a n dd e v e l o p m e n t m e t h o d 0 1 0 9 v f i s to fa l l f e a s i b i l i t y s t u d i e sa n da n a l y s i so ft h ek e yt e c h n o l 0 9 1 e s a r e c o n d u c t e di nt h ea r t i c l e a n dt h e nt h ed e s i g na n d s t r u c t u r eo fi m sc l i e n ta r ee l a b o r a t e d f r o mt h ep e r s p e c t i v eo fs o f t w a r ee n g i n e e r i n g i no r d e rt o r e d u c et h ec o u p l i n go ft h e p r o g r a m al a y e r e da r c h i t e c t u r ei sa d o p t e d w h i c hm a k e sb u s i n e s sl a y e r a n du il a y e s e d a r a t e d a n dt h ep r o t o c o ls t a c kc o d ec o u l db e u s e do nd i f f e r e n tp l a t f o 姗 t h ec l i e n tf o l l o w si m ss t a n d a r d s a n di si n t e r o p e r a b l ew i t hi m s c o m p l i a n t c l i e n t s b a s e do no t h e rp l a t f o r m s t h e c l i e n th a sa c h i e v e d t h ef o l l o w i n gf e a t u r e s u s e r r e 西s t r a t i o n n e t w o r ka d d r e s sb o o k o p e r a t i n gr e c o r d i n s t a n tm e s s a g i n g g r o u p c h a t t 1 j e t r a n s f e r a u d i o v i d e op h o n e a u d i o v i d e oc o n f e r e n c i n g a n dk e e p sa n e x c e l l e n tu s e r e x p e r i e n c e k e y w r d s i m s a n d r o i d i n s t a n tm e s s a g i n g a u d i v i d e c a l l p r o t o c o l s t a c k s i p s d p c l a s s n o t p 3 1 1 5 致谢 本论文的工作是在我的导师李宇老师的悉心指导下完成的 李宇老师严谨的 治学态度和科学的工作方法给了我极大的帮助和影响 在此衷心感谢两年来李宇 老师对我的关心和指导 李宇老师悉心指导我们完成了研究生阶段的学习和工程实践 在学习上和生 活上都给予了我很大的关心和帮助 在此向李宇老师表示衷心的谢意 李宇老帅对于我的工作和论文都提出了许多的宝贵意见 在此表示衷心的感 谢 在撰写论文期间 很多同学对我的论文给予了热情帮助 提出了宝贵的意见 和建议 在此向他们表达我的感激之情 另外也感谢我的家人 他们的支持和鼓励使我能够在学校专心完成我的学业 北京交通大学专业硕十学位论文绪论 1 绪论 本章将介绍论文的课题背景和相关领域发展现状 然后介绍本人的工作和论 文的组织结构 1 1 课题背景 在当前环境下 全球正在经历着固定网络和移动网络的快速融合 移动互联 网的强劲发展和移动智能设备的迅速增长都为服务提供商带来极大的机遇和挑 战 新兴的移动智能设备拥有大型的 高清晰度的显示屏 高灵敏度的电容触摸 屏 有内嵌的百万像素的摄像头以及其他给我们带来很多设计和开发灵感的设备 资源 重要的是它们是持续在线 持续连接的应用设备 这使得新概念的通信功 能成为可能 在基于i p 网络的环境下 所有终端是对等 p e e r t o p e e r 实体 它使得 共享更加容易 共享的浏览 共享的电子白板 共享的游戏体验 共享的视音频 资源 在这样的情况下 i p 多媒体子系统0 pm u l t i m e d i as u b s y s t e m i m s 应运而 生 i m s 是一个全球性的 接入独立并且基于标准的i p 通道和业务控制体系 它 使得基于普通因特网协议的终端用户使用不同类型多媒体业务成为可能i l 2 0 1 1 年3 g 网络的推广已经取得了巨大的成果 4 gl t e 网络的到来带来的将 是比3 g 更快的速度体验 在这种移动网络环境飞速进步发展的环境下 运营商和 服务提供商在服务质量和服务多元化上将会进行更大的投入 高速网络的普及大大促进了i m s 的推广和发展 全球各大运营商都在积极部 署自己的i m s 服务 i m s 服务对用户的最终呈现就是搭载了i m s 客户端的移动终 端 移动客户端作为i m s 服务中的重要部分逐渐引起了各大厂商的重视 作为i m s 服务的最终体现 i m s 客户端直接与用户接触 因此 用户体验良好 功耗均衡 的高质量i m s 客户端的将会具有极大的市场 a n d r o i d 是互联网巨头g o o g l e 在2 0 0 8 年推出的全新的智能终端操作系统 凭 着其强大的资源优势以及业务服务的多元整合 a n d r o i d 推出以来就得到了业界的 普遍关注 加上a n d r o i d 操作系统的完全开源和免费 以及具有良好的可移植性和 可定制性 受到了各大终端制造商的极力追捧 进入2 0 1 2 年 a n d r o i d 设备的全 球市场占有率已接近5 0 a n d r o i d 移动操作系统的出现和快速兴起为i m s 客户端提供了完美的支撑 全 球各大终端厂商推出的优秀终端为i m s 客户端提供了良好的硬件平台 优秀软硬 件的支撑为i m s 移动客户端的发展提供了更广阔的空问 在软硬件平台资源极为 e 立交适态堂童些亟 堂位途塞绪论 可靠 市场前景无限广阔的前提下 这样一套i m s 移动客户端解决方案的研发就 被提上了同程 本文研究的课题来源于笔者所在实习公司阿尔卡特朗讯北京研发中心的研发 项目 i m s 移动通信客户端 该项目提供了一个跨平台的i m s 客户端解决方案 支持w i n d o w s a n d r o i d i o s 等主流终端操作系统 三大平台采用统一的架构进 行设计和丌发 共享底层协议栈代码 节约了开发成本 并提高了整套软件的可 维护性 该套客户端以阿尔卡特朗讯的i m s 平台为依托 旨在提供一系列的基于i p 网 络的多媒体通讯功能 包括网络联系人 状态呈现 即时消息 群组聊天 视音 频通话 视音频会议等高质量的服务 1 2 相关领域发展现状 在3 g 4 g 网络高速发展 网络融合不断加速的大背景下 世界各大通信厂商 纷纷推出i m s 通信网络解决方案 旨在提供强大的通信服务 提供统一的标准以 及与传统的电信网络无缝融合 国内外i m s 的部署均取得了很大的发展 目前很多运营商在电信设备商的支 持下 都在开始部署和实验i m s 平台 大部分的电信运营商在国际电信设备商巨 头的支持下已经开始部署或准备部署i m s 最终为用户呈现服务的i m s 客户端也 受到了网络及手机厂商的重视 未来i m s 以及基于i m s 的通信终端将会取得更大 的发展 i m s 标准是i m s 赖以生存和发展的基础 对于i m s 客户端 国际上的网络组 织与协会定义和演进了i m s 客户端规范 3 g p p t h e3 r dg e n e r a t i o np a r t n e r s h i pp r o j e c t 第三代合作伙伴计划 定义了 i m s 的架构和功能 如呈现 即时消息 群组管理 视音频会议等服务 3 g p p 定 义 i m s 客户端通过两个参考点访问i m s 网络 其他网络节点对i m s 客户端不可 见 所有的s i p 消息必须经过i m s 核心网 s i p 消息用来处理注册过程 会话控制 过程和事务处理过程 用户通过x c a p 协议来访问管理与网络服务相关的信息 o m a o p e n m o b i l ea l l i a n c e 丌放移动联盟 主要对移动服务规范进行定义 以确保i m s 的互联互通 o m a 中的呈现和可用性工作组定义了p r e s e n c es i m p l e 服务和x m l 文档管理服务 消息工作组定义了i ms i m p l e 服务 i e t f i n t e r n e te n g i n e e r i n gt a s kf o r c e 因特网工程任务组 则定义了实现i m s 客户端需要支持的协议 包括s i p 信令交互过程 s d p 消息服务参数协商 r t p 和m s r p 媒体流的建立 x c a p 协议对于x m l 文档的交互与管理等 j e 基窒垣太堂童些亟 堂位途塞绪论 在各个组织机构标准制定的前提下 i m s 移动客户端已经取得了很大的发展 不仅通信厂商和终端厂商都在致力于发展优秀的覆盖各个移动平台的客户端 很 多开源项目和厂商也都在不断尝试和探索 i m s 移动客户端的标准和架构正在走 向成熟 1 3 主要工作 本人从项目初期加入项目组 负责a n d r o i d 平台i m s 客户端和扩展底层协议 栈的开发工作 工作内容包括参与需求分析 概要和详细设计 编码实现等工作 负责的具体模块包括群组聊天 视音频电话 视音频会议等模块 本项目采用升 源协议栈进行开发 在原有开源协议栈的基础上进行完善和扩展 添加i n f o r e f e r 和携带混合数据类型p a y l o a d 的s i p 消息支持 配合阿尔卡特朗讯i m s 平台实现 了群组聊天 视音频会议等先进的功能 项目后期本人负责i m s 中间件的封装 本文针对a n d r o i d 平台的i m s 客户端的设计和实现 结合笔者在实际项目开 发过程中获得的经验 将从a n d r o i d 软件开发 i m s 客户端的功能特性 跨平台协 议栈的实现等出发点进行详细的阐述 1 4论文组织结构 论文的章节安排如下 第一章 绪论 首先阐明了课题的选题背景 并对相关领域的发展现状进行 介绍 然后简要说明了作者的主要工作 并陈述了论文的组织结构 第二章 关键技术的分析与研究 主要介绍了项目所涉及的相关技术和理论 知识 包括a n d r o i d 操作系统及软件开发架构 相关网络传输协议和开源协议栈的 采用等内容 第三章 i m s 客户端需求分析 从功能性需求和非功能性需求等方面介绍了 项目的需求分析 分模块阐述了i m s 客户端的具体功能需求 第四章 软件架构及概要设计 介绍了i m s 核心网的网络架构以及i m s 客户 端的分层架构设计和业务逻辑概要设计 第五章 详细设计及实现 主要描述了项日各个模块的详细设计和具体的实 现方法 包括协议栈的扩展 视音频媒体的实现 各功能模块协议和具体实现等 第六章 测试和优化 介绍了持续化集成框架和s i p 测试工具 并作出优化 第七章 总结 主要介绍了项目经验总结 当前存在的不足 优化方向以及 对项目未来发展的展望 e 塞銮迪厶堂童些亟 堂熊途塞苤丝遮苤的佥堑当鲤窥 2 关键技术的分析与研究 本章将对项目中所涉及的相关技术和理论知识做详细介绍 包括a n d r o i d 操作 系统及软件开发架构 相关网络传输协议及其特点 开源协议栈d o u b a n g o 的技术 分析等内容 2 1a n d r o i d 操作系统 a n d r o i d 是以l i n u x 为核心的操作系统 作为一款开放式的操作系统 主要适 用于便携式的智能终端设备 它由互联网巨头g o o g l e 和o m a 和领导 随着a n d r o i d 的不断完善和发展 a n d r o i d 平台的软件开发已经支持基于s d k s o f t w a r e d e v e l o p m e n tk i t 软件丌发工具包 和n d k n a t i v ed e v e l o p m e n tk i t 本地语言 丌发工具包1 混合开发的多种丌发方式 而不再是以前只能使用j a v a 丌发a n d r o i d 应用程序的单一局面 这意味着已有的优秀的c c 代码可以移植到a n d r o i d 平 台 提高a n d r o i d 应用程序的效率并实现底层代码跨平台的需求 除了o m a 之外 a n d r o i d 还拥有许多由全球各地开发者组成的开源社区来专 门负责开发a n d r o i d 应用程序和第三方a n d r o i d 操作系统来延长和扩展a n d r o i d 的 功能和性能 这大大增强了a n d r o i d 的生命力和活力 2 1 1a n d r o i d 系统架构 a n d r o i d 作为一个移动嵌入式操作系统 为了充分满足可移植 可定制 可扩 展等特性在架构上采用了分层的架构 如图2 1 所示 a n d r o i d 的体系结构分为四 层 从上到下依次是应用程序层 a p p l i c a t i o n 应用程序框架层 a p p l i c a t i o n f r a m e w o r k 系统运行库层 l i b r a r i e s 和a n d r o i d 运行环境 a n d r o i dr u n t i m e 以及 l i n u x 核一i 层 l i n u xk e r n e l 2 o 1 应用程序层 a p p l i c a t i o n a n d r o i d 最上层的应用是用j a v a 编程语言开发的 如a n d r o i d 系统预置的电话 联系人 短信 邮件客户端 浏览器 同历 地图等 这些应用被编译成d e x 文 件后运行在各自独立的d a l v i k 虚拟机上 也就是下面提到的运行时 r u n t i m e 层 韭 王箜垫厶堂童些亟 堂位 睑塞苤丝这盔的坌近生虹塞 图2 1 a n d r o i d 系统架构图 f i g u r e2 一l a n d r o i d s y s t e ma r c h i t e c t u r ed i a g r a m 2 应用程序框架层 a p p l i c a t i o nf r a m e w o r k a n d r o i d 提供了一个开放的丌发平台 使得开发人员很容易地创建一个个丰富 而创新的应用 丌发者可以灵活地通过a p i 使用硬件设备 发挥出硬件和平台的 优势 开发人员开发的应用可以与核心应用平等地使用框架层a p i 应用程序框架 简化了组件的重用 在框架安全限制内 应用问可以相互复用各自的组件模块 所有构建的应用可以由一套服务和系统组成 1 1 一套丰富而具有可扩展性的视图 v i e w 用来构建应用程序 包括列表 l i s t 网格 g r i d 文本框 t e x tb o x 按钮 b u l t o n 以及嵌入式w e b 浏览 器 e m b e d d a b l ew e bb r o w s e r 等 2 内容提供器 c o n t e n tp r o v i d e r 使得应用程序可以方便地访问其他应用的数 据 也可以给其它的应用程序提供标准的数据接口 3 资源管理器 r e s o u r c em a n a g e r 使得应用程序可以访问所需资源 如字符串 f s t r i n g 页面布局 l a y o u t 片 d r a w a b l e 等 4 1 通知管理器 n o t i f i c a t i o nm a n a g e r 使得应用程序可以在状态栏中显示自定 义的提醒信息 5 活动管理器 a c t i v i t ym a n a g e r 负责管理应用程序的生命周期 并且提供了 导航回退栈管理a c t i v i t y 之间的切换 a n d r o i d 操作系统中每一个应用程序都运行在一个独立的进程中 拥有一个单 j e 塞童适厶堂童些亟 堂僮途塞羞毽蕉苤的佥近当姐宜 独的d a l v i k 虚拟机实例 d a l v i k 的设计使得设备可以高效地运行多个虚拟机 d a l v i k 执行后缀为d e x 的文件 这种优化过的文件占用更少的内存空问 d a l v i k 是基于寄存器的 所有类都是由j a v a 编译器编译 通过s d k 中的 d x 工具转化 为d e x 文件 然后由虚拟机执行 3 系统运行库和a n d r o i d 运行环境 l i b r a r i e sa n da n d r o i dr u n t i m e a n d r o i d 包含用于底层系统调用的c c 运行库 这些接口通过应用程序框架 层暴露给开发人员 这里列出一些核心库 1 从b s d 继承而来的标准c 系统函数库 专门为嵌入式l i n u x 设备定制 2 1 基于p a c k e t v i d e o so p e n c o r e 的多媒体库 该库支持多种音频和视频格式 的回放和录制 同时支持静态图像 支持的格式有m p e g 4 h 2 6 4 m p 3 a a c a m r j p g p n g 等 3 1s u r f a c em a n a g e r 管理显示子系统 提供应用程序中2 d 和3 d 图像的无缝 拼接 4 1l i b w e b c o r e 支持a n d r o i d 浏览器和嵌入式w e b v i e w 的现代w e b 浏览器 引擎 5 13 dl i b r a r i e s o p e n g l e s1 0 a p i s 的一个实现 该库使用硬件加速 若可用 或者高度优化的3 d 软件光栅 6 1f r e e t y p e 支持位图和矢量字体渲染 7 1s q l i t e 适用于移动应用程序的强大的轻量级关系型数据库引擎 4 l i n u x 核心层 l i n u xk e r n e l a n d f o i d 的核心系统服务依赖于l i n u x 2 6 内核 而所提供的核心系统服务如下 所述 1 安全 生 s e c u r i t y 2 1 内存管l 里 m e m o r ym a n a g e m e n t 3 进程管理 p r o c e s sm a n a g e m e n t 4 1 网络协议栈 n e t w o r ks t a c k 5 1 驱动模型 d r i v e rm o d e l l i n u x 内核也同时作为硬件与软件架构之间的抽象层 a b s t r a c t i o nl a y e r 2 1 2a n d r o i d 应用程序开发 a n d r o i d 应用层主要由四个基本组件组成 分别是 话 j a c t i v i t y 用于展示 界面和用户交互功能的基本组件 服务 s e i c e 处理后台运行的逻辑 广播接收 器 b r o a d c a s t r e c e i v e r 操作系统中应用内部和应用之间传递数据的机制 提高了 i e 塞窒适厶鲎童些亟 堂位迨塞苤丝这苤魈坌近当婴塞 消息管理的效率并使程序的耦合度大大降低 意 i n t e n t 消息传递的载体 在 以上组件之问传递有效数据 1 a c t i v i t y a n d r o i d 操作系统中 a c t i v i t y 是程序的基本组件 几乎所有应用程序的流程 都运行在a c t i v i t y 之中 a c t i v i t y 是开发者遇到的最频繁最基本的模块之一 在 a n d r o i d 的程序当中 a c t i v i t y 一般代表手机屏幕的一屏 多个a c t i v i t y 之问可以进 行相互跳转和切换 在跳转和切换过程中可以通过i n t e n t 发送和返回数据 当打开一个新的a c t i v i t y 时 之前一个a c t i v i t y 会被置为暂停状态 并且压入 历史堆栈中 用户可以通过回退操作返回到以前打开过的a c t i v i t y 由于a n d r o i d 会 把每个应用的开始到当前的每一个屏幕保存在堆栈中 丌发者可以选择性的移除 一些没有必要保留的屏幕 a c t i v i t y 的生命周期由a n d r o i d 系统进行维护 开发者 要理解其生命周期各阶段的作用 对a c t i v i t y 状态的保存和恢复 以及跳转和数据 传输做有效的管理 2 s e r v i c e s e r v i c e 是a n d r o i d 系统中的基本组件之一 与a c t i v i t y 的级别等同 但是它 不提供显示机制 只能后台运行 s e r v i c e 是没有界面的长生命周期的代码 可 以在多种场合的应用中使用 例如多媒体文件的后台播放 周期性地检测s d 卡上 文件的变化 后台记录设备地理信息位置的改变等等 3 b r o a d c a s t r e c e i v e r b r o a d e a s t r e c e i v e r 是a n d r o i d 操作系统中一种广泛运用的在应用程序之间和 程序内部传输信息的机制 b r o a d c a s t r e c e i v e r 是对b r o a d c a s t 发送出来的信息进行 过滤接受并响应的一类组件 可以使用b r o a d c a s t r e c e i v e r 来让应用对一个外部的 事件做出响应 例如 当电话呼入这个外部事件到来的时候 可以捕获到状态的 转变并进行相应的逻辑进行处理 或者当下载 个程序成功完成的时候 进行逻 辑处理并弹出通知 采用b r o a d c a s t r e c e i v e r 机制可以使应用程序内部解耦 也可以方便地在应用 程序之间传递消息 重要的是这种方式在a n d r o i d 系统定义了标准的b r o a d c a s t 类 型 开发者可以声明注册标准的r e c e i v e r 类别来接受系统消息和事件 进行处理 4 i n t e n t i n t e n t 是一个将要执行的动作的抽象的描述 通常作为参数的载体使用 i n t e n t 协助完成a n d r o i d 各个组件之f h j 的通讯 负责对应用中一次操作的动作和动作涉 及的数据参数进行描述 a n d r o i d 则根据此i n t e n t 的描述 负责找到对应的组件 将i n t e n t 传递给调用的组件 并完成组件的调用 因此 i n t e n t 在这里起着一个媒 体中介的作用 提供组件互相调用的相关信息 使调用者与被调用者之间解耦 j 立交迫厶堂童些亟 堂僮途塞苤毽撞垄的佥蚯生 近究 2 1 3 a n d r o i d 的数据持久化 a n d r o i d 操作系统中 数据的持久化官方提供了四种方法 分别为 s h a r e d p e r f r e n c e 文件存储 s q t e 数据库 网络存储 1 s h a r e d p e r f r e n c e p r e f e r e n c e s 从其保存数据的结构来分析 这是一个相对较轻量级的存储数据的 方法 类似于其他环境丌发中常用的i n i 文件保存软件的配置信息 同样在 a n d r o i d 平台常用于数据结构较简单的参数设置 应用程序丌发中通过c o n t e x t 的 g e t s h a r e d p r e f e r e n c e s 方法获取p r e f e r e n c e s 对象来读写数值 这个方法通过设置唯 一的键值 k e y 来使得同一个程序内的其它模块共享数据 如果不需要与其它模块 共享数据 可以使用a c t i v i ty g e t p r e f e r e n c e s 0 方法获取p r e f e r e n c e s 对象保持数据私 有 p r e f e r e n c e s 这种数据持久化的方式最终是以x m l 文件的方式存储在每个程序 的私有文件地址的 a n d r o i d 系统规定每个应用的私有文件只能由所属应用访问 保证数据存储的安全性 2 文件存储 a n d r o i d 在文件存储上可以分为两种 一种是用a n d r o i d 提供的i oa p i 来读写 文件 另一种是直接用j a v a 的标准i o 包来读写文件 第一种方式是a n d r o i d 平台特有的方式 在默认的状态下 文件不能在不同的 应用问共享 文件存储在应用对应的私有文件地址 写入文件 调用c o n t e x t 的 o p e n f i l e o u t p u t 方法根据指定的路径和文件名来创建文件 这个方法会返回一个 f i l e o u t p u t s t r e a m 对象 读取文件 调用c o n t e x t 的o p e n f i l e i n p u t 方法通过制定的 路径和文件名来返回一个标准的j a v af i l e l n p u t s t r e a m 对象 第二种方式是传统的 存取文件的方法 程序可以指定任意具有访问权限的路径对文件进行存取 3 s q l i t e 数据库 s q l i t e 是一款轻型的数据库 是遵守a c i d 的关联式数据库管理系统 它是 为嵌入式系统设计的关系数据库 资源占用低 操作简单方便 s q l i t e 数据库能 够支持w i n d o w s l i n u x u n i x 等主流的操作系统 同时能够跟很多程序语言相结合 例如c p h p j a v a 等 比起m y s q l p o s t g r e s q l 这两款世界著名的丌源数据库 米讲 它的处理速度毫不逊色 4 网络存储 应用程序通过网络来获取和保存数据资源 这个方法需要设备保持网络连接 状态 所以相对存在一些限制 不过在移动互联网时代 网络存储和云存储的应 用是不可或缺的 北互蔓箜堡噬兰童些亟 堂位途塞 苤毽遮苤的佥近生逝窥 2 1 4a n d r o i dn d k 开发 a n d r o i dn d k n a t i v ed e v e l o p m e n tk i t 是一套丌发工具包 允许a n d r o i d 应用 开发者嵌入从c c 源代码文件编译来的本地机器代码到各自的应用软件包中 n d k 的引入给应用开发者带来了很大的好处 1 n d k 提供了一系列的工具 帮助开发者快速丌发c c 的动态库 并能 自动将动态链接库文件和j a v a 程序一起打包成a p k 文件 这些工具对开 发者的帮助是巨人的 2 n d k 集成了交叉编译器 并提供了相应的m k m a k ef i l e 文件隔离c p u 平台 a b i 等差异 开发人员只需要简单修改m k 文件 指出 哪些文件 需要编译 编译特性要求 等 就可以编译出相应的动态链接库 使用n d k 开发者可以较方便地编写和编译本地代码 使大规模地移植优秀本 地代码和底层代码的跨平台成为可能 i m s a n d r o i d 客户端中的底层协议栈即为c 和c 编写 正是n d k 的使用使 得协议栈运行在本地代码里 提高了程序运行的效率并降低了功耗 2 2 相关网络传输协议 本节介绍a n d r o i di m s 客户端使用的主要协议以及各种协议的特点 2 2 1s i p 协议 s i p s e s s i o ni n i t i a t i o np r o t o c 0 1 肛个应用层的信令控制协议 用于创建 修改 和释放一个或多个参与者的会话 这些会话可以是i n t e m e t 多媒体会议 i p 电话或 多媒体分发 会话的参与者可以通过组播 m u l t i c a s t 网状单播 u n i c a s t 或两者的混 合体进行通信l 4 i s i p 的一个重要特点是它不定义要建立的会话的类型 而只定义应该如何管理 会话 有了这种灵活性 也就意味着s i p 可以用于众多应用和服务中 包括交互 式游戏 音乐和视频点播以及语音 视频和w e b 会议 s i p 消息是基于文本的 因而易于读取和调试 新服务的编程更加简单 对于设计人员而言更加直观 s i p 如同电子邮件客户机 样重用m i m e 类型描述 因此与会话相关的应用程序可以 自动启动 s i p 重用几个现有的比较成熟的i n t e r n e t 服务和协议 如d n s r t p r s v p 等 不必再引入新服务对s i p 基础设施提供支持 因为该基础设施很多部 分已经到位或现成可用 9 韭越垣太堂童些亟 堂位途塞 羞毽这盔的坌堑生迓究 2 2 2s d p 协议 s d p s e s s i o nd e s c r i p t i o np r o t o c 0 1 即会话描述协议 为会话通知 会话邀请和 其它形式的多媒体会话初始化等目的提供了多媒体会话描述 5 1 会话目录用于协助多媒体会议的通告 并为会话参与者传送相关设置信息 会话描述协议即用于将这种信息传输到接收端 会话描述协议完全是一种会话描 述格式 它不属于传输协议 它只使用不同的适当的传输协议进行传输 包括会 话通知协议 s a p 会话初始协议 s i p 实时流协议 i 汀s p m i m e 扩展l 办议的电 子邮件以及超文本传输协议 h t t p 2 2 3x c a p 协议 x c a p t h ex m lc o n f i g u r a t i o na c c e s sp r o t o c 0 1 i nx m l 配置访问协议 是一种 应用层协议 它允许一个客户端来读 写 修改和删除应用程序配置数据存储在 服务器上的x m l 格式1 6 j x c a p 映射x m l 文件子树和元素属性到h t t pu r i s 使这些组件可以直接使 用h t t p 协议的客户端访问 在具体使用中 每个应用程序和每个应用程序的用 户有它们自己的目录 整个系统是以层次化的结构存储 以x c a pr o o t 作为顶 层 应用程序作为这个根的直接子节点 用户构成应用程序的子节点 每个用户 目录下有一组x m l 文件 2 2 4m s r p 协议 m s r p m e s s a g es e s s i o nr e l a yp r o t o c 0 1 1 日会话中继协议 是一个基于文本 面 向连接的协议 用于交换m i m e 格式的二进制内容 特别是用于实现即时消息内 容的传输交互过程 7 j m s r p 协议被设计为一种非独立的协议 与s i p 协议配合应用 通过s i p 协 议的会话建立过程来协商m s r pu r i s 和m s r p 扩展的支持能力 然后在协商完 成后在媒体平面上完成内容交换工作 m s r p 协议属于应用层协议 底层基于 t c p t l s 等面向连接的传输层 安全 协议 可以用于实现大消息模式和会话模 式的即时消息传输过程 在a n d r o i di m s 客户端中 使用m s r p 协议完成即时通讯 群组聊天和文件 传输等功能 1 0 韭 己銮 坠厶 生兰 亟j 羔羔互0 垒塞 苤毽 量鲞曲坌逝当丛宣 2 3 开源协议栈d o u b a n g o d o u b a n g o 是一个符合i m s r c s 规范并能用于嵌入式和 桌而系统的 源框架 该框架使用a n s c i c 编写 具有很好的可移植性 其设计非常轻便能耗很低 能 够有效地工作在低内存和低处理能力的嵌入式系统上f 8 2 3 1 跨平台支持 由于d o u b a n g o 是基于标准a n s c i c 编写 具有极高的可移植性 可以在不 同的操作系统平台编译生成本地代码 具有很高的执行效率 f i g u r e2 2 t h eo ss u p p o r t e db yd o u b a n g o 如图2 2 所示 d o u b a n g o 目前支持的操作系统有 1 w i n d o w sm o b i l e 5 0a n dl a t e r w i n d o w sx p v i s t a 7 2 g o o g l e a n d r o i d 3 1s y m b i a n 6 0 4 m a co sx i p h o n e i p a da n di p o dt o u c h 5 u n i x l i k es y s t e m s s o l a r i s u b u n t u 6 e m b e d d e dl i n u xs y s t e m s 2 3 2支持多种高级语言接口 d o u b a n g o 在纯a n s c i c 编写的协议栈代码上用标准c 封装了一层面向对 象抽象的包装 w r a p 提供统一的对外接口 1 s i p 层抽象 s i p s t a c k s i p s e s s i o n s i p m e s s a g e s i p e v e n t s i p u r i s i p c a l l b a c k 2 媒体层抽象 m e d i a s e s s i o n m g r m e d i a c o n t e n t p r o x y c o n s u m e r p r o x y p r o d u c e r 3 m s r p 层抽象 m s r p s e s s i o n m s r p m e s s a g e m s r p e v e n t m s r p c a l l b a c k l l e 塞銮堑叁堂童些亟 堂位途塞苤鲑这查的坌近生婴塞 4 1x c a p 层抽象 x c a p s e l e c t o r x c a p m e s s a g e x c a p e v e n t x c a p s t a c k 为了适配各个操作系统平台的编程语言 使用s w i g 对d o u b a n g o 的w r a p 抽 象层生成了多种语言 的b i n d i n g 接口 目前支持的平台语言 有 1 m i c r o s o f t n e t c v b n e t 2 j a v a w i t hs u p p o r tf o rg o o g l e d a l v i kv m 3 p e r l 4 p y t h o n 5 r u b y 在a n d r o i di m s 客户端中主要用到了j a v a 的j n i 接口 这样与a n d r o i d 的上层 应用编程语言无缝结合 提高了丌发的效率 1 2 韭 王銮必堂童些亟 匕堂位途塞 丛墨窒应堂益盛坌逝 3 i m s 客户端需求分析 本章将从功能性需求和非功能性需求两方面对a n d r o i di m s 客户端进行需求 分析 首先对功能模块做出简要分析 然后分模块详细阐述各功能点的需求 最 后讨论a n d r o i di m s 客户端的非功能需求 3 1 功能模块需求分析 本节介绍i m s 客户端功能模块的划分 然后分模块详细阐述各功能点的需求 3 1 1i m s 客户端功能模块划分 如图3 1 所示 i m s 客户端的主要功能模块包括 身份认证模块 个人信息模 块 网络地址簿模块 历史记录模块 即时消息模块 群组聊天模块 文件传输 模块 视音频电话模块 视音频会议模块 3 1 2身份认证模块 图3 1 功能模块划分图 f i g u r e3 1 f u n c t i o nm o d u l em a p 身份认证是i m s 客户端的重要模块 该模块起到了获取配置信息 验证用户 身份等重要作用 i m s 客户端身份认证模块的主要功能有 必变通太堂童业亟 堂位途塞 丛墨窒庄猫盂盛佥近 1 登录 读取配置信息 初始化配置参数 使得i m s 客户端注册到i m s 网络 完成与 网络侧的初始的数据交换 2 注销 注销i m s 网络 释放连接 刷新客户端所登录的账号在i m s 网络的登录状态 为离线 3 重注册 在登录状态下 读取配置信息里的时问问隔参数 每隔该时间向i m s 网络重 发注册包 保持心跳 保证客户端的登录状态 4 自动注册 在掉线情况下 可以尝试重新注册i m s 网络 当手机网络恢复时 自动注册 i m s 网络 当手机切换网络连接方式时 如3 g 切换成w i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年勘察设计注册土木工程师考试(水利水电工程专业基础)全真模拟试题及答案
- 2026年企业中层管理人员管理能力综合模拟试题及答案
- 港口码头外来船舶作业安全监管管理制度
- 学校食堂从业人员健康管理自查整改报告
- 机械制造车间技术员工艺标准执行与异常处理能力考核表
- 农业技术员农事作业及新技术应用绩效评估表
- 物流运输延误催办及回复函(5篇)范文
- 摄影导演作品差异化绩效考核表
- 质量反馈通知函检测结果反馈(5篇)
- 技术支持协议签订联系函4篇范本
- 银川创投集团全资子公司银川商功人工智能科技有限公司公开招聘人工智能工程师等专业技术人员笔试备考试题及答案解析
- 血管内导管相关性血流感染预防与诊治指南
- 2026榆林能源集团有限公司招聘工作人员笔试参考题库及答案
- 麻醉应急预案措施方案(3篇)
- 2027贵州航天电器秋季招聘284人考试参考题库及答案解析
- 2026年上海高考英语真题试卷(春考+秋考)完整版(含答案、听力原文、详细解析、满分范文)
- 2026年产前筛查与诊断知识课件
- 2026年秋季开学高二学生:学业水平考试备考课课件
- 2026年秋季开学高三拒绝躺平心理减压课件
- 考研形近易混词汇 (二)
- 矿产资源勘查实施方案编写提纲及解读
评论
0/150
提交评论