基于Android的远程视频监控系统(程序仿真+开题报告+任务书+说明书+演示文稿)_第1页
基于Android的远程视频监控系统(程序仿真+开题报告+任务书+说明书+演示文稿)_第2页
基于Android的远程视频监控系统(程序仿真+开题报告+任务书+说明书+演示文稿)_第3页
基于Android的远程视频监控系统(程序仿真+开题报告+任务书+说明书+演示文稿)_第4页
基于Android的远程视频监控系统(程序仿真+开题报告+任务书+说明书+演示文稿)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I摘要视频监控技术在安全领域发挥着重要作用,尤其是伴随移动通信的快速发展,视频监控从有线网络监控发展到了移动视频监控。Google开发的Android平台极大的推动了智能手机的发展,此平台所提供的良好开放性能,为普及智能手机远程视频监控系统带来了契机。本课题主要研究Android平台相关技术,构建移动视频远程监控系统。本文研究了移动视频监控的相关技术,如移动智能终端,Android操作系统等。通过对各项技术对比分析,采用Android作为移动智能终端操作系统平台,使用流媒体技术开发安卓客户端。提出客户端设计流媒体控制传输模块,视频编解码模块等,采用Java语言编写相关程序。本课题完成了基于Android智能手机远程视频监控系统的设计与实现。通过设计基于Eclipse搭建Android操作系统智能手机平台方案,视频监控终端客户端软件的设计方案,智能手机等客户端视频采集、存储和转发的设计方案,完成了一整套适合Android平台的智能手机远程视频监控解决方案。关键词:Android视频监控流媒体视频解码IIABSTRACTVideosurveillancetechnologyisplayinganimportantrole,whichiswidelyusedinurbantransport,civilsecurityandotherfieldswithitsintuitive,convenientandabundantinformation,particularlyinthesecurityimportantsectorandinthesignificanteventfield.AndroidplatformthatGoogledevelopedgreatlypromotedthedevelopmentofsmartphones,andtheplatformprovidesagoodopeningperformance,whichhasbroughtaturningpointforthepopularityofsmartphonevideosurveillancesystem.ThemaintopicisaboutresearchingAndroidplatformtechnology,andbuildingmobilevideosurveillancesystem.Inthispaper,itintroducesomekeytechnologiesofmobilevideosurveillance,suchasmobileintelligentterminal,streamingmediatechnology,videocompressiontechnology,Androidoperatingsystemandsoon.BycomparativeanalysisofdifferenttechnologythispaperusesAndroidasamobileterminaloperatingsystemplatform,RTP,RTSPstreamingmediatechnologyandvideocompressiontechnologywhichhasahighcompressionrateasdevelopmentclient.Thispaperproposesthearchitectureofclientandserver-sidesoftware,designsstreamingmediatransmissionmodule,videocodemodule,PTZcontrolmoduleandothermodules,andusesJavatowriteprograms.ThesubjectcompletedthedesignandimplementationofvideosurveillancesystembasedonAndroidsmartphone.ThispapercompletesvideosurveillancesolutionprogrambasedonsmartphoneforAndroidplatform,bysolutionofAndroidoperatingsystembasedonsmartphoneplatformandARM11chip,solutionofthedesignofvideosurveillanceterminalclientsoftware,andsolutionofserver-sideincludingthedesignofvideocapturing,storingandforwarding.KeyWords:AndroidCamerasandSurveillancestreamingmediavideodecoderIII目录第一章绪论.11.1视频监控.11.2移动视频监控.11.3研究背景与内容.11.4论文结构安排.3第2章移动视频监控关键技术研究.32.1移动智能终端.42.1.1移动智能终端体系结构.42.1.2移动智能终端支持的业务.52.1.3智能手机操作系统.52.2移动流媒体技术.62.2.1流媒体传输和控制协议.62.2.2流媒体传输基本原理.82.3视频压缩编码技术.9第三章Android操作系统.103.1Android操作系统概述.103.2系统架构.113.3应用程序框架.133.4搭建Android开发环境.153.5配置和编译U-boot.16第4章移动视频监控系统总体设计.184.1系统总体结构设计.184.2服务器端软件设计.184.3Android平台构成.184.4客户端软件设计.204.5平台选择和开发语言.22第5章客户端和服务器端软件的设计与实现.235.1客户端界面设计与实现.235.2客户端各模块设计与实现.245.2.1视频解码模块.255.2.3VideoCodec模块.265.2.4流媒休协议模块.275.2.5Socket模块.28第6章总结与展望.296.1系统总体测试结果.296.2论文总结.29IV6.3工作展望.30参考文献.31致谢.330第一章绪论本章主要介绍了视频监控的发展和移动视频监控的未来发展趋势,以及研究视频监控的背景和内容,简述了本论文的结构安排。1.1视频监控视频监控是一种防范能力较强的综合系统,是安全防范系统的重要组成部分。视频监控拥有直观、准确、及时和信息丰富等优点,能够广泛应用于各种场合。近年来,随着网络音视频技术和移动通信技术的飞速发展,视频监控技术也有了长足的进步。视频监控在安全领域发挥着巨大作用,特别是在重要安全部门或重大事件中,如北京奥运会和上海世博会等安防监控中。二十一世纪以来,世界恶性突发事件以及恐怖主义袭击也日趋增多,无论在规模、范围、频率,还是在手段、技术、危害性等方面,都已经达到了十分严重的程度,具有复杂性、突发性、难以预测、事先征兆少等特征。所以,视频监控技术作为安防系统的重要组成部分,日益受到关注和重视。1.2移动视频监控如今,以嵌入式技术为依托,以网络、通信技术为平台的网络视频监控,已经越来越成熟,应用范围越来越广阔。首先网络视频监控技术突破了地域的限制,实现了远程监控,可是,随着“AnyTime、AnyWhere、AnyDevice”概念的倡导,鉴于互联网接入服务的局限性,相关管理人员的流动性等多方面的因素,基于网络视频监控的防范系统的弊端逐步显现,已经不能满足用户日益增长的多元化的需求。移动视频监控应运而生,把网络视频监控与智能移动终端相结合,就可以满足用户在任何地点任何时候都可以对所需要的监控点进行视频监控的需求。移动视频监控技术不仅克服了普通网络视频监控对监控客户端地点上的限制,还进一步缩短了处理紧急情况的反应时间。移动视频监控在任何时间,任何地点,任何设备概念的倡导下,近年发展迅速,尤其是随着智能手机的普及,移动视频监控将在安全防范领域日益发展壮大,发挥重要作用。1.3研究背景与内容基于传统的网络视频监控,人们在远程视频监控和远程控制时需要考虑传输线1路建设的成本问题。如森林火灾预防、高速公路监测以及偏远地区监控,由于地域的广阔性,分布的分散性,有线网络建设和室外线路的维修费用非常之昂贵,这将直接影响到视频监控的发展。随着移动通信技术,智能终端技术的快速发展,极大地推动了移动视频监控的发展。目前国内外众多IT公司在移动视频监控领域,投入大规模的人力物力进行项目研究和开发。鉴于在各高校和研究所,移动视频相关技术也是研究热点,相信相关技术的持续革新将为移动视频监控的可持续发展开辟广阔的道路。基于无线网络将是今后监控设备的必然选择,移动智能终端是监控应用的最佳平台;移动视频监控市场的繁荣带动了更多的服务商加入到这一行列,为广大用户提供更加完善和个性化的移动视频监控服务。随着3G、4G的成熟,LTE网络商用时代的到来,移动视频监控技术将逐步走向成熟和稳定。在移动智能终端方面,Android智能操作系统成为近年来最受关注的操作系统,由于它的免费性,以及系统的开放性,使开发人员可以随时取得程序的源代码,这对于程序开发人员和运营商定制非常重要。在移动智能终端支持方面,三星、摩托罗拉、多普达等国际一线厂商在2014年几乎倾倒性的发展Android,尤其摩托罗拉几乎将2014年发布的所有智能手机都预装Android平台,在2014年第一季度Android操作系统已经跃居智能终端操作系统的榜首。结合3G移动网络平台开发出一个基于Android的智能手机平台,对企业而言,符合未来移动通信技术的发展方向,更是企业在移动通信技术领域通过不断积累,培养核心竞争力的良机。因此,基于Android智能手机远程视频监控系统具有重大的现实意义。智能手机远程视频监控是移动智能终端和传统网络安防行业相结合的结果,将互联网、移动通讯和安全防范融为一体,把系统集成技术转化成潜在的产品应用,通过智能手机实现查看远程实时动态画面的功能,为企业与家庭提供了更便利、更简单、更及时的监控解决方案。目前在北美和欧洲等无线网络发达的地区,由于得到政府的大力支持,移动视频监控市场发展非常迅速,推广非常有力,在亚洲地区的日本和新加坡,也都将移动视频监控纳入积极发展领域。在我国,运营商全业务运营的时代已经到来,运营商将会给用户提供包括无线和有线在内的多样化技术监控服务,通过业务融合,给用户提供无所不在的监控服务。而智能手机监控终端必将成为通用的移动监控方式,具有广阔的市场发展前景。本文完成了基于Android智能手机远程视频监控系统的设计与实现。通过学习Android操作系统相关技术,提出基于Android操作系统智能手机平台的方案。通2过对移动视频监控相关技术的研究,提出视频监控终端客户端软件的设计方案和服务器端视频采集,存储,转发的设计方案。通过学习相关的软件开发知识,Android平台开发知识,编程实现基于Android的客户端视频监控软件。研究相关的RTP/RTCP、RTSP流媒体协议,HTTP协议,编解码算法,实现Android智能手机实时视频播放,对整个视频监控系统提出可操作性方案,并最终通过软件调试,在实验室环境完成整个系统的联调和实际效果展示。1.4论文结构安排根据本论文研究的内容和层次,将本课题分为以下个章节:第1章简要介绍了视频监控的发展,移动视频监控的现状,趋势,并说明了本课题的研究背景与内容及本文主要完成的工作。第2章主要介绍了移动智能终端的结构与支持的业务,移动流媒体技术的相关协议,视频压缩标准等,指出了本文相关设计的理论基础。第3章主要介绍软件开发平台Android操作系统的基本知识,Android操作系统平台的设计与实现,如eclipse软件平台搭建,操作系统体系框架,应用程序开发流程和Android的特有机制等。第4章提出了移动视频监控系统总体设计方案,主要包括摄像头采集端和安卓客户端,着重介绍了本系统设计的手机客户端软件模块。第5章主要介绍了移动智能手机客户端,并详细介绍了手机客户端软件的设计与实现,包括界面UI设计和各模块设计等。第6章总结本文工作内容和本文的研究成果,提出进一步研究发展的方向。34第2章移动视频监控关键技术研究本章介绍了移动智能终端技术,移动流媒体技术和视频压缩编码技术等移动视频监控关键技术。对比分析了各种智能手机操作系统,选择Android操作系统作为开发平台。介绍了移动流媒体传输和控制协议,以及实时传输的基本原理,选择了RTP,TCP,RTSP,HTTP协议作为通信协议来完成程序设计。对比分析了MPEG.4和视频编码标准,结合移动视频监控系统的要求,选择MPEG.4视频编解码标准。2.1移动智能终端随着全球3G移动通信技术的飞速发展,移动终端的功能特点发生了巨大的变化,移动终端已经从简单的通话工具,逐渐演变成一个移动的个人信息收集和处理平台。移动智能终端作为一个集先进的无线通信技术和强大的个人数字信息处理计算平台功能于一身的终端,无疑将成为人们日常生活的必需品。2.1.1移动智能终端体系结构典型的具有开放式操作系统的终端架构如2.1所示,自上而下分为层,下面简述各层的功能。表2.1开放式操作系统终端架构硬件驱动层:位于底层,由硬件部分和驱动部分组成,为上层操作系统提供抽象的概念和功能性支撑。由于其抽象性,操作系统可以运行在不同的硬件设备上,从而具有灵活的移植性。操作系统层:为上层的应用程序提供接口和重要的核心功能,本层提供了人机交互的友好界面,可实现内存管理,多任务调度和文件系统等支持。应用层用户界面层(UI)业务能力层操作系统层(OS)硬件驱动层5业务能力层:本层介于应用软件和操作系统之间,主要包含通用和通信功能。通用功能提供多媒体子系统和安全子系统;通信功能提供通话,无线协议栈等支持。用户界面层:UI层是最终用户可视化操作的用户界面层,提供良好的人机界面,方便用户的操作。应用层:本层基于业务能力层,给用户提供多种应用,如个人信息管理,消息类业移动智能终端的硬件技术主要包括处理器技术,射频技术和显示技术等。软件平台的核心是操作系统,中间件和系统协议栈等。本文在平台搭建和软件开发过程中只叙述实现本系统相关的技术及配置要求。2.1.2移动智能终端支持的业务移动智能终端能够提供无线通信技术,个人信息平台处理和计算平台等强大的功能,支持的相关业务如表2.2所示。表2.2终端所支持的业务本文开发的上层应用部分是移动远程视频监控,能够满足普通移动视频监控系统对Android方面的的基本要求。2.1.3智能手机操作系统智能手机为移动视频监控系统提供了良好的开发平台,而智能手机操作系统为监控客户端提供软件开发和运行环境,智能操作系统的特性直接影响到人机交互的易用性和稳定性。目前主流的智能手机操作系统为WindowsPhone,Android和Sysbian操作系统。1.WindowsPhoneWindowsPhone是微软公司发命的一款智能手机操作系统。WindowsPhone具有桌面定制、图标拖拽和滑动控制等一系列操作体验。其优点是具有十分强大的功能,友好的操作界面,包含OFFICE全套办公软件,音视频播放和即时通讯等功能;其缺点是功耗较大和硬件成本较高。微软作为软件提供商,提供强大的技术支持。WindowsPhone是在WindowsMobile的基础上发展而来,但是重新设计了架构,不同于过去的操作系统,在易用性和互动性等方面有着优秀的品质,发展前景良好。功能通信图像音乐视频生活语音相机音乐播放视频播放个性化定制界面基本功能数据通信图片打印62.AndroidAndroid是基于Linux平台的开源手机操作系统,是Google及其开放手机联盟共同研发推出的操作系统,并于2007年11月5日正式发布。Android具有开放性、互联性、无界性、平等性和并行性大特点。在智能手机领域超高速的发展,手机厂商几乎压倒性的全面投入到基于Android操作系统的手机开发中,展示了其广阔的市场前景。3.SysbianSysbian操作系统的前身是英国宝意昂公司(Psion)的EPOC操作系统。1998年6月,诺基亚、摩托罗拉、爱立信、三菱和宝意昂在英国伦敦共同投资成立Sysbian公司。Sysbian作为一款相当成熟的操作系统,具有比较固定的硬件组成,比较低的研发成本。系统具有低功耗、高处理性能、运行安全、稳定性和多线程等特性。其缺点则表现为,多媒体支持较差,平台版本间不兼容,各平台软件不兼容,细节功能不丰富,不方便手机厂商基本功能的开发等。综合上述主流操作系统的优劣,对比分析这个操作系统,考虑到普及性、发展实力、市场份额和移动视频监控开发的可行性等因素,本文选择Android操作系统作为开发平台。Android发展迅猛,在2011第一季度市场份额已经超越其它操作系统,跃居榜首。其强大的技术队伍,在Google的推动下,已经成为一个专业、易用和开放的平台。2.2移动流媒体技术移动流媒体技术就是把连续的声音影像信息经过压缩处理后传送到网络服务器上,让终端用户能够在下载的同时观看收听,而不需要等到全部的多媒体文件下载完成就可以即时观看的技术。移动流媒体技术的出现是伴随着移动通信技术的发展和网络音视频技术的进步,其主要是关于流媒体数据从采集到播放整个过程中所需要的核心技术。移动流媒体数据流具有三个特点:连续性,实时性,时序性。所以流媒体数据流具有严格的前后时序关系。流媒体传输技术是在FTP/TCP的基础上发展而来的。服务器按照一定的顺序将文件分割成若干个数据分段,然后封装到分组中依次进行传输,客户端接收到分组后重新将其组装起来,最终形成一个与原来一样的完整文件。流媒体播放技术有优点也有缺点。优点是能够及时传送随时播放,虽然在开始阶段需要一定的时间进行缓冲,但依然能够在实时性要求高的领域具有无可比拟的优势;缺点是由于网络的速率不稳定性,当播放速率大于传输速率时,视频播放将出现停滞,时断时续的现象。72.2.1流媒体传输和控制协议流媒体传输和控制协议在应用层主要涉及到HTTP,RTSP和RTCP协议,在传输层有TCP和UDP协议。HTTP是建立在传输控制协议(TCP)之上的超文本传输协议。TCP/IP协议是专为数据传输而设计的,能够保证传输的可靠性。流媒体的特征要求必须确保数据的实时性和同步性。国际电信联盟(ITU)设计了实时传输协议(RTP)来解决数据传输的实时性和同步性问题。目前,流媒体解决方案主要采用RTP/UDP传输音视频数据和HTTP/IP传输控制信息。RTP是在一对一或一对多的情况下针对流媒体数据流工作,不仅能够提供时间信息而且可以保证数据流的同步。通常RTP建立在UDP之上,使用UDP传送数据。RTP协议实现数据流和控制流的分离,数据报文和控制报文使用相邻的不同端口。RTP本身没有可靠的传送机制。其流量控制和拥塞控制是由实时传输控制协议(RTCP)来提供。相关协议在OSI模型的位置如表2.3所示。表2.3相关协议在OSI模型的位置RTCP是一个控制协议,负责管理数据传输质量,提供当前应用进程的控制信息和可靠的传送机制。RTP和RTCP共同协作才能完成流媒体的传输和控制。实时流协议(RTSP)是应用层协议,位于RTP和RTCP协议层之上,通过IP网络传送多媒体数据,在传送机制上采用TCP和RTP完成数据传输。RTSP用于控制实时数据的发送,提供用于音视频流的VCR远程控制功能和用于控制流媒体的播放,暂停,记录等操作。会话描述协议SDP(SessionDescriptionProtocol),SDP是用来描述RTSP,以便说明一个流媒体会话的基本属性,如流媒体的类型,格式,传输带宽,播放时间,缓存容量大小等。通常包含会话信息,媒体信息等。结合移动视频监控系统对通信实现的特点,本文采用RTP,RTSP,RTCP和应用层HTTPRTSPRTPRTCP传输层TCPUDP网络层IP数据链接层网络相关协议物理层无线传输介质8HTTP协议完成视频监控系统的通信和远程控制。2.2.2流媒体传输基本原理一个最基本的流媒体系统包括编码器,流媒体服务器和客户端播放器三个部分,如图2.4所示。各个模块之间的数据通信交换都是按照特定的协议。编码器用来将原始的音视频转换成合适的流媒体格式文件,服务器用来接收和转发编码后的媒体流,客户端则是负责解码和播放接收到的流媒体数据。PC图像采集器编码器服务器网络手机图2.1流媒体系统组成流式传输有种方式,一种是顺序流式传输,一种是实时流式传输。1)顺序流式传输顺序流式传输就是顺序下载。用顺序流式传输方法基于标准HTTP或FTP服务器来传输文件,通常容易管理,方便用户的使用。通常不需要特殊的协议。整个下载过程是无损的,能够保证视频的高质量,但是用于网络传输速率的问题,一般需要等待较久的时间。顺序流式传输常用于对视频质量要求较高的场合,对实时性,随机访问性要求较高的场合则不适用。2)实时流式传输实时流式传输能够保证信号带宽与网络连接的匹配,实现实时传送,适合现场直播,支持随机访问,用户可进行快进后退操作。实时流式传输需要传输网络协议和专用的流媒体服务器。传输网络协议有RTSP等。由于这些协议与防火墙有关,在使用时需经过配置。系统设置,管理比顺序流式传输复杂。由于必须匹配连接带宽,在低速连接设备时或者网络拥塞时,会出现丢帧现象,导致视频质量下降。如图2.5所示的实时传输过程,下面以实时流式传输为例简要说明流媒体传输的基本原理。1.当某个流媒体服务被用户选择后,Web浏览器和服务器之间使用HTTPTCP交换控制信息,从流媒体服务器中检索出音视频信息。2.Web服务器从流媒体服务器取出音视频。3.终端上的Web浏览器启动客户端程序,使用HTTP从Web服务器检索到的相9HTTP/TCPRTSP/TCP关数据对客户端程序进行初始化。4.客户端程序与流媒体服务器之间使用RTSP来交换传输音视频数据的控制信息。RTSP实现对流媒体服务器的远程控制,如暂停,快进,回放等。5.客户端程序通过RTPUDP协议从流媒体服务器接收到视频流,此时,客户端使用播放程序即可播放视频流。图2.2实时传输过程通过使用RTPUDP和RTSP两种不同的通信协议,能够切换服务器和不同客户端之间的通信绑定。以上个流程简要叙述了实时传输的整个过程。2.3视频压缩编码技术数字视频编码标准主要由两个标准化组织制定。一个是由国际标准化组织(ISO)和国际电工委员会(IEC)组建的活动图像专家组(MPEG);另一个是国际电信联盟电信标准局(NUT)的视频编码专家组(VCEG)。MPEG制定的视频编码标准有MPEG.1,MPEG.2,MPEG.3,NUT制定的视频编码标准有H.261和H.263。为了促进下一代多媒体通信的应用,MPEG和VCEG共同成立了联合视频工作组(JVT),共同开发了视频编码标准。MPEG.4是基于第二代压缩编码技术制定的视频编码标准,以视听媒体对象为基本单元,采用了基于对象,基于内容的压缩编码,以实现数字音视频,图形合成应用及交互式多媒体的集成。MPEG.4主要用于IP网络视频会议,交互式视频通信和便携式视频通信终端等。由于第二代压缩编码技术涉及的学科非常广泛,而相关学科的很多核心技术并未取得突破性进展,MPEG.4的编码实现方案依旧采用16*16像素为基础的混合编码,算法基础仍是运动补偿预测,DCT和熵编码。Web浏览器客户端程序Web服务器流媒体服务器RTP/UDP10第三章Android操作系统本章主要介绍了Android操作系统的基本情况,系统架构,应用程序架构Android开发平台的选择,Android操作系统操作平台实现的完整过程等。通过对各个部分的研究,为后续移动视频监控系统软件开发的具体设计和实现奠定基础。3.1Android操作系统概述Android是基于eclipse平台的开源手机操作系统,是Google及其开放手机联盟共同研发推出的操作系统,并与2007年11月5日正式发布。Android由用户界面,中间件,操作系统和应用软件构成,基于eclipse平台,是专门为移动终端打造的开放完整的移动平台。Android是Google公司进军移动互联网市场的重要组成部分,Google倡导“随时随地为每个人提供信息”的企业目标。Google通过与全球各地的移动运营商和手机制造商合作,开发各种实用的移动服务,并不断推出新的产品。Android平台的研发阵容强大,由Google,HTC,T-Mobile,高通,摩托罗拉,三星,以及中国移动,联想,华为,中兴等多家企业组成的开放手机联盟将基于该平台开发智能手机的新型业务。开放手机联盟表示,Android平台可以推动移动设备的不断创新,不断创造出友好的人机交互性和优质的移动服务。Android作为第一个完整,开放,免费的手机平台,吸引了众多实力雄厚的手机厂商,2011年月的数据显示,Android已经超越Sysbian的市场份额。随着Android手机的普及,Android应用的需求势必会越来越大,这将是一个潜力巨大的市场。Android平台的大特点:1.开放性Google与开放手机联盟合作开发Android,开发平台允许任何移动终端厂商加入到联盟中来。显著的开放性可以使其拥有更多的开发者。标准的开放式的移动终端平台将推动移动产业形成一个开放式的生态系统。2.无界性Android上的应用程序可以通过标准API访问核心移动设备功能,通过互联网,应用程序可以声明它们的功能可供其它应用程序使用。3.平等性11应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。4.互联性Android应用程序可以轻松的嵌入网络,嵌入HTML,JavaScript和样式表,还可以通过WebView显示网络内容。5.并行性Android应用程序可以并行运行,Android是一种完整的多任务环境,可以并行运行,在后台运行时,应用程序可以生成通知以引起注意。Android还具备强大的功能,包括智能虚拟键盘,Widget实现个性化,在线文件夹,视频录制和分享,图片上传,基于Webkit浏览器,VoiceSearch语音搜索,立体声蓝牙,强大的GPS技术等。3.2系统架构Android系统架构分为层,从高到低分别是应用层,应用框架层,系统运行库层和Linux内核层。Android平台架构图如图3.1所示。下面将对层进行简要分析。1.应用层应用是用Java语言编写的运行在虚拟机上的程序。在Android开始是已经捆绑了一些核心应用,如电话,地图,浏览器,联系人管理程序等。2.应用框架层本层是Google发布的核心应用时所使用的API框架。开发人员可以使用API框架进行开发,简化了程序开发的架构设计。从图3.1可以看出,包括如下组件:视图系统:通过列表,文本框和按钮等构建应用程序完成视图系统。内容提供器:用于不同程序之间数据的共享,减少了对内存空间的占用,最大程度的利用各种资源。资源管理器:主要用于非代码资源方面的应用。通知管理器:通过在状态栏中出现已定义的提示信息向应用程序报告出现的情况等。活动管理器:主要用于管理各个应用程序的生命周期,完成开始,挂起和结束等操窗口管理器:主要用于各个窗口的管理。包管理器:主要用于程序开发过程中对程序的管理。3.系统运行库层系统运行库是为上层应用程序框架层提供组件支持的,主要包含以下几个库:12多媒体库:该库基于PacketVideoOpenCore,能够支持多种格式的音视频的回放和录制,以及图片浏览等。SGL:2D图形引擎库。SSL:位于TCPIP协议与各种应用层协议之间,为数据通信提供支持。OpenGL3D效果的支持。SQLite:关系数据库。Webkit:Web浏览器引擎。FreeType:位图及矢量。APPLICATIONHOMECONTACTPHONEBROWER.ActivitymanagerWindowsmangercontproviderViewsystemNotificationPackagemanagerTelephonyResourceLocationXMPPSurfaceMediaSQLiteCoreLibrariesOpenGLIESFreeTypeWedKitDalvikSGLSSLlibcDisplayCameraBlueToothFlashMemoryBinderUSBDriverKeypadwifidriverAudioPower图3.1Android平台架构图Android每个程序都运行在Dalvik虚拟机上,每个程序都有自己的进程。Java程序通过编译之后,生成.class文件,还需要通过AndroidSDK中的dex具进行转化为.dex可执行文件,因为在Android中的Dalvik虚拟机不同于Java中的虚拟机,Dalvik虚拟机只能执行.dex文件。13因为每个应用中会定义很多类,在编译之后会有很多相应的class文件,class文件,class文件中会有大量的冗余信息。而dex文件格式会把所有的class文件内容整合到一起,减少文件的尺寸,也提高了类的查找速度。所以dalivk虚拟机非常适合在移动终端上使用,相对于在桌面系统和服务器系统运行的虚拟机,它不需要很快的CPU计算速度和大量的内存空间。Dalvik虚拟机是基于寄存器的,相对于基于堆栈的Java虚拟机,虽然在硬件和通用上差点,但执行率很高。一个应用,一个虚拟实例,一个进程。虚拟机的线程机制,内存分配和管理等实现都是以来底层操作系统。不同的应用在不同的进程空间里运行,不同的应用使用不同的eclipse的用户来运行,可以最大程度的保护应用的安全和独立运行。3.3应用程序框架应用程序框架层是链接应用层和底层的桥梁,是开发应用程序过程中接触最多的层。应用程序框架是一个程序的核心,作为一个共同的约定,提供给开发者清晰的结构框架。AndroidManifest.xml是每一个应用都需要的文件,位于应用根目录下,它描述了程序包的全局变量,包括暴露的应用组件和为每个组件的实现类,什么样的数据可以操作,以及在什么地方运行。在AndroidManifest.xml文件中,程序各个模块都是本模块的子元素。在运行过程中,当模块被调度时,若没有启动应用,将启动并初始化应用,然后调度对应的模块。AndroidManifest.xml包含以下几部分:1.Activity:Activity是Applicatio。运行时的子元素,具有一个UI的标示身份一个应用可以声明多个其它运行时的模块。Activity包含各种工作状态的属性,其中“name指定了该Activity所在的文件名,如果该文件所属包不同于该应用的包名,那么需要在名字前面加入所在包的包名。Intent是调度Activity的重要参数,Activity通过intent-niter来标识可以被处理的Intent。2.Receiver:Receiver是柳plication运行时的子元素。Receiver通过intent-fliter标识确定将接受那个Intent。通常当接收到Intent后,Receiver对不同的Intent将进行不同的处理。当一个Intent发出后,所有注册了该Inten:的Receiver都将会收到,系统会根据Receive,在系统中的注册次序顺序发送。当一个Receiver处理完该Intent后,系统才会向下一个Receive:发送。当一个Receiver有多个未接收的Intent时,将技照mien。发送的次序顺序接收。143.Service:Service是Application运行时的子元紊。Service属于后台模块,启动后将长时间运行,除非停止该Service或所在应用进程被杀死。4.Provider:Provider也是抑plication运行时的子元素。它继承于ContentProvider,是对该应用管理的用户数据的结构化接入,是基于数据库操作方式的封装。如果应用允许外部应用访问/管理它的用户数据,Provider是Android平台提供的最佳方式。应用程序中的重要组成部分是Activity,Intent,Service,ContentProvider,下面详细介绍各部分。Activi灯活动,包含以下四个关键状态:(1)一个活动被放在活动栈的最上方,并且开始运行(2)该活动不再成为系统的焦点,但是它依然可见。系统保存了它的状态,它处于暂停状态。(3)该活动已经完全模糊,几乎被另一个活动替代。系统仍然保存了它的状态,对于用户来说,它处于不可见状态。一旦内存需要空间,该活动就会被结束掉。(4)活动被暂停或中止,系统将这个活动的内存收回,然后结束该进程或者调用该活动的结束程序。Service是一段没有用户界面,在后台运行的程序。Service可以运行在它自己的进程,也可以运行在其他应用程序的上下文context里面,这取决于自身的需要。其他的组件可以绑定到一个服务Servi二上面,通过远程过程调用来调用这个方法。Service的应用:1.使用Context。startServiccO来启动一个Service,从而在后台运行程序。系统将保持这个Service直到运行结束。调用.ntext.stoptServiceO结束,或者Servi调用stopSelfO停止。2.通过使用Context.bindServicco方法,连接到一个Service上调用Context.unbindServiccQ结束。当连接到一个Service之后,我们还可以利用Servi二提供的接口与它进行通讯。通过ServiceConnection访问Service。这两种方法可以混合使用,先startServece再unbindServiceo。Intent:Intent描述了应用程序要做的东西,Intent数据结构主要包括动作和动作对应的数据。动作:典型的动作包括PICK,VIEW,MAIN,EDIT等。动作对应的数据:通常使用URI来表现。Android通过使用Intent这个特殊类,实现在屏幕与屏幕之间的转换。ContentProviderAndroid应用程序能够将它们的数据保存到文件、SQLit。数据库中,或是其它15有效的设备中。ContentProvider类提供了一组标准的方法,保证了其它的应用程序可以读取或保存此。ntentProvider处理的数据类型。Android默认使用SQLite作为系统数据库。在Android中每一个应用都运行在各自的进程中,当你的应用需要访问其他应用的数据时,也就需要数据在不同的虚拟机之间传递,ContentProvide:正是用来解决在不同的应用包之间共享数据的工具。所有被Android应用程序创建的设置,文件和数据库都是私有的。应用程序可以创建一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论