基于Android的远程视频监控系统的设计与实现

基于Android的远程视频监控系统的设计与实现
基于Android的远程视频监控系统的设计与实现

摘要

视频监控技术在安全领域发挥着重要作用,尤其是伴随移动通信的快速发展,视频监控从有线网络监控发展到了移动视频监控。Google开发的Android平台极大的推动了智能手机的发展,此平台所提供的良好开放性能,为普及智能手机远程视频监控系统带来了契机。本课题主要研究Android平台相关技术,构建移动视频远程监控系统。

本文研究了移动视频监控的相关技术,如移动智能终端,Android操作系统等。通过对各项技术对比分析,采用Android作为移动智能终端操作系统平台,使用流媒体技术开发安卓客户端。提出客户端设计流媒体控制传输模块,视频编解码模块等,采用Java语言编写相关程序。本课题完成了基于Android智能手机远程视频监控系统的设计与实现。通过设计基于Eclipse搭建Android操作系统智能手机平台方案,视频监控终端客户端软件的设计方案,智能手机等客户端视频采集、存储和转发的设计方案,完成了一整套适合Android平台的智能手机远程视频监控解决方案。

关键词:Android 视频监控流媒体视频解码

ABSTRACT

Video surveillance technology is playing an important role, which is widely used in urban transport, civil security and other fields with its intuitive, convenient and abundant information, particularly in the security important sector and in the significant event field.Android platform that Google developed greatly promoted the development of smart phones, and the platform provides a good opening performance, which has brought a turning point for the popularity of smart phone video surveillance system. The main topic is about researching Android platform technology, and building mobile video surveillance system.

In this paper, it introduce some key technologies of mobile video surveillance, such as mobile intelligent terminal, streaming media technology, video compression technology,Android operating system and so on. By comparative analysis of different technology this paper uses Android as a mobile terminal operating system platform, RTP, RTSP streaming media technology and video compression technology which has a high compression rate as development client. This paper proposes the architecture of client and server-side software, designs streaming media transmission module, video code module, PTZ control module and other modules, and uses Java to write programs.

The subject completed the design and implementation of video surveillance system based on Android smart phone. This paper completes video surveillance solution program based on smart phone for Android platform, by solution of Android operating system based on smart phone platform and ARM11 chip, solution of the design of video surveillance terminal client software, and solution of server-side including the design of video capturing,storing and forwarding.

Key Words: Android Cameras and Surveillance streaming media video decoder

目录

第一章绪论 (1)

1.1视频监控 (1)

1.2移动视频监控 (1)

1.3研究背景与内容 (1)

1.4论文结构安排 (3)

第2章移动视频监控关键技术研究 (3)

2.1移动智能终端 (4)

2.1.1移动智能终端体系结构 (4)

2.1.2移动智能终端支持的业务 (5)

2.1.3智能手机操作系统 (5)

2.2移动流媒体技术 (6)

2.2.1流媒体传输和控制协议 (7)

2.2.2流媒体传输基本原理 (8)

2.3视频压缩编码技术 (9)

第三章Android操作系统 (10)

3.1 Android操作系统概述 (10)

3.2系统架构 (11)

3.3应用程序框架 (13)

3.4搭建Android开发环境 (15)

3.5配置和编译U-boot (16)

第4章移动视频监控系统总体设计 (18)

4.1系统总体结构设计 (18)

4.2服务器端软件设计 (18)

4.3 Android平台构成 (18)

4.4客户端软件设计 .................................................................... 错误!未定义书签。

4.5平台选择和开发语言 (21)

第5章客户端和服务器端软件的设计与实现 (23)

5.1客户端界面设计与实现 (23)

5.2客户端各模块设计与实现 (24)

5.2.1视频解码模块 (25)

5.2.3 VideoCodec模块 (26)

5.2.4流媒休协议模块 (27)

5.2.5 Socket模块 (28)

第6章总结与展望 (29)

6.1系统总体测试结果 (29)

6.2论文总结 (29)

6.3工作展望 (30)

参考文献 (30)

致谢 (32)

第一章绪论

本章主要介绍了视频监控的发展和移动视频监控的未来发展趋势,以及研究视频监控的背景和内容,简述了本论文的结构安排。

1.1视频监控

视频监控是一种防范能力较强的综合系统,是安全防范系统的重要组成部分。视频监控拥有直观、准确、及时和信息丰富等优点,能够广泛应用于各种场合。近年来,随着网络音视频技术和移动通信技术的飞速发展,视频监控技术也有了长足的进步。

视频监控在安全领域发挥着巨大作用,特别是在重要安全部门或重大事件中,如北京奥运会和上海世博会等安防监控中。二十一世纪以来,世界恶性突发事件以及恐怖主义袭击也日趋增多,无论在规模、范围、频率,还是在手段、技术、危害性等方面,都已经达到了十分严重的程度,具有复杂性、突发性、难以预测、事先征兆少等特征。所以,视频监控技术作为安防系统的重要组成部分,日益受到关注和重视。

1.2移动视频监控

如今,以嵌入式技术为依托,以网络、通信技术为平台的网络视频监控,已经越来越成熟,应用范围越来越广阔。首先网络视频监控技术突破了地域的限制,实现了远程监控,可是,随着“Any Time、Any Where、Any Device”概念的倡导,鉴于互联网接入服务的局限性,相关管理人员的流动性等多方面的因素,基于网络视频监控的防范系统的弊端逐步显现,已经不能满足用户日益增长的多元化的需求。

移动视频监控应运而生,把网络视频监控与智能移动终端相结合,就可以满足用户在任何地点任何时候都可以对所需要的监控点进行视频监控的需求。移动视频监控技术不仅克服了普通网络视频监控对监控客户端地点上的限制,还进一步缩短了处理紧急情况的反应时间。

移动视频监控在任何时间,任何地点,任何设备概念的倡导下,近年发展迅速,尤其是随着智能手机的普及,移动视频监控将在安全防范领域日益发展壮大,发挥重要作用。

1.3研究背景与内容

基于传统的网络视频监控,人们在远程视频监控和远程控制时需要考虑传输线路建设的成本问题。如森林火灾预防、高速公路监测以及偏远地区监控,由于地域的广阔性,分布的分散性,有线网络建设和室外线路的维修费用非常之昂贵,这将直接影响到视频监控的发展。

随着移动通信技术,智能终端技术的快速发展,极大地推动了移动视频监控的发展。目前国内外众多IT公司在移动视频监控领域,投入大规模的人力物力进行项目研究和开发。鉴于在各高校和研究所,移动视频相关技术也是研究热点,相信相关技术的持续革新将为移动视频监控的可持续发展开辟广阔的道路。

基于无线网络将是今后监控设备的必然选择,移动智能终端是监控应用的最佳平台;移动视频监控市场的繁荣带动了更多的服务商加入到这一行列,为广大用户提供更加完善和个性化的移动视频监控服务。随着3G、4G的成熟,LTE网络商用时代的到来,移动视频监控技术将逐步走向成熟和稳定。

在移动智能终端方面,Android智能操作系统成为近年来最受关注的操作系统,由于它的免费性,以及系统的开放性,使开发人员可以随时取得程序的源代码,这对于程序开发人员和运营商定制非常重要。在移动智能终端支持方面,三星、摩托罗拉、多普达等国际一线厂商在2014年几乎倾倒性的发展Android,尤其摩托罗拉几乎将2014年发布的所有智能手机都预装Android平台,在2014年第一季度Android操作系统已经跃居智能终端操作系统的榜首。

结合3G移动网络平台开发出一个基于Android的智能手机平台,对企业而言,符合未来移动通信技术的发展方向,更是企业在移动通信技术领域通过不断积累,培养核心竞争力的良机。因此,基于Android智能手机远程视频监控系统具有重大的现实意义。

智能手机远程视频监控是移动智能终端和传统网络安防行业相结合的结果,将互联网、移动通讯和安全防范融为一体,把系统集成技术转化成潜在的产品应用,通过智能手机实现查看远程实时动态画面的功能,为企业与家庭提供了更便利、更简单、更及时的监控解决方案。

目前在北美和欧洲等无线网络发达的地区,由于得到政府的大力支持,移动视频监控市场发展非常迅速,推广非常有力,在亚洲地区的日本和新加坡,也都将移动视频监控纳入积极发展领域。

在我国,运营商全业务运营的时代已经到来,运营商将会给用户提供包括无线和有线在内的多样化技术监控服务,通过业务融合,给用户提供无所不在的监控服务。而智能手机监控终端必将成为通用的移动监控方式,具有广阔的市场发展前景。

本文完成了基于Android智能手机远程视频监控系统的设计与实现。通过学习Android 操作系统相关技术,提出基于Android操作系统智能手机平台的方案。通过对移动视频监控相关技术的研究,提出视频监控终端客户端软件的设计方案和服务器端视频采集,存储,转发的设计方案。

通过学习相关的软件开发知识,Android平台开发知识,编程实现基于Android 的客户端视频监控软件。研究相关的RTP/RTCP、RTSP流媒体协议,HTTP协议,编

解码算法,实现Android智能手机实时视频播放,对整个视频监控系统提出可操作性方案,并最终通过软件调试,在实验室环境完成整个系统的联调和实际效果展示。

1.4论文结构安排

根据本论文研究的内容和层次,将本课题分为以下7个章节:

第1章简要介绍了视频监控的发展,移动视频监控的现状,趋势,并说明了本课题的研究背景与内容及本文主要完成的工作。

第2章主要介绍了移动智能终端的结构与支持的业务,移动流媒体技术的相关协议,视频压缩标准等,指出了本文相关设计的理论基础。

第3章主要介绍软件开发平台Android操作系统的基本知识,Android操作系统平台的设计与实现,如eclipse软件平台搭建,操作系统体系框架,应用程序开发流程和Android的特有机制等。

第4章提出了移动视频监控系统总体设计方案,主要包括摄像头采集端和安卓客户端,着重介绍了本系统设计的手机客户端软件模块。

第5章主要介绍了移动智能手机客户端,并详细介绍了手机客户端软件的设计与实现,包括界面UI设计和各模块设计等。

第6章总结本文工作内容和本文的研究成果,提出进一步研究发展的方向。

第2章移动视频监控关键技术研究

本章介绍了移动智能终端技术,移动流媒体技术和视频压缩编码技术等移动视频监控关键技术。对比分析了各种智能手机操作系统,选择Android操作系统作为开发平台。介绍了移动流媒体传输和控制协议,以及实时传输的基本原理,选择了RTP,RTCP,RTSP,HTTP协议作为通信协议来完成程序设计。对比分析了MPEG.4和视频编码标准,结合移动视频监控系统的要求,选择MPEG.4视频编解码标准。

2.1移动智能终端

随着全球3G移动通信技术的飞速发展,移动终端的功能特点发生了巨大的变化,移动终端已经从简单的通话工具,逐渐演变成一个移动的个人信息收集和处理平台。移动智能终端作为一个集先进的无线通信技术和强大的个人数字信息处理计算平台功能于一身的终端,无疑将成为人们日常生活的必需品。

2.1.1移动智能终端体系结构

典型的具有开放式操作系统的终端架构如2.1所示,自上而下分为5层,下面简述各层的功能。

表2.1开放式操作系统终端架构

应用层

用户界面层(UI)

业务能力层

操作系统层(OS)

硬件驱动层

硬件驱动层:位于底层,由硬件部分和驱动部分组成,为上层操作系统提供抽象的概念和功能性支撑。由于其抽象性,操作系统可以运行在不同的硬件设备上,从而具有灵活的移植性。

操作系统层:为上层的应用程序提供接口和重要的核心功能,本层提供了人机交互的友好界面,可实现内存管理,多任务调度和文件系统等支持。

业务能力层:本层介于应用软件和操作系统之间,主要包含通用和通信功能。通

用功能提供多媒体子系统和安全子系统;通信功能提供通话,无线协议栈等支持。

用户界面层:UI层是最终用户可视化操作的用户界面层,提供良好的人机界面,方便用户的操作。

应用层:本层基于业务能力层,给用户提供多种应用,如个人信息管理,消息类业移动智能终端的硬件技术主要包括处理器技术,射频技术和显示技术等。软件平台的核心是操作系统,中间件和系统协议栈等。本文在平台搭建和软件开发过程中只叙述实现本系统相关的技术及配置要求。

2.1.2移动智能终端支持的业务

移动智能终端能够提供无线通信技术,个人信息平台处理和计算平台等强大的功能,支持的相关业务如表2.2所示。

表2.2终端所支持的业务

功能通信图像音乐视频生活

基本功能语音相机音乐播放视频播放个性化定

制界面

数据通信图片打印

本文开发的上层应用部分是移动远程视频监控,能够满足普通移动视频监控系统对Android方面的的基本要求。

2.1.3智能手机操作系统

智能手机为移动视频监控系统提供了良好的开发平台,而智能手机操作系统为监控客户端提供软件开发和运行环境,智能操作系统的特性直接影响到人机交互的易用性和稳定性。目前主流的智能手机操作系统为Windows Phone,Android和Sysbian 操作系统。

1. Windows Phone

Windows Phone 是微软公司发命的一款智能手机操作系统。Windows Phone 具有桌面定制、图标拖拽和滑动控制等一系列操作体验。其优点是具有十分强大的功能,友好的操作界面,包含OFFICE全套办公软件,音视频播放和即时通讯等功能;其缺点是功耗较大和硬件成本较高。微软作为软件提供商,提供强大的技术支持。Windows Phone 是在Windows Mobile的基础上发展而来,但是重新设计了架构,不同于过去的操作系统,在易用性和互动性等方面有着优秀的品质,发展前景良好。

2. Android

Android是基于Linux平台的开源手机操作系统,是Google及其开放手机联盟共

同研发推出的操作系统,并于2007年11月5日正式发布。Android具有开放性、互联性、无界性、平等性和并行性5大特点。在智能手机领域超高速的发展,手机厂商几乎压倒性的全面投入到基于Android操作系统的手机开发中,展示了其广阔的市场前景。

3. Sysbian

Sysbian操作系统的前身是英国宝意昂公司(Psion)的EPOC操作系统。1998年6月,诺基亚、摩托罗拉、爱立信、三菱和宝意昂在英国伦敦共同投资成立Sysbian公司。Sysbian作为一款相当成熟的操作系统,具有比较固定的硬件组成,比较低的研发成本。系统具有低功耗、高处理性能、运行安全、稳定性和多线程等特性。其缺点则表现为,多媒体支持较差,平台版本间不兼容,各平台软件不兼容,细节功能不丰富,不方便手机厂商基本功能的开发等。

综合上述主流操作系统的优劣,对比分析这3个操作系统,考虑到普及性、发展实力、市场份额和移动视频监控开发的可行性等因素,本文选择Android操作系统作为开发平台。Android发展迅猛,在2011第一季度市场份额已经超越其它操作系统,跃居榜首。其强大的技术队伍,在Google的推动下,已经成为一个专业、易用和开放的平台。

2.2移动流媒体技术

移动流媒体技术就是把连续的声音影像信息经过压缩处理后传送到网络服务器上,让终端用户能够在下载的同时观看收听,而不需要等到全部的多媒体文件下载完成就可以即时观看的技术。移动流媒体技术的出现是伴随着移动通信技术的发展和网络音视频技术的进步,其主要是关于流媒体数据从采集到播放整个过程中所需要的核心技术。

移动流媒体数据流具有三个特点:连续性,实时性,时序性。所以流媒体数据流具有严格的前后时序关系。

流媒体传输技术是在FTP/TCP的基础上发展而来的。服务器按照一定的顺序将文件分割成若干个数据分段,然后封装到分组中依次进行传输,客户端接收到分组后重新将其组装起来,最终形成一个与原来一样的完整文件。

流媒体播放技术有优点也有缺点。优点是能够及时传送随时播放,虽然在开始阶段需要一定的时间进行缓冲,但依然能够在实时性要求高的领域具有无可比拟的优势;缺点是由于网络的速率不稳定性,当播放速率大于传输速率时,视频播放将出现停滞,时断时续的现象。

流媒体传输和控制协议在应用层主要涉及到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模型的位置

应用层HTTP RTSP

传输层TCP RTP RTCP

UDP

网络层IP

数据链接层网络相关协议

物理层无线传输介质

RTCP是一个控制协议,负责管理数据传输质量,提供当前应用进程的控制信息和可靠的传送机制。RTP和RTCP共同协作才能完成流媒体的传输和控制。

实时流协议(RTSP)是应用层协议,位于RTP和RTCP协议层之上,通过IP网络传送多媒体数据,在传送机制上采用TCP和RTP完成数据传输。RTSP用于控制实时数据的发送,提供用于音视频流的VCR远程控制功能和用于控制流媒体的播放,暂停,记录等操作。

会话描述协议SDP(Session Description Protocol),SDP是用来描述RTSP,以便说明一个流媒体会话的基本属性,如流媒体的类型,格式,传输带宽,播放时间,缓存容量大小等。通常包含会话信息,媒体信息等。

结合移动视频监控系统对通信实现的特点,本文采用RTP,RTSP,RTCP和HTTP 协议完成视频监控系统的通信和远程控制。

一个最基本的流媒体系统包括编码器,流媒体服务器和客户端播放器三个部分,如图2.4所示。各个模块之间的数据通信交换都是按照特定的协议。编码器用来将原始的音视频转换成合适的流媒体格式文件,服务器用来接收和转发编码后的媒体流,客户端则是负责解码和播放接收到的流媒体数据。

PC

图像采集器编码器

服务器网络手机

图2.1流媒体系统组成

流式传输有2种方式,一种是顺序流式传输,一种是实时流式传输。

1)顺序流式传输

顺序流式传输就是顺序下载。用顺序流式传输方法基于标准HTTP或FTP服务器来传输文件,通常容易管理,方便用户的使用。通常不需要特殊的协议。整个下载过程是无损的,能够保证视频的高质量,但是用于网络传输速率的问题,一般需要等待较久的时间。顺序流式传输常用于对视频质量要求较高的场合,对实时性,随机访问性要求较高的场合则不适用。

2)实时流式传输

实时流式传输能够保证信号带宽与网络连接的匹配,实现实时传送,适合现场直播,支持随机访问,用户可进行快进后退操作。实时流式传输需要传输网络协议和专用的流媒体服务器。传输网络协议有RTSP等。由于这些协议与防火墙有关,在使用时需经过配置。系统设置,管理比顺序流式传输复杂。由于必须匹配连接带宽,在低速连接设备时或者网络拥塞时,会出现丢帧现象,导致视频质量下降。

如图2.5所示的实时传输过程,下面以实时流式传输为例简要说明流媒体传输的基本原理。

1. 当某个流媒体服务被用户选择后,Web浏览器和服务器之间使用HTTP/TCP 交换控制信息,从流媒体服务器中检索出音视频信息。

2.Web服务器从流媒体

服务器取出音视频。

3.终端上的Web浏览器启动客户端程序,使用HTTP从Web服务器检索到的相关数据对客户端程序进行初始化。

4.客户端程序与流媒体服务器之间使用RTSP来交换传输音视频数据的控制信

HTTP/TCP RTSP/TCP 息。 RTSP 实现对流媒体服务器的远程控制,如暂停,快进,回放等。

5.客户端程序通过RTP /UDP 协议从流媒体服务器接收到视频流,此时,客户端

使用播放程序即可播放视频流。

图2.2 实时传输过程

通过使用RTP /UDP 和RTSP 两种不同的通信协议,能够切换服务器和不同客户

端之间的通信绑定。

以上5个流程简要叙述了实时传输的整个过程。

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/UDP

第三章Android操作系统

本章主要介绍了Android操作系统的基本情况,系统架构,应用程序架构Android 开发平台的选择,Android操作系统操作平台实现的完整过程等。通过对各个部分的研究,为后续移动视频监控系统软件开发的具体设计和实现奠定基础。

3.1 Android操作系统概述

Android是基于eclipse平台的开源手机操作系统,是Google及其开放手机联盟共同研发推出的操作系统,并与2007年11月5日正式发布。Android由用户界面,中间件,操作系统和应用软件构成,基于eclipse平台,是专门为移动终端打造的开放完整的移动平台。

Android是Google公司进军移动互联网市场的重要组成部分,Google倡导“随时随地为每个人提供信息”的企业目标。Google通过与全球各地的移动运营商和手机制造商合作,开发各种实用的移动服务,并不断推出新的产品。

Android平台的研发阵容强大,由Google,HTC,T-Mobile,高通,摩托罗拉,三星,以及中国移动,联想,华为,中兴等30多家企业组成的开放手机联盟将基于该平台开发智能手机的新型业务。开放手机联盟表示,Android平台可以推动移动设备的不断创新,不断创造出友好的人机交互性和优质的移动服务。

Android作为第一个完整,开放,免费的手机平台,吸引了众多实力雄厚的手机厂商,2011年3月的数据显示,Android已经超越Sysbian的市场份额。随着Android 手机的普及,Android应用的需求势必会越来越大,这将是一个潜力巨大的市场。

Android平台的5大特点:

1. 开放性

Google与开放手机联盟合作开发Android,开发平台允许任何移动终端厂商加入到联盟中来。显著的开放性可以使其拥有更多的开发者。标准的开放式的移动终端平台将推动移动产业形成一个开放式的生态系统。

2. 无界性

Android上的应用程序可以通过标准API访问核心移动设备功能,通过互联网,应用程序可以声明它们的功能可供其它应用程序使用。

3.平等性

应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。

4.互联性

Android应用程序可以轻松的嵌入网络,嵌入HTML,JavaScript和样式表,还可

以通过WebView显示网络内容。

5.并行性

Android应用程序可以并行运行,Android是一种完整的多任务环境,可以并行运行,在后台运行时,应用程序可以生成通知以引起注意。

Android还具备强大的功能,包括智能虚拟键盘,Widget实现个性化,在线文件夹,视频录制和分享,图片上传,基于Webkit浏览器,V oiceSearch语音搜索,立体声蓝牙,强大的GPS技术等。

3.2系统架构

Android系统架构分为4层,从高到低分别是应用层,应用框架层,系统运行库层和Linux内核层。Android平台架构图如图3.1所示。

下面将对4层进行简要分析。

1.应用层

应用是用Java语言编写的运行在虚拟机上的程序。在Android 开始是已经捆绑了一些核心应用,如电话,地图,浏览器,联系人管理程序等。

2.应用框架层

本层是Google发布的核心应用时所使用的API框架。开发人员可以使用API框架进行开发,简化了程序开发的架构设计。从图3.1可以看出,包括如下组件:视图系统:通过列表,文本框和按钮等构建应用程序完成视图系统。

内容提供器:用于不同程序之间数据的共享,减少了对内存空间的占用,最大程度的利用各种资源。

资源管理器:主要用于非代码资源方面的应用。

通知管理器:通过在状态栏中出现已定义的提示信息向应用程序报告出现的情况等。

活动管理器:主要用于管理各个应用程序的生命周期,完成开始,挂起和结束等操

窗口管理器:主要用于各个窗口的管理。

包管理器:主要用于程序开发过程中对程序的管理。

3.系统运行库层

系统运行库是为上层应用程序框架层提供组件支持的,主要包含以下几个库:多媒体库:该库基于PacketVideo OpenCore,能够支持多种格式的音视频的回放和录制,以及图片浏览等。

SGL:2D图形引擎库。

SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。

OpenGL-3D效果的支持。

SQLite:关系数据库。

Webkit:Web浏览器引擎。

FreeType:位图及矢量。

APPLICATION

HOME CONTACT PHONE BROWER ..

Activitymanager Windowsmanger contprovider Viewsystem Notification Package manager Telephony Resource Location XMPP

Surface Media SQLite Core Libraries

OpenGLIES FreeType WedKit Dalvik

SGL SSL libc

Display Camera BlueTooth Flash Memory Binder

USB Driver Keypad wifi driver Audio Power

图3.1 Android平台架构图

Android每个程序都运行在Dalvik虚拟机上,每个程序都有自己的进程。Java程序通过编译之后,生成.class文件,还需要通过AndroidSDK中的dex具进行转化为.dex 可执行文件,因为在Android中的Dalvik虚拟机不同于Java中的虚拟机,Dalvik 虚拟机只能执行.dex文件。

因为每个应用中会定义很多类,在编译之后会有很多相应的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。发送的次序顺序接收。

3. Service: Service是Application运行时的子元紊。Service属于后台模块,启动后将长时间运行,除非停止该Service或所在应用进程被杀死。

4. Provider: Provider也是抑plication运行时的子元素。它继承于Content Provider,是对该应用管理的用户数据的结构化接入,是基于数据库操作方式的封装。如果应用允许外部应用访问/管理它的用户数据,Provider是Android平台提供的最佳方式。

应用程序中的重要组成部分是Activity, Intent, Service, Content Provider,下面详

细介绍各部分。

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再unbind Serviceo。

Intent:Intent描述了应用程序要做的东西,Intent数据结构主要包括动作和动作对应的数据。

动作:典型的动作包括PICK, VIEW, MAIN, EDIT等。动作对应的数据:通常使用URI来表现。

Android通过使用Intent这个特殊类,实现在屏幕与屏幕之间的转换。

Content Provider

Android应用程序能够将它们的数据保存到文件、SQLit。数据库中,或是其它有效的设备中。Content Provider类提供了一组标准的方法,保证了其它的应用程序可以读取或保存此。ntent Provider处理的数据类型。

Android默认使用SQLite作为系统数据库。

在Android中每一个应用都运行在各自的进程中,当你的应用需要访问其他应用的数据时,也就需要数据在不同的虚拟机之间传递,Content Provide:正是用来解决在不同的应用包之间共享数据的工具。

所有被Android应用程序创建的设置,文件和数据库都是私有的。应用程序可以

创建一个Content Provider共享其他应用程序的数据。

3.4搭建Android开发环境

安装步骤:

第一步,安装JDK,修改环境变量。

运行jdk-7u3-windows-i586.exe,一直点击下一步,直到完成为止。修改环境变量,在path变量值前加%JA V A_HOME%后点击确定,如图3.2所示。新建系统变量,变量值为jdk安装目录。如C:\Program Files\Java\jdk1.7.0_03\bin;

第二步,安装eclipse。

直接解压缩eclipse(英文版).zip或eclipse(中文版).rar 到指定目录如:D:\Android\eclipse\。

第三步,安装installer _r17-windows.exe

第四步,修改环境变量

将Android SDK中的tools绝对路径添加到系统PATH中,如PATH D:\Android\android-sdk\tools。“确定”后,重新启动计算机。把sdk-32位或sdk-64位解压到D:\Android\Android-sdk(即sdk安装目录下)。

图3.2修改系统变量

如有文件已存在选择全部替换。运行SDK Manager ,查看是否安装好,installed 表示已经安装,如图3.3所示,点击关闭。

第五步,安装 Android Development Tools (ADT )

打开eclipse.exe 进入菜单中的 “help ”-> “install New SoftWare...”然后点Add ,然后点击Archive...找到ADT-22.3.0.zip 所在目录(非中文),然后打开,出现如图

3.4所示,然后点击Select all ,点击Next ,直到完成。

第六步,安装Android 模拟器系统版本

第七步,启动Eclipse ,就可以新建Android 项目了。

3.5配置和编译U-boot

主要是根据内存大小进行配置,本系统是256MB 内存,配盖编译支持NAND 启动U-boot 的方法如下:

进入U-boot 源代码目录,执行: #cd /opt/FricndlyARM/mini6410/eclipse/u-boot-mini6410

图3.3新建系统变量

图3.4 SDK Manager 运行结果

Android简单的登陆界面的设计开发

通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名:

实训内容: 一.1.Andriod的简介 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread 和Android 3.0 Honeycomb。 Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 Android早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 2.Android构架图 二.1软件下载 Android SDK,网址是https://www.360docs.net/doc/0817204442.html,. JDK的下载地址https://www.360docs.net/doc/0817204442.html,/javase/downloads/widget/jdk6.jsp。Eclipse的下载网址是https://www.360docs.net/doc/0817204442.html,/downloads/ 2.Android开发环境搭建

android毕业设计(论文)开题报告

毕业设计(论文) 开题报告 题目___________________________ 学院___________________________ 专业及班级___________________________ 姓名___________________________ 学号___________________________ 指导教师 ___________________________ 日期 ___________________________

西安科技大学毕业设计(论文)开题报告

二、主要研究(设计)内容、研究(设计)思路及工作方法或工作流程 设计内容:基于Android平台下实现理货员的功能:精耕拜访,销售机会,拜访效果,门店销量查询,待办事项,数据维护:队列信息,基础信息,地图下载。 设计思路及工作方法: 1.精耕拜访: (1)初始进入该页面,系统会自动获取该理货员的本日拜访的门店及路线。 (2)下方地图会自动定位目前理货员的位置。 (3)点击门店的具体门店名称,在右边会显示该门店的联系人,电话,及地址,并且地图 会自动切换定位以该门店为中心。 (4)点击地图上的+可实现地图局部放大。-可实现地图的放小。 (5)如已拜访的门店,点击进入可以调去历史拜访数据。如未拜访的门店,点击进入可以新增该拜访记录。 (6)如理货员在拜访期间,发现门店已经有卖而目前系统中无记录的情况,则可以通过扫 描SKU的条形码,系统会自动匹配该SKU的信息给理货员。 匹配顺序:连锁总店—区域管理—基本SKU信息 补充说明: (1)公司动态内容,为了显示保乐力加集团的整体形象,有必要对公司的动态进行展示。 要包括集团的光辉历程,门店信息,集团的促销信息等。 (2)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员 需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且 分发。 (3)陈列报告,为显示每次理货员必须处理的门店信息记录及图片等。 (4)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (5)价格显示,系统会自动带出竞品信息。罗列在下半部。理货员在进行拜访期间,可以对本身的SKU及竞品的价格进行登记。主要登记内容:零售价格,促销价格及促销期间。信息采集完毕,可以供后台进行统计分析。 (7)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (7)库存信息,主要记录SKU的库存数量。 (8)上半部为助销申请内容,主要是对一些礼品的申请。 (9)订单处理,为新增订单,退货内容及换货内容的跟踪。 2.销售机会: (1)打开销售机会界面,会自动定位目前的门店列表。 (2)用户可以输入门店名称查询具体的门店信息及地图位置。

第4章 Android用户界面设计

视图组件的使用模式 常用组件 高级组件 提示框与警告对话框

就是Android应用程序的开发过程。一般过程是先通过XML布局文件或Java代码创建界面布局,设定组件显示样式,随后获取UI组件对象,并处理组件事件响应。 视图组件的定义 资源的访问 生成视图组件资源标识 视图组件的引用 视图组件的事件响应 组件的常用属性

1.1视图组件的定义 使用XML布局文件定义视图组件 使用Java代码定义视图组件(不推荐)

1.1视图组件的定义 使用XML布局文件定义视图组件 Android平台为大多数视图组件以及其子类提供了XML标记,可通过XML布局文件中的标记来定义视图组件。XML中的每个元素代表了一个组件,即元素名称对应相应的Java类。

1.1视图组件的定义

相关文档
最新文档