




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Southwest university of science and technology 本科毕业设计(论文)基于Android的智能遥控器手机端APP开发学院名称信息工程学院专业名称通信工程学生姓名周娇学号20123434指导教师胡莉副教授、秦明伟副教授二一六年六月 西南科技大学本科生毕业论文基于Android的智能遥控器手机端APP开发摘要:近年来,随着Android在市场中占据的市场份额越来越大。移动互联网的出现大大提高了智能操作控制的实时性和便捷性,本课题的主要内容是设计一个Android智能遥控器手机端APP。本文主要针对传统的遥控器存在的一些不足之处提出了智能遥控器的这个设计方案,该课题以Android平台作为开发环境,实现从服务器端获取红外编码,通过蓝牙转发给终端设备,按下相应的按钮之后发送相应的编码给终端设备,实现对家电的控制。本文介绍了本课题的意义和背景,提出在这个设计方案的创新之处以及不足的地方,提出总的设计方案,对Android平台的系统架构和特点以及应用程序的结构做了相应的分析,对红外编码、TCP协议、蓝牙通信做了对应的研究,对系统设计的各个模块做了详细的研究、设计和其功能的实现,包括界面设计等等,最后对此次设计做了总结,以及以后未来工作的展望。智能遥控器APP的实现,使我们操作起来更加方便快捷,不会因为找遥控器而浪费时间,直接通过APP向遥控器发出指令便能控制家电。关键词:Android; 遥控器; APP;蓝牙 DevelopmentofmobileterminalAPPbasedonAndroidintelligentremotecontrollerAbstract: In recent years, with the Android market share in the market to occupy more and more. The emergence of the mobile Internet, greatly improving the real-time and convenient operation of intelligent control, the main content of this topic is to design a Android intelligent remote control mobile phone terminal APP.This paper mainly aimed at some deficiencies existing in the traditional remote presents the design scheme of intelligent remote control device, the subject on the Android platform as a development environment, capturing the infrared code from the server, via Bluetooth forwarded to the terminal equipment, press the corresponding button after to send the appropriate code to terminal equipment, to realize the control of electrical appliances. This paper describes the significance and background of this topic proposed in the design scheme of the innovations and deficiencies in the proposed general design plan, made the corresponding analysis to the Android platform system architecture and the characteristic as well as the application of the structure, the discussion of the infrared coding, TCP protocol, Bluetooth communication corresponding research, with the research, design and its function realization of each module of the system design, including interface design, and so on. Finally, the design of the summed up, and later working in the future prospect.APP intelligent remote control to achieve, so that we operate more convenient and fast, not because of a remote control and a waste of time, directly through the APP to the remote control will be able to control the home appliance.Key words:Android, controller, app,Bluetooth目 录第一章 绪 论11.1 研究背景11.2 研究目的21.3 论文主要研究内容及章节安排31.4本章小结4第二章 系统总体设计52.1系统功能分析52.2总体方案设计62.3蓝牙通信协议72.3.1蓝牙通信的发展史72.4 TCP/IP协议102.5本章小结11第三章 Android相关技术研究123.1 Android平台的特点和结构123.2 Android系统框架133.3 Android应用程序解析163.4 界面语言的解析183.5 Android应用程序的组件193.5.1 Activity组件193.5.2 Service组件213.5.3 Broadcastreceiver组件213.5.4 ContentProvider组件223.6开发环境的简介223.6.1 Android中的NDK223.6.2 Android中的HAL223.7 本章小结23第四章 软件设计实现244.1界面布局的实现244.1.1 XML界面的布局244.1.2功能界面244.1.3操作界面254.2 TCP端服务器通信的实现264.2.1 TCP连接274.2.2手机端与服务器的通信274.3蓝牙端通信的实现274.4测试与运行304.4.1 测试手机端304.4.2 测试与服务器通信304.4.3测试与蓝牙端的通信324.5本章小结34总结35致 谢36参考文献37第1章 绪 论随着科技的进步和人们生活水平的提高,家电进入了千家万户,伴随着家电的增多,我们操作的遥控器也变得越来越多,找遥控器变得特别繁琐,一款智能遥控器的APP的出现变得越来越重要。1.1 研究背景近几年来,随着互联网在全球出现了蓬勃发展的态势,各个电信运营商都不断加大对互联网的投入,不断完善网络基础设施,使得3G/4G网络在商业领域得到了不断的发展。随着3G/4G网络的不断推广和普及,智能手机为主移动终端不断地抢占着传统手机的市场,以Android智能手机的快速发展引起了人们的极大的注意。2008年9月28日发布了智能手机平台Android,目前已成为最流行的智能手机开发平台,并且凭借着Google强大的开发实力以及广阔的媒体资源,Android在智能手机市场取得了巨大的成就,并且推动了移动型终端的快速发展。由于现在科技的不断进步,人们的生活物质水平得到了快速提高,各种功能各异的家电设备进入了千家万户,电视机、空调等设备在家庭中普遍存在。这一类电器里都会有各种各样的遥控器,为我们操作和使用带来了便利,但是这些遥控器互不兼容,而随着生活质量水平的提高,生活中有越来越多的遥控器,对于我们存放,想要的时候去寻找都带来了极大的不方便,多而杂,显得特别不整洁。并且这些遥控器是用胶等之类的材质做的,很容易损坏,并且也不环保,那么设计一款能够兼容我们日常生活中的家用电器设备的智能遥控器急需出现。将这些杂而多的遥控器用智能遥控器一并代替,可以解决为了去寻找某个遥控器或者管理这些遥控器带来的问题,方便我们使用,并且更加环保,符合当今爱护环境,节约资源的主题。当今社会传统的遥控器已经不能跟上当代人们如此快节奏的生活步伐了。智能遥控器可以为家电设备提供智能控制方案,使用户的控制和使用更加便捷,更高效。智能遥控器是通过网络技术、自动控制技术和计算机技术将生活环境中相关的家电设备连接起来,让他们协调工作,实现家庭生活环境的智能化控制,改变人们传统的生活方式,提供了一个更加人性化、智能化的居住环境。该智能遥控器可以控制家中所有家电,住户既可以直接通过遥控器来控制家电,当然也可以通过手机端app来控制家电。 Android是Google公司推出来的开源手机平台,主要采用了Linux内核,这是一个标准化、开放式的手机平台。凭借其优异的平台性能和战略伙伴(包括诸多厂家、运营商)的支持,Android手机的市场占有率急速提升,目前已占据全球智能手机操作系统市场52.5%的份额,在我国市场则达到58%(2011年11月数据)。 Android智能手机具有这些特点: 它具有强大的无线网络的接入能力,包括具有强覆盖能力的GSM网络下的GPRS和保证手机的3G网络以及提供足够带宽、网速的WiFi。其次,丰富、便捷的开发工具。Android智能手机是使用Java语言开发的应用程序,它的开发工具完备,并且开发资源丰富,使开发者容易上手。 再次,开放的平台。Android平台的开放性导致它可以兼容不同硬件平台,进而提供丰富了的硬件选择,使得可以无缝结合多种应用。 以Android为代表的智能终端正在以其随时在线和功能强大的特性,不断拓展和加深移动互联网的应用领域。当今主要的智能移动设备主要有IOS、Android、Windows等等,都慢慢代替了传统的控制市场,在众多的移动设备之中,Android相对于其他的移动设备其最大的特点是Android是一个开放性的体系架构,而且Google为它提供了丰富的调试环境和开发工具,更加方便许多开发者更容易开发出更多的应用。并且,Android里还有对数据库的支持功能,图形系统以及强大的浏览功能等等。1.2 研究目的课题要求基于Android平台设计一款智能遥控器手机端软件,能够实现对智能遥控器的控制、遥控信号配置等功能。本课题涉及基本的网络通信原理、蓝牙通信技术、软件开发技术等相关知识,对培养学生的系统设计能力、工程应用能力均具有重要价值。课题包括以下研究内容:(1)智能遥控器的管理方法;(2)基于TCP/IP的网络数据传输技术;(3)红外编码信息管理技术;(4)基于Android的手机端APP开发技术;实现从TCP端去获取红外编码,通过蓝牙端为遥控器终端发送所获取的红外编码,将我们的相关操作通过蓝牙端发送。随着人们生活品味和生活质量的提高,以及一些消费观念的转变,现代家庭逐渐由追求房间内部装饰的环境向智能化转变。智能遥控器APP提供了兼容许多不同家电设备的功能、控制和管理等等,基本上满足了住户的功能性和非功能性的需求,达到了预期效果。对于人们管理这些家电更加的方便,操作、管理和使用都变得格外的方便。我们应该紧跟上社会的步伐,向智能家居不断的靠近,在家里你可能只需打开手机,按住某一个键便能愉快的控制整个家庭的电气设备,使得整个环境控制都变得更加的方便,快捷。智能遥控器的核心系统就是智能家居的控制系统,设计功能的完善将推动智能化的发展,而系统功能的集成化和市场的平民化,将是智能家居控制器的发展趋势,智能系统也将一步一步迈向绿色化。Android平台是从诞生以来发展速度非常快的移动开发,Android在中国市场的占有率高达90.不过以Android它丰富全面的功能支持以及强大的扩展能力,完全有能力在除了移动智能手机之外的市场获得拓展,像平板电脑,电子书等等。Android是Google公司主要针对移动手持设备推出的终端操作系统。自从Android操作系统发布以来,便在智能手机,平板电脑等相关设备上的市场占有率逐渐上升,甚至于在智能手机操作系统上都能超过了诺基亚称霸十年的Symbian系统。成为当今社会移动手机终端设备的主流,在考虑到未来几年Android系统将会有迅猛的发展势头,并且很有可能占据当今社会的手持移动终端设备市场,所以将Android运用在智能遥控器上,便于推动Android发展的同时也可以为我们在日常生活中提供一个规范的参考和一个统一的系统,使得住户更好的一眼和丰富的多媒体应用,便于未来在智能家居方案商的扩展。1.3 论文主要研究内容及章节安排本论文主要针对Android智能遥控器展开研究,文中完成了一种基于Android智能遥控器手机端APP的开发,论文一共分为四章,各章节具体内容安排如下:第1章:绪论,主要论述了课题研究背景,课题研究目的及意义,讲述了智能遥控器的相关背景,第2章:系统总体设计方案,主要针对TCPIP协议做一些具体的分析,以及关于蓝牙数据传输和红外编码等等的分析,根据Android开发平台,TCP协议,蓝牙传输以及红外编码设计了智能遥控器的整体方案。第3章:Android相关技术研究。简要介绍了Android平台的特点和相关组件的构成,以及在开发过程中所用到的相关技术,第4章:系计中所要基于Android智能遥控器手机端APP实现的各模块的设计方案,主要通过TCPIP协议实现从服务器获取红外编码、利用蓝牙技术与遥控器之间进行数据传输、相关界面的布局以及相应的监听事件的逻辑程序等方面做了详细的介绍和重点分析。最后,总结与展望,对这次毕业设计和论文做出相应的总结,找出论文的创新点和不足的地方,并且提出我们在工作中需要完善和改进的地方。然后找出目前本方案在智能遥控市场的前景,优缺点和未来可以改进的地方。1.4本章小结本章主要介绍了本课题的研究背景、目的和意义,讨论关于Android的相关技术的背景,为我们带来的相关的好处。Android近几年的发展,本课题包含的相关的TCP和蓝牙简要介绍。以及本文的主要的研究内容和个章节的安排。37第二章 系统总体设计Android智能遥控器是目前在市场中应用比较广泛的遥控器,通过TCP传输红外编码和蓝牙无线传输协议实现此课题的设计,本章主要对红外技术、蓝牙和TCP进行介绍,以及总体方案进行总体的设计,2.1系统功能分析我们主要通过手机APP向服务器发送主要是基于红外编码,接收到红外编码的之后再将红外编码发通过蓝牙发送给终端设备,由终端设备进行相应的解码之类,然后我们手机端通过蓝牙将我们所要做的操作发送给终端设备,由终端设备识别这个指令,进而控制整个家电的操作,其相关的示意图如图2-1所示。图2-1 系统应用关系示意图整个系统结构图备主要有服务器、手机端、遥控器设备,家电这几部分组成,主要的各个部分的相关功能如下。(1)服务器端:提供相关家电的红外编码,建立红外编码库,为手机端提供所需的编码,当手机端需要某种型号的编码时,发送相关的红外编码给手机端。(2)手机端:与服务器进行连接,连接成功之后,发送我们所需要的红外编码,然后再通过蓝牙将红外编码发送给遥控器终端,发送红外编码之前,搜索、匹配和连接上其他遥控器设备之后,便可以发送相应的指令给遥控器,由遥控器将这些指令向家电发送,进而控制家电的操作等等。(3)遥控器终端:遥控器终端接收到红外编码之后进行相应的解码,再次编码之后与家电进行通信,然后将接收到的指令转发给家电,对家电进行控制。(4)家电:负责接收相关指令进行相应的操作。本课题主要手机端APP的设计,其功能需求分析如下:(1) APP界面的设计;(2) 通过TCP与服务器端通信,从服务器端获取红外编码;(3) 通过蓝牙与遥控终端通信,将红外编码发送给遥控终端,并且想遥控终端发送相应的操作控制遥控器操作家电设备。2.2总体方案设计该遥控器主要包括三个模块,第一个模块,主要是界面布局以及相应的控件产生的相对应的事件,主要采用了XML对相关页面进行布局,其中采用了LinearLayout线性布局,将相应的按钮和Listview文本框之类的将它美观的布局到我们的页面当中。第二个模块,主要是通过HTTP协议与服务器端进行红外编码的获取以及相应的调用,首先我们需要通过TCP中的socket获取服务器的端口号和IP地址。然后连接成功之后,向服务器发送我所需要的品牌型号等等,带服务器接收之后,给我们发送手机端所需要的红外编码,这个过程中就涉及到相应的电脑品牌以及相对应的型号的红外码库里面的调用。最后一个模块就是采用蓝牙通信技术实现数据的传输,需要将手机端从服务器端获取的红外编码再通过蓝牙转发给终端设备。首先,需要先搜索周围开启的蓝牙设备,之后,搜索到了之后,再进行配对,将两个蓝牙配对成功之后,便通过按钮发送相关的编码,等终端设备将这些码进行解码、编码。最后在通过终端设备接收我们发送数据进而控制整个家电的操作,实现整个过程。其模块如图2-2所示。 图2-2 系统总设计需要根据这每个模块将设计中对应得功能一一实现,在每个模块当中将相应的监听事件将每个功能实现,在这每个控件的监听事件里面都涉及到发送出去我们按下的每一个按钮的动作,通过蓝牙传输给控制的遥控器,实现手机端也能控制家电设备,并且也符合现在的智能环保的话题。2.3蓝牙通信协议2.3.1蓝牙通信的发展史蓝牙技术联盟在1998年9月创建,当时的发起公司只有爱立信、IBM、英特尔、诺基亚、东芝这5家公司。但是经过十多年的发展,该组织的成员已经超过了10000家公司,并且这10000多家的公司涉及电信、计算机、汽车制造行业等多种多样的领域。蓝牙技术的兴起,逐渐改变了之前我们使用的许多价格昂贵硬件电子设备,通过这种技术,方便的将各种各样的通信设备,比如家用设备,计算机等等之类的联系在一起,简化了各个电器设备的通信,使蓝牙技术成为了当今连接不同设备的首选短距离无线技术。下图2-3是蓝牙技术的应用。图2-3 蓝牙技术的应用基于蓝牙传输的数据传输原理,蓝牙通信技术支持的是短距离的传输。主要采用了分散式的网络结构和短包技术,其特点是点对点的多点通信,由于它采用了伪随机的跳频方案,导致了不同的蓝牙设备之间相互干扰非常小,因此这种设备非常适用于固定的或者移动的设备通信。在蓝牙传输模块中,主要分为底层的硬件模块,中间协议,高端应用层三部分,底层的具有基带层,无线信道层和链路管理层,基带层主要负责的是蓝牙数据和信息帧、跳频的传输,无线信道层最主要的任务就是负责基频和射频调制,链路管理层主要负责的是连接的建立。(1) 主从关系 蓝牙技术规定每一对设备之间进行蓝牙通讯时,必须一个为主角色,另一为从角色,才能进行通信,通信时,必须由主端进行查找,发起配对,建链成功后,双方即可收发数据。理论上,一个蓝牙主端设备,可同时与7个蓝牙从端设备进行通讯。一个具备蓝牙通讯功能的设备, 可以在两个角色间切换,平时工作在从模式,等待其它主设备来连接,需要时,转换为主模式,向其它设备发起呼叫。一个蓝牙设备以主模式发起呼叫时,需要知道对方的蓝牙地址,配对密码等信息,配对完成后,可直接发起呼叫。如图2-4所示。图2-4 主从关系(2) 呼叫过程 蓝牙主端设备发起呼叫,首先是查找,找出周围处于可被查找的蓝牙设备。主端设备找到从端蓝牙设备后,与从端蓝牙设备进行配对,此时需要输入从端设备的PIN码,也有设备不需要输入PIN码。配对完成后,从端蓝牙设备会记录主端设备的信任信息,此时主端即可向从端设备发起呼叫,已配对的设备在下次呼叫时,不再需要重新配对。已配对的设备,做为从端的蓝牙耳机也可以发起建链请求,但做数据通讯的蓝牙模块一般不发起呼叫。链路建立成功后,主从两端之间即可进行双向的数据或语音通讯。在通信状态下,主端和从端设备都可以发起断链,断开蓝牙链路。其传输图如图2-5所示。图2-5 呼叫过程图(3) 数据传输 蓝牙数据传输应用中,一对一串口数据通讯是最常见的应用之一,蓝牙设备在出厂前即提前设好两个蓝牙设备之间的配对信息,主端预存有从端设备的PIN码、地址等,两端设备加电即自动建链,透明串口传输,无需外围电路干预。一对一应用中从端设备可以设为两种类型,一是静默状态,即只能与指定的主端通信,不被别的蓝牙设备查找;二是开发状态,既可被指定主端查找,也可以被别的蓝牙设备查找建链。在整个设计中,通过程序设计去实现与遥控器终端蓝牙的搜索、匹配、通信这三个功能模块。2.4 TCP/IP协议在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层和主机到网络层。 (1)主机到网络层实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。 (2) 网络互连层网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。网络互连层定义了分组格式和协议,即IP协议(internet protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。 (3)传输层在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。 (4)应用层TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于TCP协议的,如文件传输协议(file transfer protocol,ftp)、虚拟终端协议(telnet)、超文本链接协议(hyper text transfer protocol,http),也有基于UDP协议的。将OSI模型与TCP/IP模型作对比,如下图2-6所示。图2-6 TCP/IP协议2.5本章小结本章主要介绍了相关的Android平台的特点和为什么要使用他来开发,同时。对蓝牙的相关的原理进行了相关的介绍。提出了总的设计方案,对每个功能模块进行分析设计,Android智能遥控器是目前在市场中应用比较广泛的遥控器,主要是基于红外编码以及蓝牙无线传输协议的遥控器,随着智能应用的不断发展,指示许多硬件设备的价格不断下降,此前在市场上的红外通信的的应用也比较少,而短距离的传输成为了主要的通信方式。第三章 Android相关技术研究本章主要介绍了关于Android平台的相关知识,介绍Android的特点,系统框架和它的优势以及特点,最后简要介绍Android相关环境的搭建和所用到相关技术的简要叙述,为APP应用程序的开发打好基础。3.1 Android平台的特点和结构Android是由谷歌公司推出的,是基于Linux的开源操作系统,他主要用于移动终端设备,在电话领域里应用比较广泛,包括了一些Android智能手机和一些价格低廉的功能机等等,最初的Android操作系统是有安迪鲁宾开发的,他开发的主要目的是想开发一种支持手机的开源操作系统。但是,现今Android凭借其扩展性以及强啊的硬件支持已经扩展到了电脑,平板,一些可穿戴的设备,在目前三大智能操作系统包括IOS、Windows以及Android占据了主要的市场份额,Windows的系统相对来说比较复杂并且要手续相关的费用,而苹果至今没有将IOS授权给其他的厂商,那么相对于开源并且免费的Android来说,便理所当然成为了许多厂商的首要选择。相对于其他的智能移动系统,安卓平台具有许多的显著的优势。(1)开放性Android是一个开源操作系统,他的平台是开放的,从最底层内核到上层的应用程序中每个环节都是开源的,而且这些资料都能够很方便的从互联网上进行下载,并且提供完整的免费开发环境的支持,所以说Android是开放的,它能够允许许多不同的移动终端设备的厂商加入其中,使许多的开发人员能都快速的了解到Android平台的相关技术的系统架构,同时,由于他的开放性导致吸引并且积累了比较高的人气,吸引了大批的厂商以及消费者的目光,另外安卓的灵活性也允许开发商能够有更大的自由,相对于其消费者来说,他们获得利益的是他丰富多样的软件资源,同时它开放的平台也会为其带来更强烈的竞争,促进许多电子价格的不断下降,最终使得消费者受益。(2)自由性在过去相当长一段时间当中,手机以及许多的移动终端设备的应用软件的使用都要受到移动运营商的制约,但是随着Android等等智能移动终端的普及,手机用户们慢慢拜托了这方面的束缚,可以更加便捷的连接网络,现在,4G移动网络的普及,移动智能终端能够很方便的接入互联网,使得我们能够更快速的了解外面的世界,及时了解最新资讯,将许多以前需要通过电视、报纸等工具传输信息已经变得更加快捷,不再受到许多条件的束缚。(3)强大的谷歌应用在Google经历了漫长的岁月中,他的角色从搜索引擎逐渐扩展到了整个移动互联网,比如想一些Google服务的像地图,搜索和邮件等等都已经变成了连接用户和移动互联网的重要的纽带。凭借着安卓这个平台,Google将这些结合在一起,提供给消费者更加方便的使用。(4)丰富多样的硬件选择鉴于Android的开放性和自由性,许许多多的IT厂商可以自由的退出戏对外观好看、功能齐全、特色各异的电子产品。使得消费者能够在众多功能各异的消费产品中自由自在的选择,提供了更多可供消费者选择饿硬件,虽然这些产品的外观和弄能各不相同,但是其实都用到了同一个平台,不会影响到相关数据的传输和同步,也不会存在软件的兼容性问题,给消费者提供了更大的选择空间。作为在市场上占据市场份额最高的移动终端操作系统,Android还具有以下的的一些特点。第一,它的应用框架可以重复使用,其中的组件也可以替换。第二,针对Android移动终端提供优化的Dalvik虚拟机。第三,它在内部内嵌了基于WebKit的手机浏览器,我们可以很方便的浏览各种浏览器。第四,android提供了可以优化的图形系统,并且支持2G、3G的图形渲染。第五,提供了数据存储的比如SharedPreferences、SQLite和文件存储等等保存结构化数据。支持多种视频、音频格式的多媒体数据库,并且提供了比如像GSMTelephony,而且支持TCPIP协议、蓝牙通信以及WIFI。4G联网等等。第五,Android提供了丰富的开发环境,其中还包括了基于Eclipse和模拟器的一系列的插件。3.2 Android系统框架Android平台的结构框架是建立在Linux内核的基础上的,采用了软件的叠层是的方式进行构建,采用这种软件叠层式的结构使得它的曾与曾之间相互分离,明确滴划分了各层的工作,确保每层之间低耦合,它的架构图如2-1所示。图3-1 Android系统架构图Android系统架构自底向上主要包括应用程序、应用程序框架、系统运行库和Linux内核组成。(1)应用程序层应用程序层主要是已经开发好了的程序的存放的位置,他本身就具有一个核心的一个核心程序的集合,这一层具有自己自带的日历、通讯录、短信、拨号等应用程序都存放在着一层,它包含着各种各样的资源文件、JAVA的程序和相关资源等等经过编译以后生成的APK包。Android开发者都可以根据自己开发出的程序用这些进行替换,增加了开发者在开发过程中的自由性以及方便性,对于这些应用程序的开发者而言,他们可以是用户有应用程序框架提供的API设计的应用程序,这些应用程序都是有Android平台通过Java语言编写的。应用程序.浏览器 短信日历地图图3-2 应用程序图 (2)应用程序框架层为了给开发者提供方便他们应用程序开发的框架体系,Android提出来应用程序框架结构,允许他们完全的使用核心的应用程序所以用的框架,这个体系的结构设计主要是简化组件的重用。让这些组件重用性得到了极好的体现,不管是什么应用程序都可以使用他发布的独特的功能和其他相关的应用程序都可以使用这些相关的功能。这些相关功能的使用也需要遵循安卓的权限为前提,这层主要包括:视图:这是一个极其丰富的、可以扩展的视图。可以用来构建I型昂管的应用程序,他的内容主要包含有网络、按钮、文本框、列表和能够内嵌的浏览器。资源管理器:通过这个可以访问一些非代码的资源,比如像一些图形,界面布局文件等等。通知管理器:主要用来管理这些应用的生命周期,也就是这些应用程序的运行状态,而且市场提供一些我们在生活中使用到的后退、导航等等之类的功能,。(3) 系统的程序库层Android在运行的时候主要是运行安卓的应用程序场所,主要包括核心库以及Dalvik虚拟机图3-3 android运行图Dalvik虚拟机:这是一种专门为移动终端设备设计的缓存形态的虚拟机,这个虚拟机在很大程度上都参考了Java虚拟机,不过Dalvik虚拟机在运行的时候的中间码不是用的java字节码,而是由Java码转换来的只能存在于Dalvik的dex格式的中间码,另外。从效率上来讲,Dalvik在寄存器上运行,Java是基于栈运行,因此,基于寄存器的虚拟机把变量存放在了寄存器当中,需要的资源会比较少,速度更快,因此,我们甚至于可以在硬件上来实现虚拟机。核心库:为了给开发者们提供Android的API,我们采用核心库,在安卓的平台上,并不是一个Dalvik在同一时间执行多个程序,而是每一个安卓应用程序由一个独立的虚拟机独自运行,这个和一般的Java程序有很大的区别。Linux内核他是安卓的运行的基础,Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。Linux是一个一体化内核(monolithic kernel)系统。内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化的形式设置,并在系统运行期间可直接装载或卸载。3.3 Android应用程序解析在本次课题中,我采用的是Android开发环境的eclipse下定的ADT环境进行这个课题的学习的,Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,是一个跨平台的集成开发环境,由于本身所带有的虚拟机,并且给予Java具有扩展性,它只是一个框架和一组服务,用于通过插件组件构建开发环境。由于众多的插件使得Eclipse拥有的功能相对于IDE软件来说具有很差的灵活性,为此,Google为Eclipse量身定制了Android的开发插件,即ADT这个开发工具,此插件为Android的程序应用开发者提供了一个功能强大的开发环境,用来开发Android应用程序。Android应用程序使用的是Java开发语言,这是一种面向对象的程序设计的语言,使用这种所开发的应用程序绝大多数都能在各种各样的硬件平台上运行,鉴于这种特点,使得它的开发效率都得到了极大地提高。并且,它还集成了网络相关功能,更加符合当今社会的智能网络的发展需求,除此之外,Java还具有面向对象,分布式和支持多线程等特点,这些特点符合了Android操作系统的架构,所以,Google选择了以Java语言来作为Android平台的应用程序设计语言。如下图所示,在ADT下创建一个工程,可以看到有许多文件夹组成,这些文件夹里面包括了一个完整Android的应用程序所需要的资源。如图3-4所示。图3-4 Android应用程序的结构图这里面的主要结构包括。src: 这是保存Java源文件文件夹,程序员岁所写的Java代码全部都存放在里面。gen:这个文件夹主要用来存放我们在编写Java代码所自动生成的R.java文件,比如我们在XML里面的界面布局所产生的id都会自动在这里面生成,在不断的布局当中,这里面的资源也会越来越多,我们在开发应用程序的过程中,可以不用观察里面的相关内容。Android private library:这个文件主要是应用程序所运行的基于Android库,它和程序开发饿版本有关。Android Dependency:Android Dependency是ADT的其他库的引用方式,当我们需要应用到其他库的时候,只需要在此项目中新建一个叫做“libs”的文件夹,然后将所有需要引用的包拷贝到此目录下便行。Assets目录:在这个目录中可以放置比如像多媒体文件、视频以及音频等等。bin目录:在这个目录中,主要存放的文件都是本地程序,从这个文件名称可以看出这是binary的二进制文件,这里面主要都是由Linux系统所自带的组件。Res:这是Android里面的比较特殊的文件目录,此目录主要存放了关于Android应用中的所用到的全部资源,主要包括一些图片资源、字符串资源、颜色资源以及尺寸资源等等,其中drawable目录主要用于存放一些关于应用程序的图片相关的资源,像一些bmp、jpg等等之类的图片都可以放在此目录下,而在Layout这个目录下保存我们要创建的相关的界面布局文件,关于各种各样的界面布局文件,而在values目录的下面放置着各式各样的字符串、颜色、数组等等文件。AndroidManifest.xml:这是每一个Android工程多必须具备清单文件,他是整个安卓应用程序的全局描述的文件,其中申明此应用的名称、图标、以及应用程序他兼容的版本,还有应用权限说明等等。3.4 界面语言的解析对于一个优秀的程序不但需要有严谨的逻辑结构设计,并且还需要给用户提供人性化、响应快速的操作界面,其视图界面可以由三种方式组成:XML的配置生成、直接用Java代码生成和用户界面的接口生成。根据我们在软件设计的模型、视图和控制的原则,应用程序的程序逻辑和操作界面应当分离开,所以在界面布局中。一般都采用XML文件布局。这是一种可以扩展的标记性语言,在这里标记主要是指能够被计算机或者其他设备能够理解的符号信息,通过这种符号,我们可以处理各种包含不同信息的文章。那么怎么定义这些标记的语言呢,我们可以选择通用的国际性的语言,像XML语言,当然我们也可以使用相似于HTML的这种可以让开发者自己选择的标记语言。这就是XML这种阔以扩展的语言的优点,他没有具备有一般语言的基本功能。只能通过另外一种语言的解析之后,才能够被计算机识别。另外,XML还具有和平台无关的特征,因而被宽泛的用在各种各样的软件开发当中,包括android应用程序的开发,而android的平台是开源移动平台,他允许开发者访问各种移动终端设备的方方面面,包括一些手机的摄像头硬件、低级的图形设备等等,所以XML语言可以作为安卓平台中能够承担各个部分的重要工具,在这之中解析XML语言有成为了安卓中的重要的部分。XML中常用的文件解析器主要有DOM解析器、PULL解析器和SAX解析器DOM解析器:DOM解析器是基于片段信息或者说是树形结构的集合,它允许程序员采用DOMAPI来遍历XML树,搜索所需要的数据,不过DOM解析器需要加载一整个文档以及构造树形结构,最后才能检索以及更新节点相关信息,但是DOM解析器在内存中的存放方式是以树形结构来存放,这样导致搜索以及更新的效率都会变得更加快速,不过对于一些比较大的文档,整个过程会很消耗资源。PULL解析器:这种解析器的运行方式是基于事件的模式,在PULL解析的过程中,这个过程需要开发者获取相应的产生的事件之后做出相应的操作,PULL解析器的体积非常小相比于其他的解析器来说轻巧了许多,所以在解析的速度变得比较快,用起来比较简单,适合在安卓移动终端设备中使用,当然在安卓内部的解析XML的时候用到的也是PULL解析器。SAX解析器:SAX解析器是基于事件的解析器,其核心主要是事件处理模式,它的工作方式主要是根据事件源和事件的处理器来处理,每当一个事件源产生了相应的事件过后,其解析器就会调用相对应得事件处理器对这些事件进行处理,使得整个事件得到处理,在调用事件处理器之后,我们应该把相应的事件状态信息传递给相对应的事件处理器,在这之后根据得到的信息决定接下来该怎么做。它的特点主要是解析的速度极快,所占用的内存很少。3.5 Android应用程序的组件在Android中根据功能的划分可以看做是由一些基本组件组成的,我们在此应用中最常用的Activity这个组件,安卓的基本组件主要分为Activity组件、Service组件、Broadcastreceiver组件和Content Provider组件,主要有这四种组件所构成,这些组件在我们需要的时候,在androidmanifes.xml文件下都需要标记出来,对他们进行配置,这个文件主要用于定义应用程序中所用到的组件,这些组件的功能和使用这些组件所需要的必要条件等等,这是Android开发程序所必须的组件。3.5.1 Activity组件这个组件是android程序开发中最常用到的组件,当然也是最重要的组件,我们在Android平台开发应用程序最重要的就是在Activity中编写相应的逻辑代码,而他的功能就是处理这些应用程序的整体工作,列如:按键的声明定义、初始化、监听事件、显示指定的相应的视图以及启动其他的Activity组件等等。此组件在一般情况下主要用来对View视图的控件的相应事件进行响应,并且显示出视图控件所组成的界面布局,因此,一个Activity一般情况下可以认为是一个单独的界面布局,在此界面布局下包含相应的逻辑部分,这其中大部分的应用程序会包含许多个不同的组件,在此组件中完成一个界面向另一个界面跳转的相关相应主要通过Android的相关通信而完成此功能。采用intent来实现。在采用这种来实现跳转的同时,其第一个界面不会消失,而是被第二个界面所覆盖,第一个界面存在于堆栈当中,这样我们再返回的时候,又从堆栈中将其调用出来,返回到第一个界面,使得我们在界面中切换自如,极其的方便快捷,当我们不需要这个界面的时候,我们可以在堆栈中将其删除,不过在安卓系统下会默认为我们保留每一个应用程序的界面。 Activity在运行时采用回调的方法,其意思是随着Activity的运行,一个Activity她会不停的在不同的运行状态进行切换,这就是所说的Activity的回调方法,Activity运行过程中处于不同的状态也叫做它的生命周期,其生命周期如图3-5所示。图3-5 android生命周期Activity主要有四种基本的生命周期状态活跃状态:主要说的是Activity在前台活跃,它的界面在前台显示,这个时候处在运行状态。暂停状态:主要是指其他的Activity处于暂停状态,不过用户依然可以看见,只是失去了焦点,意思就是在该Activity上有一个Activity处在运行状态,在一般情况下,处在暂停状态的Activity任然保留着所有应用程序的状态以及信息依然是连着窗口管理器的,只有在特殊的情况下,才可以销毁这个Activity。停止状态:这个Activity被另外一个Activity覆盖的时候,处于隐藏状态,在我们的界面上无法看到这个界面,但是,在这个情况下的Activity依然保留着它所有的状态和信息。销毁状态:这个是指Activity已经彻底结束,或者它的Dalvik进程已经结束。从上图中可以看出,Activity生命周期主要有三个环节的循环:全生命周期:这个生命周期从oncreate()方法开始调用,一直到ondestroy()方法的结束,在此生命周期中,Activity对整个布局的状态进行初始化,通过oncreate()方法,最后结束的时候,在ondestroy()中将所有的资源进行释放,到此为止,Activity结束。可视生命周期:这个生命周期主要从onstart()方法开始调用,一直到onstop()方法的结束,在这个生命周期中,消费者可以在屏幕上看到这个activity,但是不能与消费
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自考专业(建筑工程)题库试题及完整答案详解【历年真题】
- 全国中医护理培训后汇报
- 2026届吉林省德惠市第二十九中学化学九上期末达标测试试题含解析
- 2026届广西北海市、南宁市、钦州市、防城港市九年级化学第一学期期中预测试题含解析
- 2026届北京市延庆县名校化学九年级第一学期期末考试模拟试题含解析
- 设备培训介绍
- 手足口病预防培训
- 山东省济宁市十五中学2026届化学九上期中学业水平测试试题含解析
- 2026届湖北省襄阳襄城区四校联考化学九上期中复习检测试题含解析
- 辅警自查自纠存在问题及整改措施
- 交通安全应急处置预案公司
- 人力资源知识竞赛题库及答案
- 工商业分布式屋顶光伏项目投资分析
- 地铁轨道安全培训报道课件
- 2025年征信题库及答案
- 传染病及其预防(第一课时)课件-2025-2026学年人教版生物八年级上册
- 2025年社工工作者考试真题及答案
- 药厂生产管理培训课件
- 同城理发店转租合同范本
- 2021-2025年高考地理真题知识点分类汇编之地球的运动
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
评论
0/150
提交评论