-王冉冉-信息科学与工程学院-电子与通信工程_W_第1页
-王冉冉-信息科学与工程学院-电子与通信工程_W_第2页
-王冉冉-信息科学与工程学院-电子与通信工程_W_第3页
-王冉冉-信息科学与工程学院-电子与通信工程_W_第4页
-王冉冉-信息科学与工程学院-电子与通信工程_W_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 文本复制检测报告单(全文标明引文) 检测文献:作者:检测范围:21110233010-王冉冉-信息科学与工程学院-电子与通信工程王冉冉 中国学术期刊网络出版总库 中国博士学位论文全文数据库/中国优秀硕士学位论文全文数据库中国重要会议论文全文数据库 中国重要报纸全文数据库中国专利全文数据库 互联网资源 研究生学位论文(TMLC)期刊数据库等)英文数据库(涵盖期刊、博硕、会议的英文数据以及德国Springer、英国Taylor&Francis台学术文献库 优先出版文献库互联网文档资源个人比对库 时间范围:1900-01-01至2013-03-24 - 1 -1. 21110233010-王冉冉-

2、信息科学与工程学院-电子与通信工程_第1部分总字数:11830 文字复制比:23.3%(2760)(0) 1 手势识别技术的研究 6.6% 杨青(导师:殷福亮;陈喆) - 大连理工大学硕士论文- 2010-12-09 是否引证:是 2 基于Android平台音乐播放器的设计与实现 5.4% 许瑾(导师:吴国仕) - 北京邮电大学硕士论文- 2011-05-01 是否引证:否 3 Android系统架构基本模式解析 4.7% - 网络()- 是否引证:否 4 基于Google Android平台平板电脑应用程序开发 4.1% ; - 科技信息- 2011-0

3、4-05 是否引证:否 5 Android面试之Android系统架构图及简单的系统架构介绍 - Android 4.1% - 网络()- 2012-06-04 是否引证:否 6 android面试题总结加强版(一) - 亨利摩根的专栏 - 博客频道 - CSDN.NET 4.1% - 网络()- 2012-06-04 是否引证:否 7 Google Magic(G2) 技术|手机 技术|Android系统架构|IT168 技术开发 4.1% - 网络(http:/tech.it168.co)- 是否引证:否 总文字复

4、制比:15%去除引用文献复制比:8.6%去除本人已发表文献复制比:15% 单篇最大文字复制比:2.3% 重复字数: 5143总字数:34384单篇最大重复字数:783 总段落数: 3前部重合字数:2760疑似段落最大重合字数:2760 疑似段落数:3后部重合字数:2383疑似段落最小重合字数:460 指标:剽窃观点 自我剽窃一稿多投过度引用整体剽窃重复发表剽窃文字表述 表格:0脚注与尾注:0 23.3%(2760) 21110233010-王冉冉-信息科学与工程学院-电子与通信工程_第1部分(总11830字) 15.5%(1923) 21110233010-王冉冉-信息科学与工程学院-电子与通

5、信工程_第2部分(总12395字) 4.5%(460)21110233010-王冉冉-信息科学与工程学院-电子与通信工程_第3部分(总10159字) (注释:无问题部分文字复制比部分引用部分) ADBD2013R_2013032412453120130324124729200556751383检测时间:2013-03-24 12:47:29 3.9%贾文杰(导师:孙志锋) - 浙江大学硕士论文- 2012-01-18是否引证:否9基于Android平台的农业新品种推广信息采集系统3.7%张淑苗;张伟;李丽; - 农业网络信息- 2012-03-26是否引证:否10android面试题总结 -

6、亨利摩根的专栏 - 博客频道 - CSDN.NET3.6%- 网络()- 2012-06-04 是否引证:否11Android简明开发教程一:概述 - 引路蜂移动软件 - 博客频道 -CSDN.NET3.5%- 网络()- 2012-06-04 是否引证:否12基于android平台的资源管理器设计3.4%陈勋(导师:李建平) - 电子科技大学硕士论文- 2011-03-01是否引证:否13基于Android手机的远程访问和控制系统3.2%耿东久;索岳;陈渝;文军;吕勇强; - 计算机应用- 2011-02-01是否引

7、证:否14基于Android的视频编解码及显示存储系统设计及实现3.2%赵越(导师:彭) - 河南师范大学硕士论文- 2012-05-01是否引证:否15转Android2.2快速入门 - freeliver54 - 博客园3.2%- 网络(blogs.c)- 2011-05-31 是否引证:否16Android2.2快速入门 - chenjie3392593的专栏 - 博客频道 -CSDN.NET3.2%- 网络()- 2012-06-07 是否引证:否17采用H.264传输协议的视频发送/接收系统3.0%宋强(导师:宋占伟) -

8、 吉林大学硕士论文- 2012-04-01是否引证:否18基于Android系统的智能家居控制终端研究与实现2.6%蒲路萍;付蔚; - 世界电子元器件- 2012-12-15是否引证:否19移动多媒体推送业务终端功能研究2.5%苏毅(导师:楼培德) - 北京邮电大学硕士论文- 2009-02-15是否引证:否20创新技术扑面而来 彩电企业“跑马圈地” 1.7%本报王耀翠 - 中国高新技术产业- 2013-01-21 是否引证:否原文内容1 绪论 1.1 引言 电视,是家庭娱乐休闲中必不可少的家用电器。如今,电视依然是最为普及、最为广泛、传播最为迅捷、大家最为接受的信息传播载体。随着科学技术的发

9、展,电视迎来了智能化浪潮。智能电视为全开放式平台,搭载操作系统,用户在观看普通节目的同时,还可以上网、娱乐通信等,是不断对功能进行扩充和升级的新品。新品功能如百花齐放给用户带来耳目一新个性化的体验。随着用户对科技生活的需求,智能电视已不只是一种放映工具,更是享受生活的方式和获得综合服务的智能平台。为顺应电视不断 高清化、网络化、智能化的趋势,仅仅用遥控器来控制电视已不能充分满足用户的需求,如何更好自然灵活的操纵电视将成为至关重要的问题。 1.2 研究的背景和意义 1.2.1 智能电视的操作系统 智能电视及至电视行业全面进入智能电视时代,这个时候的电视亦可称之为“泛电视化”时代。因为这个时代,电

10、视产品已不再是传统电视厂商的专利。光明的市场前景从而吸引很多公司涉足电视行业,如谷歌、苹果、微软。3C(Computer, Communication和Consummer)逐渐融合,平板电脑便是其代表产品。面对泛电视化时代的到来,这既为机遇更是挑战,因为每一台电视(移动终端或电脑)要拥有互联互通功能,这将改变电视行业的核心竞争点。不仅在制造和销售渠道能力方面比拼,更要在用户体验、软件、芯片等产业链的整合上竞争。智能电视的发展将打乱电视产业旧有格局。智能电视通常被认为是传统电视和互联网的融合。它不仅能够提供丰富的电视节目内容,而且可以使用户访问到海量的网络资源。智能电视甚至可以作为很多交互式应用

11、的运行终端。因此,智能电视要拥有自己独特的操作系统。 目前,苹果、谷歌和微软牢牢把持着智能电视的操作系统,因为他们掌握着“根系统”Android、Windows8和iOS。相比之下,Android系统是开源全开放式平台,所有第三方应用开发人员都可进行开发并实现功能应用。因此,智能电视的最佳选择是Android系统,成为继手机后又一新的应用终端。故本文研究的平台是基于Android操作系统的智能电视。 1.2.2 智能电视的交互方式 为利于分析,将智能电视的交互方式划分为三类:基于按键遥控器的交互方式、借助于电脑或智能手机的交互方式、基于自然用户接口(Natural User Interface

12、,NUI)的交互方式。 * 基于按键遥控器的交互方式 随着智能电视迅速发展,各项新功能层出不穷,遥控器的设计则成为提高用户体验度的关键所在。此交互方式的主要问题在于按键数目的多少。为适应智能电视日益增长的交互需求,通常采用不断增加按键数目。但是密集的按键反而令用户感到困- 2 - 8 基于Android平台的智能旅游系统的设计与实现 惑,遥控器体积增大,单手操作不灵活,使用不便;同时,在网络功能不断强大的今天,电视也将面临更多文字输入问题,这给传统遥控器带来很大挑战;此外,特别是对中老年人,可能会抱怨“功能越来越多,使用越来越难”。 虽然可以通过合理的按键组合和菜单设计精简按键的数目,但是按键

13、数减少同时也意味着操作效率的下降,因为同一个功能可以需要更多的按键组合才能完成。除此之外,也未能解决智能电视所带来的光标定位和文本输入等问题。 * 借助电脑和智能手机的交互方式 此交互方式基本上是从个人计算机和智能手机等平台平移过来的。基于智能电视越来越像个人计算机的直观认识,键盘、鼠标等输入设备随之被移植到了电视平台。于是在电视上,用户也可以通过键盘输入信息,使用鼠标选择目标。 这种交互方式虽然解决了因功能增多给智能电视的交互需求,但却忽略了与其他平台的差异。将个人计算机的输入设备移植到电视平台,表面上好像满足了用户需求,但实际上却忽略了设备可用性和用户体验。例如,当收看电视节目时,用户并没

14、有固定的姿态,往往是随意的躺在沙发上,而并非端坐在办公桌前。因为没有了固定的操作平面,所以鼠标、键盘的方式并不适合直接应用到电视平台。 * NUI的交互技术 这类交互方式通常利用了语音、手势、体感识别等自然用户接口。从用户的角度出发,这类交互方式往往是最自然、简单、人性化的。但这类交互方式要完全应用到实际产品中还有很长一段路要走。1.2.3研究的目的及意义 为了充分满足用户需求,适应电视智能化方向发展的趋势,如何方便、有效地控制电视已经成为一个研究热点。近年来随着科学技术和人类社会的进步,人机交互技术已是当前信息产业竞争的一个焦点;世界各国都将人机交互技术作为重点研究的一项关键技术,以不可见、

15、可移动为特征的无所不在的计算和三维沉浸为特征的虚拟现实环境,将是人机交互面临的重大挑战和研究目标。应人们对人与机器之间自然、高效的交互要求,手势识别技术在模式识别和人机交互领域中快速地发展,其应用范围和领域非常广泛,主要包括教育、商务办公设备领域;消费类产品如空鼠、电视遥控、游戏范围等应用也有很大的潜力。随着人们对现活便利性和趣味性的需求增加,手势识别技术将被应用到多个产品市场,比如在与人们日常生活紧密相关的办品、个人消费电子产品和家电产品等领域。无论从产品应用领域的多样性还是从客户需求的基础来看,手势运动识别技术的产品应用生命力是很值得期待的。三维的手势识别交互设备还可用于虚拟环境的交互,如

16、虚拟制造和装备、多通道、多媒体用户界面、机器机械手的抓取等。手势研究典型的应用领域有:智能控制、运动分析、虚拟现实等。利用手势以及更多输入通道获得用户丰富的交互意图是当前研究人机交互技术发展的新、新课题。手势作为一种自然而直接的交流方式,在人与人的交际过程中得到广泛应用;与其它方式相比,独立于语言存在,更显直观简洁方便。因此,手势遥控电视有着重要的理论研究价值和应用前景。这一设计优势如下: * 为电视用户创造简便、舒适的交互环境 首先,在电视基本操作方面,如通过遥控器实现电视的开、关、节目更换、音量控制、网页图片浏览、家庭娱乐以及通讯等,鉴于前述遥控器的不便,采用简洁直观的左挥手右挥手、拖拽、

17、握拳抓取、前后推等简单手势对电视进行控制,这无疑为广大电视用户带来了一种全新的更为简单方便舒适直观的使用方式。 * 为一些特殊群体提供无障碍化使用方法 对于年迈老人,易看不清遥控器功能指示或按键不灵活,徒手控制将更为直观;对于手部残疾者,使用遥控器可能较困难甚至需要一番训练,手势控制电视仅需挥动手臂或移动手位来操作;另外,对于身体有残疾移动不方便的用户,要想满足需求,获取遥控器必定是使用过程中的障碍之一。若采用手势识别技术,毋庸置疑,该技术为他们提供了一种无障碍化使用途径 ,提高了生活质量。 * 提高用户体验度,为人机交互界面提供更加自然、灵活方便的方式 任何人机交互界面的成功关键在于对人的意

18、图的支持程度。这种支持包括跟踪人原有的意图、刺激人应用的意图、帮助人执行意图。信息技术的快速发展激发了人们对人机交互更加拟人化、自然化的渴望,要求用户体验不断提高。人们之间的交流方式是多种多样的,彼此交流时除使用口语、书面语等自然语言外,还会借助表情动作、手势、体势等人体语言来辅助表达和理解;然而,与机器交流是没有动作表情的。由此可见,让机器感知人体语言,对于提高人机交互水平和加强人机接口的可实用性具有不可估量的意义【1】。而手势生动、形象、直观,具有很强的视觉冲击效果;不仅包含大量交互信息,还有着与自然语言一样的表达能力。因此,手势识别为人机交互界面提供了一种更加自然、灵活方便的方式。 彻底

19、摆脱遥控器,这是未来智能电视发展的方向。无论未来电视最终是由谷歌、苹果或是其他巨头来重新定义,体感技术一定是改写电视功能的重要一环。那么,研究三维手势识别技术将体现出非同寻常的价值和重要意义。未来站在电视前“手舞足蹈”,或许会成为客厅里的常见情景,体感游戏就成了智能电视的新机会。体感游戏结合智能电视的大屏幕,会给用户带来身临其境随心所欲的体验。这是智能电视的一个必然趋势,也是智能电视应用的核心发展方向之一。 本文主要研究基于视觉的手势识别技术在智能电视上的应用,解决遥控器的局限性,增加用户体验性和提高用户满意度 ,实现自然灵活的人机互动。智能地操控电视,精彩影视随心享受,体感游戏如同身临其境,

20、建立了一种自然和谐的人机交互环境;手势遥控的实施,将提高智能家电的应用发展,具有重大的经济效益及公益影响和广阔的市场前景。 1.3 手势识别国内外研究现状 随着计算机技术的发展,人机交互技术已经逐渐从以计算机技术为中心转变到以人为中心,基于视觉的手势识别研究正是顺应了这一潮流。 在国外,手势识别技术的研究有着一定的历史。历史上,GrimeS最早利用数据手套实现手势识别,并获得AT&T“数据手套”专利;1991年,富士通实验室进行了手势识别系统相关方面的研究,设计的识别系统能识别46个手势符号;1995年 ,christopher Lee等人成功地研究出手势命令操作系统;tarnef OPenC

21、v等使用隐马尔可夫模型实现了对短句子的识别,识别率达到99.2%;Intel的手势识别系统,实现了与位姿无关的基于立体视觉和Hu矩特征的识别【1】。目前,为利用手势操控消费电子产品,许多公司研发产品为其搭建平台。微软的Kinect基于手势控制应用于XBOX360是一个巨大的进步,增加了体感游戏的用户体验度,犹如身临其境使用户得心应手。PointGrab提供的手势识别软件,利用摄像头插在电视电脑上,可以远距离控制电脑电视等,EyeSight提供基于视觉的手势平台进行平面手势操作,XTR技术是根据图像处理的专有引擎,对于每个和每一个输入帧能够准确提取在实时的三维人体模型,骨架分析可以实时检测运动。

22、 相对于国外而言,对手势识别的研究我国国内起步较晚,但近几年来发展较快。例如,哈尔滨工业大学的高文等人用18个CyberGlove型号的数据手套,结合ANN与HMM模型训练手势,实现了对孤立词的识别,识别率超过90%;清华大学的祝远新、徐光等给出的基于视觉的识别技术,能够识别12种动态孤立手势,识别率达90%;大学的Liang等人设计的手势识别系统通过单个VPL数据手套实现了湾手语课本中的基本字条的识别,准确率达90.5%;AdaBoost训练识别算法作了改进,用于手势识别达到了不错的效果;上海大学的段洪伟用Ls一svM算法实现了对静态手势的识别,并使用HMM模型实现了对动态手势的识别 ;山东

23、大学的徐立群等提出了一种改进的cAMsHIFT算法跟踪手势,提取出动态手势的轨迹特征后实现6种手势的识别;北京大学的、葛文兵等人利用平面立体匹配算法得到三维手势信息,实现了基于立体视觉的手势识别【1】。在电子消费类产品领域,特别是电视产业不断引进国外先进技术,将这些先进技术应用到电视上,完美实现人机高效自然地交互。在电视前玩体感游戏,不仅给用户带来很大的欢乐,而且可以得到有效的放松和起到健身作用。 在2013年1月11日结束的CES(国际消费电子展)上,几乎所有的电视厂商都把体感技术作为一大卖点。包括三星、联想、海尔在内的厂商都重点展示了电视上的“体感游戏”并提供体验。这原本是传统游戏设备商们

24、所提供的体验。现在,电视智能化浪潮,好像使电视厂商们逐步分食这一市场。现如今,体感游戏给电视行业带来很多的冲击效果,激发了智能电视更多的发展空间。 1.4 本文所做工作和结构安排 本文主要研究手势识别技术在智能电视上的应用和实现。针对所研究内容制定本文结构如下: 第一章为绪论,主要介绍了智能电视的发展及交互方式、研究的目的意义、手势识别技术国内外的研究现状及本文的研究方向; 第二章为智能电视系统架构,分别在Android的系统框架、四大组件、Linux输入子系统手势识别技术在基于Android平台的智能电视上的应用与实现奠定了基础; 传输等方面做了详细分析,为第三章为手势识别技术的理论概述,介

25、绍了手势识别定义及分类、基于视觉手势识别理论框架,讲述了Android平台中实现手势识别的原理; 第四章和第五章为本文的重点内容,运用EyeSight二维手势识别技术,将其整合到Android智能电视上,从而实现手势对智能电视的控制。同时,为了实现更好的人机交互,概述了三维手势识别技术在智能电视上的应用,研究了使用PrimeSense 3D摄像头和其所提供的软件支持手势追踪和骨骼追踪在智能电视上的实现。 第六章对本文所研究课题进行总结及展望。 1.5 本章小结 本章主要介绍了智能电视的发展交互方式,阐述了研究本课题研究的目的和意义,说明了手势识别国内外研究现状和本文结构安排。 2智能电视系统架

26、构 随着移动互联网的发展,电视作为人们获取信息的重要载体之一同样面临着又一次技术革新浪潮,人们要求电视不再只具备被动的显示功能,而是要能够参与互动的“伙伴”。于是,智能电视应运而生。 Android,本意是指“机器人”,是一种以Linux为基础的开放源代码操作系统,是谷歌(Google)公司推出的手机开发平台 。Android开发平台由操作系统、中间件、用户界面和应用软件组成。简单的讲,是基于java语言并运行在Linux上的轻量级的功能全面的操作系统。以下为Android系统优势: 1. 采取开源措施,其源代码无论何人或组织可免费获得,故可按需自定义且降低实现成本,有助于自主化; 2. 嵌入

27、式设备被专门优化过(如系统C库、Dalvik虚拟机),为多媒体提供多种接口且性能优异,支持近乎所有多媒体格式;3. 应用程序开发采用Java语言,具有良好的可维护性和可扩展性; 4. 支持的设备广泛。根据谷歌公司制定的Android发展远景,Android系统将被用在各种嵌入式设备之中,从手机、平板电脑再到智能电视、智能家居、导航系统等; 5. 在2007年推出,国内外相关的研究和应用正展开不久,研究和使用Android系统有利于抢占智能终端领域研究的制高点。 基于以上上述优势,本课题智能终端平台选择使用Android系统。2.1 Android系统架构 - 4 - Android系统是一开发

28、平台,其体系架构图如图2-1所示。图2-1 Android体系架构图 由Android体系架构图可知,Android系统自底向上一共分为Linux内核、库和运行环境、应用框架层以及应用程序层。每一次都把底层实现封装,并暴露调用接口给上一层。下面对每层简介如下。 (1) Linux内核(Linux Core) Android也并非完全从头到尾由Google研发,其底层是一个基于Linux Kernel2.6(开源并提供公开下载)上开发分独立操作平台。底层主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层是硬件和软件栈之间的抽象层。同时,用来提供系统的底

29、层服务,包括安全机制、网络堆栈以及一系列的驱动模块等。Linux内核不仅是文件管理这么简单。内核建立了计算机软件和硬件之间通信的平台,提供系统服务,比如文件管理、虚拟内存、设备I/O等,可以把Linux装在优盘或移动硬盘中。 (2) 中间件(Libraries&Android runtime) 中间件包括两部分:库和运行时(Libraries& Android runtime),目的是提供Java基本的运行环境和与标准J2SE兼容的类库。 a. 库(Liraries)是一个C/C+库的集合,供Android系统的各个组件使用。该层主要是通过应用程序框架(application framewor

30、k)为上层程序运行提供支持,主要有系统C库、媒体库(LibwebCore、SGL/3DIibrary等)、数据库SQLite、SurfaceManager显示系统管理库等。 * 系统C库名为Bionic是从BSD C library发展而来,为嵌入式Linux设备专门定制的,运行效率高; * 媒体库(Media Framework)负责支持图像、多种音视频的录制和回放,支持多种音视频格式以及静态图像如MPEG4、MP3、JPG、PNG等; *LibWebCore 新式Web浏览器引擎,驱动Android浏览器和内嵌web视图; SGL 基本的2D图形引擎; 3D库使用高度优化的3D软件光栅或硬

31、件可用时使用硬件3D加速; FreeType 位图和矢量字体渲染; SQLite 所有应用程序都可使用的强大而轻量级的关系数据库引擎【2】;SurfaceManager显示系统管理库,负责把2D或3D内容显示到屏幕。 b. 运 行 时 (Android runtime) Android包含一个核心库集合,提供大部分在Java语言核心类库中可用的功能。Dalvik虚拟机中的每个实例是Android应用程序,运行在他们自己进程中。 Dalvik虚拟机所依赖的部分基本功能是由Limix内核提供,如线程和底层内存管理。它的设计是一个设备可以高效地运行多个虚拟机。与Java虚拟机相比不同的是,每个And

32、roid应用程序都运行在自己的进程中,都有一个属于自己的Dalvik虚拟机 ,这让系统在运行时具有运行效率高、代码密度小、节省资源等特点,极大地降低了程序间的影响。Dalvik虚拟机使用自定义的字节码格式(称为dex文件,.dex),不兼容现有Java字节码格式。Android里的dx工具负责把Java字节码转换为Dalvik字节码。 (3)应用程序框架(Application Framework) 开发者通过使用核心应用程序来调用Android框架提供的API,将此应用程序结构设计成方便复用的组件。它的功能可以被任何应用程序公布且允许其他应用程序使用(但框架会禁止涉及到系统安全问题的功能)。

33、该应用程序重用机制使用户可以方便地替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括: * 视图(Views) 可以用来构建应用程序,它包括列表、网格、文本框、按钮、可嵌入的Web浏览器; * 内容提供者(Content Providers) 使得应用程序可以访问另一个应用程序的数据(如联系人数据库)或者共享他们自己的数据; *资源管理器(Resource Manager) 提供非代码资源的访问,如本地字符串、图形和布局文件; 管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息; 活动管理器(Activity Manager) 用来

34、管理应用程序生命周期并提供常用的导航回退功能【3】。目前做Android开发分两种:Android应用开发(SDK(Soft Development Kit)开发)和Android源代码开发。其中 ,Android应用开发是基于Android提供的系统API(Java Framework)进行应用层面的开发,即基于Android SDK开发 ;Android源代码开发是Linux中相关设备的驱动程序开发,比如LCD、触摸屏、键盘、音频、摄像头、蓝牙等;以及硬件抽象出的开发,硬件抽象层在用户空间,基于驱动和Android系统之间。 (4) 应 用 程 序 (Applications) Andro

35、id架构的最上一层,Android系统会同一系列核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、浏览器、联系人管理程序等,以为毕竟是Google定制的系统,所以默认内嵌了谷歌地图、谷歌搜索引擎的App Widget。所有的应用程序都是使用JAVA语言编写的。 2.2 Android四大组件 Android架构里定义了4种构件,用户应用程序都是由这4种构件组成。 - 5 - 1. 活动 活动(Activity)是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可谓是开发人员最常见,也是Android中最基本的模块之一。在Androi

36、d的程序当中,若把手机比作一个浏览器,则活动就相当于一个网页。在活动当中可以添加一些按钮或复选框等控件,可看出活动类似于网页。活动可以和用户进行交互,还可以通过查询(queries)和意图 (intents)向其他活动或服务(services)获取数据和服务。 Android中,一个活动从创建到结束的所有状态和为一生命周期(如图2-2所示)。开发者自己的活动通过重载 Activity基类的一些方法(见表2-1Activity生命周期表)来对各种和消息进行图2-2 Android活动的生命周期图 表2-1 Activity生命周期表 2. 服务 和处理。服务(Service)类似于桌面系统或服务

37、器中的程序,只能运行,并且和其他组件进行交互。服务同样由可执行代码构成,启动以后就会一直在运行处理耗时较长的任务,直到设备关机为止。通常,服务没有用户界面,一个典型示例就是音乐播放器,播放音乐的同时运行其他一些应用程序。若开发者需在自己的程序中实现服务模块,则可使用Service更新ContentProvider,发送Intent以及启动系统(1)服务有两种类型 ,这样就可以在退出操作界面后仍然维持程序的运行。 a. 本地服务 (LocalService):用于应用程序内部。 b. 远程服务 (RemoteSercie):用于android系统内部的应用程序之间。 前者用于实现应用程序自己的一

38、些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线执行,这样用户体验比较好。后者可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务 程,调用已有的即可。 (2) 服务的生命周期 相比Activity生命周期,服务生命周期的方法只有3个:onCreate()、onStart()、onDestroy()。实例化服务的方法有两种:startService()和bindService(),这两种方法有所区别: startService():如果服务没有创建(即onCreate()),则按照onCreate()onStart()来执行。如果服务已

39、经创建(执行了onCreate()),但没进入onStart(),则只执行onStart()。 bindService():若服务已经创建(即onCreate()),那么bindService()方法只会触发onBind()方法。若服务未创建,那么bindService会先触发onCreate(),然后再触发onBind()方法。 当调用bindService()的Context销毁时,那么它bind的服务的onUnbind()会触发,如果此时Service没有正在运行(没有onStart()),那么onDestroy()方法也会触发。相反,如果服务正在运行中,则不会执行onDestroy()

40、销毁服务。 严格来讲,服务的生命周期只有onCreate()、onStart()和onDestroy()。onBind()和onUnbind()只表示Service和Context的绑定状态。绑定期间,Service不可以用stopService()销毁。如果服务正在运行(onStart()),那么unbindService()不会销毁Service。 启动一个Service:context.startService()onCreate()onStart()。 停止一个Service:context.stopService()onDestroy(),如果调用者直接退出而没有调用停止服务,则会一

41、直在运行。 绑定服务后,Service就和调用绑定服务的进程步调一致。就是说,当调用bindService的进程死了,那么它绑定的Service也要跟着被结束。期间也可以调用unBindService()结束Service。 调用startService():onCreate()onStart()(可多次调用)onDestroy() 调用bindService():onCreate()onBind()(一次,不可多次绑定)onUnbind()onDestroy() 在服务的一个生命周期中,可以看到,只有onStart()方法可以被多次调用,onCreate()、onBind()、onUnbin

42、d()、onDestroy()在一个生命周期中只能被调用一次。 3.广播和意图广播和意图 (Broadcast and Intent Receivers)用于处理应用程序的服务请求。广播用于处理系统级别的消息,这些消息可能是系统本身发出的(如电池电量过低),也可能来自系统中正在运行的其他程序;意图是一段可执行代码,负责响应其他活动或服务发出的数据或请求;想要发送请求的活动(客户端)首先需创建一个意图对象,然后将这个意图对象提交给系统,最后由其决定使用哪一个应用程序处理该意图【4】。 意图机制是Android平台架构中的重要角色之一,通过意图机制可以方便地利用已有的应用程序创建新的应用程序,既移

43、动聚合。在编写Android应用程序的时候一定会经常用到意图机制来和其他应用程序进行交互。 广播(BroadcastReceiver)用于被广播的(Intent)为达到这个目的,BroadcastReceiver 必须进行注册。注册方法有两种: 1.在AndroidManifest.xml当中进行注册,该方法的特点是,不论程序是否打开, 册receiver: 一直是进行着的。在Manifest中注(1)在Manifest文件里注册receiver标签,并使用Intentfilter为receiver设置一个action; (2)在广播信息里加入 Intent intent = new Inte

44、nt(); /为intent设置Action intent.setAction(Intent.ACTION.EDIT); /发送intent广播TestActivity.this.sendBroadcast(intent); 当以上两个Action动作一致时,即接收成功,作出相应动作。 2.在应用程序的代码中进行注册,该方法的特点是,当应用程序关闭时, 册: (1) 注 册 BroadcastReceiver registerReceiver(receiver,filter); (2) 取 消 注 册 BroadcastReceiver unregisterReceiver(receiver)

45、; 当启动Activity时,注册BroadReceiver,当Activity结束时取消。4.内容提供器 也随之停止,省电省内存。在应用程序中注 内容提供器(Content Providers)是Android提供的第三方应用数据的访问方案,用于向其他活动护着服务提供数据服务。内容提供器通过使用标准的URI(Uniform Resource Identifier,统一资源标识)为应用程序提供数据服务,请求格式如 :content:/com.xxxxx 。Android系统就会查询注册此URI格式的内容提供器,并将请求发送给相应程序(若应用程序还没有启动,系统会自动将其 启动)。若多个应用程序

46、注册相同URI格式,则系统会提示选择其中一个。 2.3 Linux 输入子系统 输入子系统在Linux设备驱动中的位置如下图3-3所示。图2-3输入子系统在Linux中的位置 Linux设备驱动采用分层模式,最上层的驱动不用关心下层是如何实现,下层为多种型号同样功能的驱动提供了统一的接口。Input子系统为所有I/O设备驱动的中间层,为上层提供统一界面。实现一个输入,例如鼠标移动、触摸屏上操作等通过Driver-InputCore-Event handle-userspace的顺序传给用户空间的应用程序【2】。这样我们的用户空间的应用程序就不是直接打开和访问输入设备(如键盘)驱动文件了,而是访

47、问由键盘驱动在input子系统中注册的event文件,例如 /dev/input/event3,而对于键盘驱动来说,它也是实现由input子系统提供的接口就可以了。按下键后发送给input子系统 ,不再直接与用户空间的应用程序直接面对面了。这样,就很方便的对驱动和应用程序都统一了接口,而且同一种接口还适合管理多种硬件。 2.3.1 输入子系统架构 输入子系统的架构如图3-4所示。 - 7 -指标 剽窃文字表述 1. 无论未来电视最终是由谷歌、苹果或是其他巨头来重新定义,体感技术一定是改写电视功能的重要一环。 2. 体感游戏结合智能电视的大屏幕,会给用户带来身临其境随心所欲的体验。这是智能电视的

48、一个必然趋势,也是智能电视应用的核心发展方向之一。 3. 根据谷歌公司制定的Android发展远景,Android系统将被用在各种嵌入式设备之中,从手机、平板电脑再到智能电视、智能家居、导航系统等; 5. 在2007年推出,国内外相关的研究和应用正展开不久,研究和使用Android系统有利于抢占智能终端领域研究的制高点。 基于以上上述优势,本课题智能终端平台选择使用Android系统。 4. 系统是一开发平台,其体系架构图如图2-1所示。图2-1 Android体系架构图 由 5. 底层主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该 6. Dalv

49、ik虚拟机所依赖的部分基本功能是由Limix内核提供,如线程和底层内存管理。 7. Java虚拟机相比不同的是,每个Android应用程序都运行在自己的进程中,都有一个属于自己的Dalvik虚拟机, 8. 所有的应用程序都是使用JAVA语言编写的。2.2 Android 四 大 组 件 Android 架构里定义了4种构件,用户应用程序 9. 前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开 1基于视觉的手势识别及人机交互研究5.1%邬大鹏(导师:于盛林) - 南京航空航天大学硕士论文- 2010-01-01是否引证:是2浅谈手势

50、识别在人机交互中的应用4.2%潘建生; - 电脑知识与技术- 2011-12-15是否引证:是3基于Android平台的手势识别图像裁剪应用研究2.4%王慧杰(导师:姜浩;贾彤福) - 北京工业大学硕士论文- 2012-03-01是否引证:是4Linux输入子系统在触摸屏驱动上的实现2.3%於琪建;张海峰; - 机电工程- 2009-03-20是否引证:否5基于表观的手势识别及人机交互研究2.3%顾立忠(导师:苏剑波) - 上海交通大学博士论文- 2008-05-01是否引证:否6基于视觉信息的手势识别算法与模型研究1.5%覃文军(导师:吴成东;赵姝颖) - 东北大学博士论文- 2010-05

51、-01是否引证:否7体感技术驱动下的图书馆应用平台架构创新与体验革命1.5%李东旭;江澄;刘海峰; - 大学图书馆学报- 2012-09-21是否引证:否8四路摄像头协同多重触控技术研究与实现1.4%王德鑫(导师:张茂军) - 国防科学技术大学博士论文- 2010-09-01是否引证:否9复杂背景下基于表观模型的手势识别研究1.2%姜丽(导师:赵姝颖) - 东北大学硕士论文- 2009-05-01是否引证:否10基于ARM-Linux的无纸记录仪人机交互系统开发1.2%朱滔(导师:姜周曙) - 杭州电子科技大学硕士论文- 2010-11-01是否引证:否11基于数据手套和的人机交互技术的研究1

52、.1%朱杰(导师:夏青) - 信息工程大学硕士论文- 2009-04-15是否引证:否12序列图像中手势跟踪与识别技术的研究0.5%齐苏敏(导师:黄贤武) - 苏州大学博士论文- 2008-04-01是否引证:否13基于视觉的静态手势识别技术研究0.4%刘昌盛(导师:厉树忠) - 西北师范大学硕士论文- 2008-05-01是否引证:否原文内容图 3-4 输 入 子 系 统 结 构 图 Linux输入子系统是Linux内核用于管理各种输入设备(键盘、鼠标、遥控杆、触摸屏、书写板等)的,这些输入设备都可 以利用输入接口函数来实现设备驱动。input子系统由驱动层(Driver)、核心层(Inpu

53、t Core)和成。 处理层(Event Handler)构驱动层是将底层的硬件输入转化为统一形式,向核心层汇报。核心层用来协调硬件的input与用户层应用之间的处理层对 设备节点 通讯。核心层是由driver/input/input.c及相关头文件实现,为驱动层提供输入设备册与操作接口和进行处理。,读取缓冲区数据。这一类的设备结点都是在/dev/input/eventn( 0=n) 。用户程序读驱动的输入都采用统一格式,即struct input_event,方便应用程序来读写。Input子系统的主要数据结构如表2-2所示: 表2-1 输入子系统的主要数据结构 2.3.2 模拟触摸屏驱动程序

54、实现 输入子系统的三层驱动结构中(如图2-6所示),Input核心层与处理层已由内核实现,故采用设备模型与输入子系统机制,以简化设备驱动程序的设计。现在需实现驱动层,即通过调用内核提供的接口函数,就可以完成触摸屏驱动程序的设计。 图2-6 输入子系统层次结构 驱动层主要实现向内核注册输入设备以实现输入设备模型,并提供将触摸屏采集到的数据上报核心层的方法。2.4 本章小结 本章介绍了Android系统的架构层次以及Android四大组件,对Linux 的输入子系统的结构、链路的创建、设备的打开与读- 8 -2. 21110233010-王冉冉-信息科学与工程学院-电子与通信工程_第2部分总字数:12395 文字复制比:15.5%(1923)(0) 线程执行,这样用户体验比较好。后者可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。 10. 生命周期 相比Activity生命周期,服务生命周期的方法只有3个:onCreate()、onStart()、 写和触摸屏驱动实现的原理进行了详细说明。

温馨提示

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

评论

0/150

提交评论