已阅读5页,还剩52页未读, 继续免费阅读
(通信与信息系统专业论文)android平台多媒体通信客户端研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着移动互联网的发展,智能手机已成为最重要的终端设备,由此产生了以 a n d r o i d 平台为代表的新一代操作系统,基于该平台的分布式应用成为移动通信 技术领域的研究热点。在此背景下,本论文以i n s t l i n k 多媒体通信系统客户端为 基础,重点研究如何在智能手机系统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 平台相对于其他智能手机平台的优势。然后基于i n s t l i n k 多媒体通信系统提出a n d r o i d 平台多媒体通信系统客户端的解决方案,客户端采 用了分层设计。论文的最后利用a n d r o i d 提供的s d k 和n d k 开发工具编程实现 了a n d r o i d 平台多媒体通信系统客户端,基于运行性能的考虑,客户端的实现采 用了j a v a 加c 的混合编程。客户端基于x m p p ( e x t e n s i b l em e s s a g i n ga n dp r e s e n c e p r o t o c 0 1 ) 协议,数据传输使用u d t ( u d p b a s e dd a t at r a n s f e rp r o t o c 0 1 ) 协议实现了 应用层可靠传输,还使用i c e ( i n t e r a c t i v ec o n n e c t i v i t ye s t a b l i s h m e n t ) 协议实现了两 个客户端之间的p 2 p ( p e e r - t o p e e r ) 通信。 关键词;智能手机 a n d r o i d多媒体通信i n s t l i n k a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fm o b i l ei n t e m e t , t h es m a r tp h o n eh a sb e c o m et h em o s t i m p o r t a n tt e r m i n a l ,w h i c hl e a d st or e l e a s eo fn e wo p e r a t i n gs y s t e m sw i t ha n d r o i d p l a t f o r ma sr e p r e s e n t a t i v e d i s t r i b u t e da p p l i c a t i o n sb a s e do na n d r o i dp l a t f o r mh a v e b e c o m et h er e s e a r c hh o t s p o t si nm o b i l ec o m m u n i c a t i o nf i e l d i ns u c hc o n t e x t ,t h i s t h e s i sm a i n l ys t u d ym u l t i m e d i ac o m m u n i c a t i o ns o l u t i o no nt h ea n d r o i dp l a t f o r m b a s e do l lt h ei n s t l i n km u l t i m e d i ac o m m u n i c a t i o ns y s t e m f i r s t l y ,t h es t r u c t u r eo ft h ea n d r o i dp l a t f o r ma n dt h ew a yt od e v e l o p i n g a p p l i c a t i o n sf o ri ta r ei n t r o d u c e d ,a n da d v a n t a g e so ft h ea n d r o i dp l a t f o r mo v e ro t h e r s m a r tp h o n ep l a t f o r m sa l ee x p o u n d e d s e c o n d l y ,t h em u l t i - m e d i ac o m m u n i c a t i o n s o l u t i o no nt h ea n d r o i dp l a t f o r mi sp r o v i d e db a s e do ni n s t l i n km u l t i m e d i a c o m m u n i c a t i o ns y s t e m ,w h e r eh i e r a r c h i c a ld e s i g ni se m p l o y e df o rc l i e n t f i n a l l y , w e i m p l e m e n tt h es c h e m et h r o u g hp r o g r a m m i n gu t i l i z i n gt h es d k a n dn d k d e v e l o p m e n t t o o l sp r o v i d e db ya n d r o i d t a k i n ga c c o u n to fr u n n i n gp e r f o r m a n c e ,t h ec l i e n ti s r e a l i z e dw i t hj a v aa n dch y b r i d l yu s e d t h ec l i e n ti sb a s e do nx m p p ( e x t e n s i b l e m e s s a g i n ga n dp r e s e n c ep r o t o c 0 1 ) p r o t o c o l ,a n d t h e a p p l i c a t i o nl a y e r r e l i a b l e t r a n s m i s s i o ni sr e a l i z e db ye m p l o y i n gu d t ( u d p - b a s e dd a t at r a n s f e rp r o t o c 0 1 ) p r o t o c o l i nd a t at r a n s f e r m o r e v e r , i c e ( i n t e r a c t i v ec o n n e c t i v i t ye s t a b l i s h m e n t ) p r o t o c o li sa p p l i e dt oi m p l e m e n tp 2 p b e t w e e nt w oc l i e n t s k e y w o r d s :s m a r tp h o n e s a n d r o i dm u l t i - m e d i ac o m m u n i c a t i o ni n s t h n k 第一章绪论 第一章绪论弟一旱珀t 匕 1 1 研究背景及意义 美国调研机构r o y a lp i n g d o m 在2 0 1 1 年1 月1 2 日发布了2 0 1 0 全球互联网报 告【l 】,对2 0 1 0 年全球互联网发展状况做了总结。报告显示,截止2 0 1 0 年6 月, 全球网民数量为1 9 7 亿。另根据中国互联网络信息中心( c n n i c ) 于2 0 1 1 年1 月发布的第2 7 次中国互联网络发展状况统计报告【2 j 显示截止2 0 1 0 年1 2 月, 中国网民规模达到4 5 7 亿,较2 0 0 9 年底增加7 3 3 0 万人;其中手机网民规模达到 3 0 3 亿人,较2 0 0 9 年底增加了6 9 3 0 万人;手机网民在总体网民中的比例进一步 提高,从2 0 0 9 年末的6 0 8 提升至6 6 2 。从这些数据可以看出,中国互联网络 规模越来越大,网民数量越来越多,并且通过移动终端上网的网民所占比例增长 迅速,由此可以推断出移动终端和移动互联网在未来的互联网中扮演的角色将会 越来越重要,使用移动终端接入互联网的比重会越来越大。 互联网发展到今天,我们早已进入信息时代,我们每天都要获取、使用、处 理各种各样的信息,这些信息包括文字、图片、音频、视频等等。更多时候我们 接触的不仅仅是单一的某种信息,而是各种信息都融合在一起,我们称这种信息 为多媒体信息,因此可以说我们已经进入了多媒体信息时代。 在多媒体信息时代,多媒体信息系统越来越受到重视,多媒体系统的应用也 多种多样:现在的智能终端可以支持语音和视频通话;我国的三网融合也正在试 点中;v o i p ( v o i c eo v e ri n t e r n e tp r o t o c 0 1 ) t 3 】已经得到广泛的应用;视频点播已经成 为有线电视网络的基本业务。其他的多媒体应用还有多媒体会议、远程教学、远 程医疗、文件传输、信息空间等等。如何将这些多媒体应用集中在一个统一的多 媒体通信系统中呈献给终端用户是一个研究重点,也是一个研究热点。同时,在 移动互联网越来越重要的今天及未来,如何在移动平台实现一个集成多种多媒体 业务的多媒体通信系统也是一个需要研究的热点。 鉴于移动互联网良好的发展趋势以及集成多种多媒体业务的多媒体通信系统 的应用前景,本论文主要研究在移动操作平台实现多媒体通信系统。由于精力有 限,论文仅选取由g o o g l e 和几十个手机相关企业建立了开放手机联盟( o p e n h a n d s e ta l l i a n c e ) 4 1 推出的a n d r o i d 5 1 平台作为研究对象。a n d r o i d 是专为移动设 备设计的软件开放平台,a n d r o i d 平台拥有其他平台所没有的很多优势,例如, 系统的开放性、得到众多的手机设备商和移动运营商的支持、丰富的应用软件以 2 a n d r o i d 平台多媒体通信系统研究 及良好的性能,因此,a n d r o i d 平台在未来的移动终端领域有广阔的前景。 1 2 研究现状 基于移动终端平台的多媒体通信系统目前只是处于初步阶段,在多媒体通信 方面还没有应用级的产品出现。在移动终端越来越普及的将来,基于移动终端平 台的多媒体通信系统的研究显得很有必要。 随着计算机网络的发展,p c 平台的多媒体通信早已实现,并且取得了很好的 效果,在我们的日常生活中也已经经常使用。例如我们经常使用的q q 和s k y p e 等软件,通过q q 或s k y p e 等软件,可以让互联网上两个千里之外的用户免费互 发即时消息或者是交谈。但是手机平台的多媒体通信却发展缓慢,目前,在移动 手机平台还没有成熟免费的多媒体通信应用出现,虽然现在的3 g 手机已经实现 视频通话,但是要向电信运营商支付高额的费用。分析其原因,主要因为有以下 三个方面: 电信运营商:手机终端都是无线接入的,但是实际上只是手机到基站之间 的数据是无线传输的,剩下的部分全部都是经过有线传输。我们在使用手 机打电话的时候,有线数据传输使用的网络是都是运营商铺设的,所以我 们要为打电话给运营商支付高昂的话费,这就是电信运营商盈利的方法。 所以,如果在手机平台不使用电信运营商提供的网络,而使用几乎免费的 面向大众的互联网来实现几乎能免费通话的通信系统,这是电信运营商不 想看见的。所以在很长一段时间内,电信运营商一旦发现这种应用,都是 立即封杀。 网络访问能力受限:我们平时打电话的数据通道( 采用g s m 语音编码的 声音) 需要大概7 q kb s 的数据传输速率就能实现双方直接通话。在2 g 、 2 5 g 的网络中,我们可以尝试使用g p r s 实现全双工的通信,但是g p r s 的速度很不稳定,时快时慢,而且通信信道不对称,上行速度慢,下行速 度快,无法满足全双工多媒体通信所需最小带宽。其次,中国移动的g g s n ( g a t e w a yg p r ss u p p o r tn o d e ) 网关大多采用s y m m e t r i cn a t 的网络地 址转换类型,很难使用传统的方式进行p 2 p 的打洞操作。最后,在2 g 2 5 g 时代,移动手机接入互联网的方式很受限,因此访问互联网的能力也受到 很大的制约,无法充分的访问网络上丰富的资源。 手机平台封闭:由于传统手机的封闭性,当我们拿到一部新手机的时候, 手机上能使用的程序已经完全确定,我们不可能将自己的应用程序添加到 手机中。即使在当前的智能手机上能添加自己开发的应用程序,但是由于 第一章绪论 3 很多智能手机操作系统的封闭性,我们仅仅只能使用手机操作系统提供商 提供给我的有限的a p i 进行应用程序开发,使得我们不能充分利用手机 硬件的功能,应用程序开发受到很大限制。 由于以上种种因素,一直没有类似于p c 平台的多媒体通信系统出现。但是, 随着移动互联网的不断发展,以及智能手机平台越来越多,使得在手机平台开发 类似于p c 平台的多媒体通信系统成为可能。 首先,3 g 网络已经在国内大规模应用,4 g 技术已经趋近成熟,已经开始试 点运行,5 g 理论研究也已经完成。相对于2 g 、2 5 g 时代使用g p r s ( g e n e r a lp a c k e t r a d i os e r v i c e ) 技术连接网络的方式,3 g 网络的无线上网速度已经有一个质的飞 跃,完全可以满足全双工多媒体通信的带宽要求。于此同时,w i f i 技术已经很成 熟,而且很多地方已经有免费的w i f i 网络可以使用,更是大大的加强了手机终端 随时随地接入互联网的能力。所以,网络接入问题已经不再是阻碍手机平台多媒 体通信系统发展的因素。 其次,现在智能手机操作系统越来越多,其中a n d r o i d 系统是完全开放的手机 操作系统,我们能充分利用系统资源开发出各种各样的应用程序。而且在进入3 g 以及未来的4 g s g 以后是一个无线网络和以i p 网络为主的骨干通信网络,手机 可以自由的接入互联网,这大大削弱了电信运营商对手机终端的控制能力,电信 运营商将仅仅是“管道提供者 。 由于移动互联网的不断发展以及移动终端普及率越来越高,移动手机平台的 v o i p 技术一直都是研究热点 6 1 8 1 ,移动手机平台多媒体通信的研究也将成为重点, 怎样实现手机平台实现多媒体通信还有许多难点需要解决,比如如何解决无线链 路丢包率很大的问题,如何实现手机到手机的p 2 p 通信,这些问题在本论文的研 究中都得到了很好的解决。 1 3论文的主要工作 本文主要研究基于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 平 台多媒体通信系统的解决方案,最后会提出实现方法。论文的主要工作有: 1 ) 研究a n d r o i d 平台的结构体系,利用g o o g l e 提供的s d k 和n d k 开发 a n d r o i d 平台的第三方应用程序。 2 ) 介绍多媒体通信系统的概念,并结合西安电子科技大学计算机网络与信 息安全教育部重点实验室的i n s t l i n k 多媒体通信系统客户端介绍具体的 多媒体通信系统的实现,并基于i n s t l i n k 系统客户端提出基于a n d r o i d 平 4 a n d r o i d 平台多媒体通信系统研究 台的多媒体通信系统的解决方案。 3 ) 编程实现a n d r o i d 平台多媒体通信系统客户端解决方案。 1 4 论文的内容安排 本文主要研究基于移动终端系统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 平台进行第三方软件开发。 第三章:首先介绍了多媒体通信系统的概念和发展历史,然后介绍了西安电 子科技大学计算机网络与信息安全教育部重点实验室的i n s t l i n k 多媒体通信系统 客户端的主要结构和框架。并基于i n s t l i n k 系统客户端提出基于a n d r o i d 平台的多 媒体通信系统的解决方案。 第四章:编程实现a n d r o i d 平台多媒体通信系统客户端解决方案。 第五章:对本文做出总结,并分析本论文的不足之处,以及以后需要改进的 地方,最后做出对这个研究课题的一些展望。 第二章a n d r o i d 平台研究及分析 5 第二章a n d r o i d 平台研究及分析 2 1a n d r o i d 平台介绍 a n d r o i d 是由g o o g l e 联合其他3 3 家手机厂商( 包括摩托罗拉、华为、宏达电、 三星、l g 等) 、手机芯片供应商、软硬件供货商、移动运营商组成的开放手机联 盟( o p e nh a n d s e ta l l i a n c e ,o h a ) 于2 0 0 7 年1 1 月5 日推出的开放手机软件平台, 目前o h a 已经有六十多加企业参与。 o h a 的宗旨是彻底改变当今移动世界的操作模式,制定一个开放的平台。 a n d r o i d 作为g o o g l e 企业战略的重要组成部分,将进一步推进“随时随地为每个 人提供信息 这一企业目标的实现。g o o g l e 的目标的让移动通信不依赖于设备甚 至平台,基于此,a n d r o i d 将进一步补充g o o g l e 长期以来的移动发展战略:通过 与全球各地的手机厂商和移动运营商结成合作伙伴,开发既有用又有吸引力的移 动服务。因此使用a n d r o i d 平台的手机的核心程序和第三方程序享有平等的权利 访问手机的各种功能 9 1 。 2 2a n d r o i d 平台的优势 当前主要的移动智能操作系统有a n d r o i d 、w i n d o w sm o b i l e 1 0 1 、s y m b i a n t l l l 、 i p h o n eo s t l 2 1 、b l a c k b e r r yo s t l 3 1 和p a l mw e b o s 1 4 j 等。与其他智能手机操作系统相 比,a n d r o i d 平台开发应用程序有以下优点。 2 2 1 开放性 相对于其他智能操作系统的封闭性,a n d r o i d 是一个真正意义上的开放性移 动平台。a n d r o i d 源代码是完全开源的,g o o g l e 已将大部分的a n d r o i d 代码发布 于a p a c h e 软件许可协议下。a p a c h e 软件许可协议允许任何人扩展具有专利性质 的程序,而不必将扩展的程序提交回开源社区,任何人都可以直接下载a n d r o i d 源代码,把它编译成自己的系统,甚至你也可以修改它。 首先,a n d r o i d 平台的开放性给应用程序的开发提供了一个更大的创新空间。 由于任何人都可以免费下载a n d r o i d 源代码,应用程序开发者可以研究源代码的 结构,开发出更多性能高效、具有创新性的应用程序,这是其他智能操作系统所 不具有的。其次,相对于其他系统的封闭性,开源能够提供更好的安全性能;第 6 a n d r o i d 平台多媒体通信系统研究 三,因为a n d r o i d 是开源的,允许第三方修改源代码,使得厂家可以根据自己的 硬件特性更改底层源代码,从而能够更好的适应硬件,完全发挥出硬件的性能。 2 2 2 所有应用程序平等 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 p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) ,正是因为如此, a n d r o i d 平台所有应用程序能够完全平等的使用硬件资源。如果抛开这个虚拟机, a n d r o i d 平台运行的所有程序,包括核心应用和第三方应用是完全平等的。因此, 手机用户甚至可以将系统中默认的电话拨号软件替换成其他第三方的电话拨号软 件,这些功能在其他手机平台几乎是不可能实现的。 由于这种应用程序平等的特性,所有应用程序可以平等的享有手机硬件提供 的性能。对于开发者来说,这将大大拓宽可开发应用程序的范围,向用户提供广 泛的应用和服务;对于用户来说,用户能够完全依照自己的喜好选择应用程序, 例如,用户可以改变主界面显示窗口的内容,或者将手机中任意的应用替换成所 需要的其他应用,而这些功能在别的手机平台几乎是不可能的。 2 2 3 应用程序无界限 a n d r o i d 平台打破了应用程序之间的界限,使得应用程序可以相互调用。首 先,应用程序可以通过系统提供的标准a p i 访问核心移动设备,开发出具有各种 功能的应用程序;同时,应用程序还可以发布它们自身所具有的功能块,而其他 应用程序则可以使用这些已发布的功能模块。例如,拨号程序可以声明它具有拨 号的功能,当其他应用程序想调用拨号功能,只需要启动这个拨号程序就行了。 声明具有拨号功能只需要一句简单的声明就可以实现,具体如下所示。 i n s t a l ln e w s o f t w a r e :w o r kw i t h 后a d d 。单击,在弹出的窗口依次输入:e g a n d r o i d 1 2a n d r o i d 平台多媒体通信系统研究 p l u g i n 和h t t p s :d l - s s l g o o g l e t o m a n d r o i d e c l i p s e ,然后在n a m e 中的 d e v e l o p e r st o o l s ;选中。然后单击n e x t 到完成。 a d t 是a n d r o i d 开发工具,是在集成的环境e c l i p s ei d e 中构建 a n d r o i d 应用程序插件,a d t 扩展了e c l i p s e 的功能,让您快速建立新的 a n d r o i d 项目,创建一个应用程序的用户界面,加上a n d r o i d 框架的a p i 组件、调试应用程序使用a n d r o i ds d k 工具,以便a p k 分发给应用程序。 5 ) 指定a n d r o i ds d k 中t o o l s 所在的目录:在打开的e c l i p s e 中, w i n d o w - p r e f e r e n c e s - 左边的a n d r o i d 点击,在右边出现设置窗口,在 s d kl o c a t i o n 后的b r o w s e 选中你解压后的a n d r o i ds d k 位置。也就是 a n d r o i d s d k 1 i n u x x 8 6 文件夹的位置。点击o k 设置完成。这一步的目的 是让e c l i p s e 找到a n d r o i ds d k 提供的工具。 , 6 ) 安装a n d r o i d 系统平台:在打开的e c l i p s e 中选择w i n d o w 选择a n d r o i ds d k a n da v dm a n a g e r 在打开的对话框左边中选择i n s t a l l e dp a c k a g e s ,选择 u p d a t ea l l 然后选择你要的a n d r o i d 系统平台。 7 ) 创建模拟器:重启e c l i p s e ,再次打开上一步中的框,选择在i n s t a l l e d p a c k a g e s 上的v i r t u a ld e v i c e s ,在右边第一个按钮n e w ,在打开的输入框 中新建虚拟机显示的名字。在t a r g e t 选择你要开发针对的平台版本。s d c a r d 指定为5 1 2 m ,s k i n 选择默认,然后点击c r e a t ea v d ,这样我们就 完成了a n d r o i d 模拟器的创建。 至此,l i n u x 系统下a n d r o i d 平台s d k 开发环境搭建完成,我们可以开始开 发我们的应用程序了。 2 4 1 2a n d r o i dn d k 开发环境搭建 a n d r o i dn d k 到目前为止有五个版本,论文以第五个版本n d kr 5 b 为例介绍 如何搭建a n d r o i dn d k 开发环境。 操作系统是u b u n t u1 0 1 0 ;桌面环境是g n o m e 2 3 2 0 1 ) 首 先下载 a n d r o i d n d kr 5 b。 下载 地址: h t t p :d 1 g o o g l e c o m a n d r o i d n d k a n d r o i d n d k - r 5 b 1 i n u x - x 8 6 t a r b z 2 2 ) 解压n d k 到某个目录:t a r - x v fa n d r o i d n d k - r 5 b 1 i n u x x 8 6 t a r b z 2 3 ) 配置n d k 环境变量。修改当前用户的p r o f i l e ,添加p a t h 第二章a n d r o i d 平台研究及分析 1 3 其中n d k = h o m e l q l a n d r o i d n d k - r 5 b 中的l q l 是当前登录系统的用户账号 名。然后注销当前用户,重新登录,使用命令e c h o $ p a t h ,查看n d k 环境变量设置是否正确。 4 ) 测试环境是否搭建成功。 首先进入解压后的n d k 自带的示例程序目录下,使用命令: c da n d r o i d - n d k - r 5 b s a m p l e s h e l l o - j n i 然后运行$ n d k b u i l d 命令,结果如下: g d b s e r v e r : a n n - l i n u x - a n d r o i d e a b i 一4 4 3 】l i b s a r m e a b i g d b s e r v e r g d b s e t u p:l i b s a r m e a b i g d b s e t u p i n s t a l l :l i b h e l l o - j n i s o = l i b s a r m e a b i l i b h e l l o - j n i s o 说明n d k 开发环境搭建成功。 2 4 1 3 i 原理分析 使用n d k 开发a n d r o i d 平台应用程序必须使用j n i 技术。j n i 是j a v an a t i v e i n t e r f a c e 的缩写,翻译为中文就是j a v a 本地调用,简单来说是在j a v a 代码中调 用本地方法,这个本地方法一般是使用c c + + 语言实现,也可以是使用其他语言 实现。本地方法以动态链接库或者静态链接库的形式供程序调用。 通过使用j n i 技术,程序开发者可以通过j a v a 程序( 代码) 调用到操作系统 相关的技术实现的库函数,从而与其他技术和系统交互,使用其他技术实现的系 统的功能;同时其他技术和系统也可以通过j n i 提供的相应原生接口开调用j a v a 应用系统内部实现的功能。 j n i 标准是j a v a 平台的一部分,它允许j a v a 代码和其它语言实现的代码进行 交互。在程序中使用j n i 的原因主要有以下两个方面: 获取更好的程序运行性能。由于c 语言是编译型语言,直接将源代码编 译成机器代码;而j a v a 是解释型语言,源代码被编译成二进制伪代码, 有j a v a 虚拟机解释执行。所以使用c 语言编写的代码的运行效率比使用 j a v a 编写的代码的运行效率高。因此,在j a v a 程序中,如果想要获取更 好的程序运行性能,可以通过j n i 技术调用使用c 语言实现的本地方法 来完成那些需要很多c p u 运算的模块,比如视频的编解码模块。 重用现有代码。有时候为了缩短软件的开发周期、降低开发成本,可以 在程序中重用现有代码。通过j n i 技术可以在j a v a 程序中调用使用c c + + 实现的代码,这样就能做到代码复用。 在程序中通过j n i 调用c c + + 实现的本地方法主要步骤如下( 以l i n u x 平台 1 4 a n d r o i d 平台多媒体通信系统研究 为例介绍) : 1 ) 编写作为主调方的j a v a 类。j a v a 类一方面声明将要调用的c 函数,本地 方法前面有n a t i v e 关键字,一方面载入本地的动态链接库文件。 t e s t j n i j a v a 声明从l i b t e s t j n i s o 动态链接库中调用本地方法t e s t j n i 0 。代码 如下: 2 ) 首先使用j a v a c 命令编译j a v a 类,然后使用j a v a h 命令为c 程序生成头文 件( 即h 文件) ,头文件名为t e s t j n i h 。在自动生成的头文件中将声明有 待实现的c 函数。命令如下: 3 ) 使用c 语言实现本地方法。在c 程序中实现头文件中声明的本地方法, c 程序名为t e s t j n i c o 代码如下: 4 ) 将c 程序文件编译成动态链接库文件。使用如下命令: g e e - r d y n a m i e - s h a r e d - 0l i b t e s t j n i s ot e s t j n i c 第二章a n d r o i d 平台研究及分析1 5 5 ) 将生成的动态链接库拷贝至j a v a 程序所在目录,然后运行j a v a 程序,查 看运行效果。使用命令如下: j a v at e s t l n i 6 ) 程序运行结果如下: f i r s t h e l l o - f i r s t :- f l r s t l l n u x o t d 】n i 3 n l t e s t $ j a v at e s t j n i t e s t j n ig oi n t oc l f i r s t 霾h e l l o f i r s t :f i r s t i i n u x - o l d j n i j n z t e s t $ 冒 2 4 2a 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 应用程序都运行在一个单独的l i n u x 进程中,这些进程的运 行用户也都是互不相同。应用程序要开始运行时就先创建一个新的进程, 加载所需要的资源文件。然后直到应用程序退出,或者应用程序不处于 活跃状态,而系统又需要为新的进程开辟空间时才会结束掉这个进程。 每个a n d r o i d 应用程序都运行在一个单独的v m ( 虚拟机) 内,所以各个应 用程序之间是隔离开的,不会互相影响。 由于每个a n d r o i d 应用程序都运行在不同的l i n u x 用户i d 下。l i n u x 的 安全性很高,它不允许l i n u x 用户访问另外一个用户的数据,所以每个 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 c t i v i t y 、s e r v i c e 、b r o a d c a s t r e c e i v e r 和c o n t e n t p r o v i d e r ,以及专门负责基本组件之间传递消息的i n t e n t 组件。一个 a n d r o i d 应用程序不一定要拥有所有这些组件,但是,如果一个a n d r o i d 应用程序 用到了这些组件中的某个或者多个组件,所有这些组件都必须在应用程序工程的 a n d r o i d m a n i f e s t x m l 文件中声明,如下图所示。a n d r o i d m a n i f e s t x m l 文件是整个 a n d r o i d 应用程序的配置文件,负责把a c t i v i t y 、s e r v i c e 等基本组件有机的组合在 一起。 1 6 a n d r o i d 平台多媒体通信系统研究 图2 2a n d r o i d 平台应用程序组件 2 4 2 1 组件之间的关系 :j a n d r o i d 应用程序开发主要是基于框架开发的,a n d r o i d 使用了m v c 2 1 l ( m o d e l v i e w - c o n t r o l l e r ) 设计模式。m v c 关系图如下: 图2 3 m v c 模式关系图 a n d r o i d 平台a c t i v 时组件对应于m v c 中的v ,视图层,用来显示数据信息 以及与用户进行交互的;s e r v i c e 组件与c o n t e n t p r o v i d e r 组件对应了m ,模型层:其 中s e r v i c e 组件对应于a c t i o n 层,对业务的处理等;c o n t e n t p r o v i d e r 组件对应了 d a o 层,用来对数据进行处理等;b r o a d c a s t r e c e i v e r 组件对应了c ,控制层,用 来响应a c t i v i t y 的对数据或者业务的操作;i n t e n t 组件负责在这些组件之间传递消 息。 第二章a n d r o i d 平台研究及分析 1 7 2 4 2 2a c t i v i t y 分析 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 c t i v i t y 。a c t i v i t y 类包含一个或几个v i e w 控件组成用户接口,并对事 件作出响应。 一个应用程序可以只有一个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 c t i v i t y 的作用取决于应用程序开发者的设计。 但是有一个通常原则是,程序启动后显示的第一个画面是应用程序的第一个 a c t i v i t y ,以后应用程序需要可以从a c t i v i t y 启动另一个应用程序。 对于每一个a c t i v i t y ,系统会分配一个默认的窗口,一般情况下,这个窗1 2 1 是占满整个屏幕的,但它也可以是一个小的位于其它窗口之上的浮动窗口。 窗口显示的可视内容是由一系列视图构成的,这些视图均继承自v i e w 基类。 视图是a c t i v i t y 与用户进行交互的界面。比如说,视图可以显示一个小图片,并 在用户指点它的时候产生动作。a n d r o i d 有很多自带的视图供用户直接使用,比 如按钮、文本框、滚动条、菜单项、复选框等等。 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 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 弹出 系统需要释放资源 会删除栈底a c t i v i t y 1 8 a n d r o i d 平台多媒体通信系统研究 图2 4a c t i v i t y 栈运作方式 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 c t i v i t y 盖在其上面界面上, 屏幕上可能看不到全貌,但是通过返回仍然可以退回到它) 。这种状态的 a c t i v i t y 还算是活的,可用的,但是当系统的内存极低,需要释放一些暂 时无用的内存区域时,它有可能被系统进程终止掉。 暂停状态:a c t i v i t y 失去焦点,且不可见,但是仍然保存着一些状态信息。 当系统的内存极低,需要释放一些内存时,它是优先被系统进程给终止 掉。 整个a c t i v i t y 的生命周期就存在于o n c r e a t e 到o n d e s t r o y 中。从一开始在 o n c r e a t e 中进行初始化,创建一些视图到最后在o n d e s t r o y 中释放占用的所有资 源。 a c t i v i t y 的可见期就在于从o n s t a r t 到o n s t o p 之间。在这段期间用户都可以看 到a c t i v i t y ,它有可能是出于活跃状态,有焦点在其中可以跟其进行交互,也有 可能出于休眠状态。o n s t a r t 和o n s t o p 均有可能被多次调用当用户一直切换a c t i v i t y 的状态时。 a c t i v i t y 的交互期就在于从o n r e s u m e 到o n p a u s e 之间。这段期间实际上属于 可见期的一部分,其间用户都可以跟这个a c t i v i t y 进行交互。 下图是a c t i v i t y 的生命周期中可能经历的各个状态变化图。 第二章a n d r o i d 平台研究及分析 1 9 图2 5a c t i v i t y 生命周期中可能经历的状态变化 2 4 2 3s e r v i c e 分析 s e r v i c e 是具有一段较长生命周期且没有用户界面的程序。运行在系统的后台 进程,s e r v i c e 被启动后一般一直处于运行状态,用来提供一些后台服务或数据处 理。在a n d r o i d 中s e r v i c e 分为两类:l o c a ls e r v i c e 和r e m o t es e r v i c e 。l o c a ls e r v i c e 只能被提供该服务的a n d r o i d 应用程序调用,主要用来实现一些耗时的操作( 主 要是通过后台单独的线程实现,而不在主线程内) ;相反r e m o t es e r v i c e 则可以被 2 0 a n d r o i d 平台多媒体通信系统研究 _ 其他的运行在本机的a n d r o i d 应用程序调用,用来实现一些功能服务,例如天气 预报服务。s e r v i c e 可以有很多种应用,比如,轮询是否有新e m a i l 、后台更新数 据、后台运行音乐播放等。每个服务都继承自s e r v i c e 基类。 上面讲到s e r v i c e 分为两种l o c a ls e r v i c e 和r e m o t es e r v i c e ;2 种不同类型的 s e r v i c e 的开启和结束都不相同。以l o c a ls e r v i c e 来说,调用c o n t e x t s t a r t s e r v i c e 来开启s e r v i c e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省临沧市临翔区一类部分学校2025-2026学年九年级上学期11月期中历史试题(含答案)
- 2025年网络游戏行业游戏类型与用户留存率研究报告及未来发展趋势预测
- VR三维城市构建-洞察与解读
- 银行安全保卫课件6
- 2025年护理工作年终总结范文6篇
- 2025年电气工程师年终总结及下年计划5篇
- 数字化教育公平性研究-洞察与解读
- 2012年421、915公务员联考《申论》卷及参考答案
- 2025年下半年下半年安徽滁州市凤阳县事业单位招聘29人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年下半年国家市场监督管理总局信息中心招聘8人易考易错模拟试题(共500题)试卷后附参考答案
- 物业住宅小区的应急处理预案
- 班组建设培训课件完整版
- 2025下半年黑龙江交易集团有限公司社会招聘笔试历年参考题库附带答案详解
- 光船船舶运输合同范本
- 2026沈阳市面向国内部分高校应届毕业生招聘教师1446人考试模拟试题及答案解析
- 市政道路电力、照明、通信管道工程施工方案
- 【初中作文】打造作文“好身材”凤头豹尾【课件】
- 学堂在线 实验室安全教育 章节测试答案
- 钢筋工施工安全教育培训课件
- 心脏介入手术护理配合
- 英语四级高频核心词汇合集1000词
评论
0/150
提交评论