《基于Android_的传感器技术应用开发_毕业设计(35页).doc》由会员分享,可在线阅读,更多相关《基于Android_的传感器技术应用开发_毕业设计(35页).doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于ANDROID_的传感器技术应用开发_毕业设计-第 29 页目录摘要IABSTRACTII引言11绪论21.1研究背景与意义21.2国内外智能手机应用程序现状研究31.3研究目的及项目背景介绍31.4论文的研究内容和结构安排31.4.1论文内容概述31.4.2论文内容结构安排41.5小结42基于ANDROID的传感器技术研究52.1Android简述52.1.1Android平台简介52.1.2Android开发框架52.1.3Android应用程序组件62.1.4Android软件开发的优点及缺点82.1.5Basic4android开发环境的搭建92.1.6运用Basic4andro
2、id软件的优势102.2传感器概念与分类112.2.1传感器的概念112.2.2传感器的分类112. 3传感器在智能手机中的应用112. 4Android平台传感器的种类122.4.1加速传感器(重力传感器)Accelerometer132.4.2姿态传感器Orientation142. 5传感器的使用方法152.5.1加速度传感器的调用(PhoneAccelerometer)152.5.2方向传感器的调用(PhoneOrientation)152.6B4A-Bridge软件的使用162.7小结173游戏程序设计架构详解183.1程序开发背景与功能简介183.1.1程序开发背景简介183.1.
3、2游戏功能简介183.2游戏开发平台及工作准备193.2.1游戏开发平台193.2.2游戏相关素材193.3游戏整体详细框架193.3.1游戏的功能模块详解193.3.2游戏具体包含实体模块213.3.3MVC设计模式介绍223.3.4游戏设计规划过程233.3.5游戏各个模块设计详解233.4游戏设计中的状态机253.5小结254游戏源程序开发264.1传感器游戏开发流程264.2游戏开发实现过程的主要技术实现264.2.1Android静态图片的访问264.2.2Android动态图片的访问274.2.3图像色彩显示274.2.4碰撞检测实现284.3核心库文件的详细解读294.3.1Ga
4、meView294.3.2Phone304.3.3Audio324.4游戏测试334.4.1游戏测试环境334.4.2游戏测试结果334.5本章总结335总结与展望345.1论文总结345. 2未来展望34致谢35参考文献36摘要随着科学技术的发展,人们的沟通方式发生了翻天覆地的变化,对手机的需求也不在局限于传统的语音、短信功能,而是要求成为具有越来越完备和强大的应用数据处理能力,如移动办公、网上购物、互联网游戏、地图导航、随身数字影院、在线音乐等等兼备的智能的手持终端。在现实生活中,智能手机硬件以及软件开发商也正是朝着这个目标进行技术和产品的创新。因此也就出现了几大阵营的智能手机操作系统,目
5、前使用最为广泛的是Apple公司的IOS,Microsoft的Windows Phone,以及现在正在迅速崛起的Google公司推出的基于Linux内核的开源智能手机操作系统Android。根据Google公司的统计数据,Android设备每日实际激活量约达65万台,该系统正在如火如荼的壮大。基于Android系统的各种手机硬件及软件研发已然成为一种趋势。作为近些年智能手机操作系统中的佼佼者之一,Google公司发布的Android系统正在趋于成熟,并凭借其自身强大的开源优势成为厂商在手机硬件和应用研发中的首选。Android系统平台有功能强大的传感器接口,这些接口为开发各类手机传感器应用(A
6、PPS)提供了便利的途径。本文通过介绍基于Android系统平台的传感器应用游戏的设计与开发过程,阐述当前流行传感器应用程序在Android智能手机操作系统中的实现过程及涉及的技术要点。利用姿态传感器设计一款游戏应用程序,从而全面的学习并实践传感器在游戏开发过程中的使用。该程序中主要运用到的技术有传感器应用技术、游戏应用程序界面设计。关键词:智能手机;Android;传感器;游戏开发ABSTRACTWith the development of science and technology, the way people communicate has undergone enormous c
7、hanges. They are no longer just confined to the traditional voice and text messaging function level, but require the phone has become more and more complete and powerful application processing capabilities. Such as mobile office, online shopping, internet games, map navigation, online music. Smart p
8、hones and application software developers are towards this objective technical and product research and development. The most widely used is the U.S. Apples iPhone operating system and Microsoft Windows Phone mobile operating system. The open source Linux kernel Android smartphone operating system i
9、s rapidly emerging.Android smartphone operating system platform has a powerful sensor interface, such as orientation sensor, accelerometer sensor, light sensor, magnetic field sensor, ambient temperature sensor, gravity sensor, gyroscope sensor, pressure sensor, proximity sensor, temperature sensor
10、and rotation vector sensor etc. These all types of mobile sensor provide a convenient way for the development of applications.This paper introduces a sensor application game design based on the Android smartphone operating system. Learning how the popular smartphone operating system sensor applicati
11、ons develop.Keywords:Smart phones;sensor;games;Android引言正是科学技术的发展带来了各种各样便捷的生活方式,同时人们对于生活质量的要求也越来越高,特别是对于移动互联网时代的终端要求伴随技术水平的提高而水涨船高。传统的软、硬件模式已经被人们所摒弃,新的创新型产品越来越深入到生活的方方面面。手机现在成为了每一个人出门必备的随身物品,所以人们对其的要求也越来越高。Google公司的Android操作系统就是一个非常开放与优秀的智能手机操作平台,其强大应用接口可以为程序的开发提供非常便利的条件。本次的毕业设计基于Android的传感器技术应用开发就是
12、以Basic4android搭建开发环境,利用Android平台提供的硬件实现传感器游戏的开发,从而对于传感器进行深入的研究与学习。本文分为5个章节详细的介绍了从开始想法的萌生到开发完成的所有步骤。第1章是绪论,主要介绍研究背景、意义等基本情况;第2章对应用程序项目涉及的具体相关技术进行介绍;第3章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块;第4章是程序的详细开发设计过程研究、源程序代码开发以及测试。在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等进行详细的分析与介绍,其中包括程序中的姿态传感器模块算法开发、应用程序测试等等;第5章
13、是总结与展望,将会对论文研究的结果进行总结并且对未来该方向的发展趋势加以展望。1 绪论在移动互联网时代,一次次的科学技术的发展,必将带来前所未有的挑战与机遇,新的科学技术成果将为人类的文明史划下浓墨重彩的一笔。美国Google公司推出的Android系统就扮演着这样的角色,它已经改变了人们的传统的生活方式。本章将简要介绍该系统的演进史,再对研究的背景及意义简要的介绍,并对于论文的基本内容做了简要的安排。1.1研究背景与意义随着科学技术水平的不断迭代更新,人们的工作、生活方式正在悄然发生变化。在移动互联网时代,高速的生活节奏、海量的数据信息每天伴随在我们的身边。尤其在智能手机终端出现以后,这一现
14、象随处可见,地铁、公交、餐厅等等地方,人们越来越多的时间花在了移动手持终端之上,这使得传统的桌面式办公方式、消费模式、游戏娱乐体验发生了颠覆性的改变。现在的智能手机终端也越来越趋于智能化、人性化,功能越来越完善和强大。全球的各大厂商正在努力的进行技术研发与应用创新。在目前智能手机终端领域比较流行的操作系统主要有:微软(Microsoft)研发的Windows Phone智能手机操作系统、美国苹果(Apple)公司的iPhone智能手机操作系统、谷歌(Google)公司研发推出的基于Linux内核自由及开放源代码的智能手机操作系统Android。由于自由及开放源代码的优势使得Android智能手
15、机操作系统在过去的时间里迅猛的发展起来,倍受全球手机硬件厂商和软件研发人员青睐。本文将论述的Android游戏开发就该种,基于Linux内核自由及开放源代码的以手持终端为载体的智能操作系统平台下的应用程序开发。自谷歌(Google)公司2007年11月5日正式向外界展示了这款名为Android的操作系统后,从最初的阿童木(Android Beta)、发条机器人(Android 1.0)到纸杯蛋糕Cupcake (Android 1.5)、甜甜圈Donut (Android 1.6)、松饼Eclair (Android 2.0/2.1)、冻酸奶Froyo (Android 2.2)、姜饼Ging
16、erbread (Android 2.3)、蜂巢Honeycomb (Android 3.0)、冰激凌三明治Ice Cream Sandwich (Android 4.0)、果冻豆Jelly Bean (Android4.1和Android 4.2)以及在不久的将来要发布的青柠派Key Lime Pie (Android5.0),经过各个版本的更迭改善使得绝大部分组件功能都不需要经过授权而可以直接为开发人员所利用。软件研发者开发的软件可以被上传到谷歌应用商店(Google Play)之上供人们下载使用,达到资源共享的目的。正是这样的原因极大的促进了Android智能手机操作系统以及其产业链的蓬
17、勃发展,手机硬件厂商、软件研发机构和个人大量的投入到这个产业当中。基于Android的手机硬件产品层出不穷,各个厂商打造属于自己的基于Android的智能手机操作系统,软件开发人员运用开放与自由的平台开发拥有个性化应用的软件程序,一股Android之风正在席卷全球。1.2国内外智能手机应用程序现状研究由于Android系统本身所自带的强大的应用程序接口(API)功能,这就为人们开发各种类型的应用提供便利的技术应用基础。现在,市面上围绕Android的智能手机操作系统己经开发出五花八门的应用程序,如移动办公程序、互联网游戏程序等等。在传统PC桌面以及Web应用程序开发日趋成熟的状况下,基于智能手
18、机的移动互联网应用程序开发是当前软件研发的又一个春天,智能手机操作系统的发展更为移动互联网时代的快速发展带来前所未有契机。在对手机的应用程序功能需求上,人们的要求也越来越有品位与个性化。传统的手机软件已经不再能够满足人们日益增长的互联网服务需求。相应产生的是能够满足更多需求的综合性智能手机应用程序,比如说百度地图(Baidu Map)能够在提供地图服务的基础上为人们提供便捷的本地生活服务提供周边餐饮美食、休闲娱乐、酒店购物等海量商户信息,包括商户电话、地址地图、客观点评等免费下载优惠券,还可享受最新鲜的团购折扣信息;智能出行规划拥有强大的路线查询及规划能力,支持公交、驾车、步行、 地铁四种出行
19、方式,提供路线方案和打车费用; 随时随地查看实时路况,提前规划出行计划等等。当然越来越高的技术难点就会出现在研发人员的面前,比如3D效果显示技术,大数据的分析技术等等。本论文正是在这样的大背景之下,研究利用手机的传感器设计出来一个小型游戏软件,从而对于Android程序的开发过程做一了解。1.3研究目的及项目背景介绍伴随着移动互联网技术的更迭和大数据时代的到来,相关的应用程序也在不断的演进,各种领域的学者都在关注着该领域的每一步发展。从谷歌公司(Google)开始发布基于Linux内核的自由开放源代码的Android智能手机操作系统以来,各大个人、高校以及研究机构纷纷投入与其相关领域进行研究。
20、本文中将会介绍基于Android操作系统的传感器应用程序开发游戏的全过程,通过开发中不断出现问题、解决问题的过程,从而对Android平台应用程序的开发有一个全面的了解,为以后的进一步拓展学习打下坚实的基础。更多的是学会去提出问题,解决问题的方法,继而从容面对以后工作中遇到的更多的难题。1.4论文的研究内容和结构安排1.4.1论文内容概述本论文主要对基于Android的传感器技术应用进行深入的研究,通过开发一款比较简单常见的传感器小型游戏的整体设计与实现过程,学习传感器技术在Android智能手机操作系统中的综合应用。游戏程序主要是利用姿态传感器技术和主要的素材模块实现,通过调整手机姿态来实时
21、控制游戏主角的弹跳轨迹,从而到达更高平台,获取更高的分数,游戏具有很高的操作性与可玩性。1.4.2论文内容结构安排本文分为5个章节,第1章是绪论,主要介绍论文研究背景、意义等情况;第2章对应用程序项目涉及的具体相关技术进行介绍;第3章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块;第4章是程序的详细开发设计过程研究、代码开发以及测试,在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等知识点进行详细的分析与介绍,其中包括程序中的姿态传感器模块开发算法、应用程序测试等等;第5章是综述,将会对论文研究的结果进行总结并且对未来的发展趋势加以展望。
22、1.5小结本章是论文的绪论部分,主要介绍了论文的研究意义、国内外研究现状,对论文的撰写架构做了简要的说明。最后对论文中涉及的项目程序的开发技术背景知识进行了介绍,这些在下一章当中进行详细的介绍与分析。2 基于Android的传感器技术研究绪论对于文章的研究背景做了介绍,这一章将针对Android的平台和程序设计过程中用到的传感器知识进行深入的探讨,并将Basic4android相关的要点进行重点的阐述。2.1Android简述2.1.1Android平台简介Android的本义是“机器人”,是Google公司2007年11月5日正式面世,基于Linux平台的开放源代码的操作系统,它很好的整合了
23、操作系统、中间件、用户界面和应用软件,可以为移动终端打造开放完整的移动程序软件。Android是一个崭新的手机操作系统平台,在以Google为首的40多家开放手机联盟(OHA)支持下,使用开放源码策略,平台全部以开源的项目来构建,是完全开放的智能终端操作系统平台。Android系统的快速发展使得移动终端的发展趋向于多元化,其强大的网络功能及整合Google网络服务优势,使得Android在移动技术发展方面有着光明的前景趋势。目前Android已由刚开始的Android 1.0版本经过多个版本的演进与升级,发展到现在的Android4.1、Android4.2版本,不久的将来会发布的Androi
24、d4.5版本,其平台应用方面更加趋于完备和成熟。2.1.2Android开发框架和其他的智能手机操作系统一样,Android操作系统也有自己的一套运行机制和开发框架,如图1.1所示:应用层程序应用程序架构应用库核心库Da1Vik虚拟机Linux内核图1-1Android框架由于Android系统的体系架构采用类似于OSI的开放式系统互联参考模型的分层架构,分层的好处是下层可以为上层提供统一的服务,这样能够屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上一层;也就说高层各司其职,各层提供各自独有的服务。a.应用程序Android应用程序属于整个框架的最顶层,也是开发人员进行设计开发应
25、用以及终端用户体验使用直接接口。该层包含大量本身配置的一套应用程序子集,如短信收发、日历查询、Google Map、Web浏览器、E-mail客户端等等常用工具组件,以及基于Android平台的应用程序框架,该层是使用Java语言开发的。b.应用程序框架Android应用程序框架主要包括系统中与用户进行交互的一些管理组件,如Activity、窗体、电话、包和视图管理等等,这些框架的使用可简化和充当应用程序的组件。在应用程序框架这一层,充分体现了各个组件的重用性能,也就是说任何的应用组件不但可以独立发布自己的应用,也可以发布其他具有组合功能的应用程序。因此,通过该应用程序框架,用户自定义的程序不
26、但可以执行用户程序之外的预设功能,也可以执行其他附加的能使得软件的复用性更高。c.系统开发库Android系统的库运行在Linux内核之上,应用程序框架层之下。该层由负责Android运行时的核心库、Dalvik虚拟机以及其他的一些常用的应用库组成。这些核心库主要是C/C+函数库,而应用库则是一些常用的应用开发库,例如用于音频、视频播放的媒体库;用于管理界面显示效果的外观管理器;用于2D和3D图形显示的SGL和OpenGL的图形库;用于本地数据库支持的SQLite;用于集成Web浏览器和Internet安全的SSL和Webkit等等。d. Linux核心Android的Linux核心层位于其框
27、架的最底层,该层虽说是基于Linux核心,但是发展到现在已经和Linux有了很大差别。该层用来提供系统的底层服务,包括安全运行机制、内存、进程、电源项的管理,网络堆栈及所有驱动模块。另外,内核还在硬件和软件栈的部分提供了一个抽象层。Android系统框架发展到现在的状况,底层Linux核心层已经和标准的Linux很大的区别,它的编程接口、系统库等和标准的Linux系统已经不同,它的文件系统并不是采用虚拟内存文件系统,而是采用开源的、可移植性较好的YAFFS ( Yet Another Flash File System)文件系统。2.1.3Android应用程序组件进行Android应用程序的
28、开发,我们必不可少的就是要了解其平台的应用程序框架。Android 应用程序主要是由Activity、Broadcast Receiver、Service 和 Content Provider四大组件构成。在Android应用程序中,不一定要包括所有组件,开发人员可根据实际需求进行选择性的使用。但无论对哪个组件进行使用,都必须在AndroidManfest.xml 文件中进行注册以后才能使用。a.Activity组件在Android中最常见、也是最重要的一个组件是Activity。它主要是负责终端屏幕界面之间的跳转,为用户提供一个可视化界面,也就是说我们用户所看到的每一个显示界面就是一个Act
29、ivity组件。在进行程序开发的过程中所涉及到的全部功能就是通过Activity组件之间的相互衔接、跳转,再运用其自带的强大控件功能和图层渲染等技术完成,从而最终形成优美的显示界面。任何一个Activity类的使用都是继承自基类,并在AndroidManfest.xml文件中进行注册。Activity中包含有3个重要的生命周期状态:运行状态(Running State)暂停状态(Pause State)和停止状态(Stopped State)。对Activity组件的调用基本上都是对这三个生命周期的使用。当Activity在不同状态进行切换时,就是通过重写相应的回调的方法来执行相应的动作,图2
30、-1显示的是Activity生命周期的基本过程。Activity创建OnRestart( )失去焦点销毁退出失去焦点获得焦点OnDestroy( )OnStop( )PausedStateOnPauese( )RunningStateOnCreate( )OnStart( )OnResume()StoppedState图 2-1Activity生命周期b.Broadcast Receiver组件Broadcast Receiver组件主要负责接收外部的广播消息并对消息做出适当反应。在使用Android系统的时候经常会遇到许多各种类型的广播,比如我们在玩游戏同时,手机显示有新的来电或者收到新的短
31、信,由于优先级的不同,这时这个系统就必须对当前应用程序进行中断并响应新来电或短信,这些都需要系统响应。应用程序需要对某些广播事件进行响应,则需要注册对应的Broadcast Receiver对象。Broadcast Receiver发布广播和接收广播是通过Intent对象来完成,Intent可用于Activity之间的切换。Broadcast Receiver组件的生命周期较为简单,它只需onReceiver一个回调方法,在应用程序接收到广播的时候调用即可。c.Service组件Service组件是与用户没有交互界面,运行于程序后台的长生命周期组件,它继承自Service类。Service组件
32、运行于程序的后台,因此任何不需要在前台显示的计算或数据处理,都可以通过启动Service组件来实现。因此,我们可以认为Service是一个默默在后台支撑系统的各种程序,而自身却始终没有现身的幕后主角。一个Service启动之后会一直在后台运行,直到自己的生命周期结束为止,即便在这期间启动它的Activity或是其他组件的生命周期己经结束。与此同时,Service组件有两种启动的方式,分别为startService方式和bindService方式。这两种方式的区别是bindService方式会将启动Service组件的组件,如Activity,进行绑定,当启动Service的组件消失时,它也会跟
33、着一起停止运行。而startService方式则不同,它会一直在后台运行到生命周期结束为止。d.Content Provider组件该组件主要的功能是在不同的应用程序之间实现数据共享。Android系统应用程序拥有各自独立的存储空间,这样如果一个程序要访问其他程序的数据或者向外部程序提供数据,则需要Content Provider组件来完成。在Android平台中,应用程序数据可以被存储为SQLite数据库文件、Android系统文件或者其他合法的文件类型。Content Provider为应用程序提供了一组标准的访问方式,用于在程序需要时能够访问这些数据,实现数据共享。2.1.4Androi
34、d软件开发的优点及缺点a.Android应用开发的优势Android平台的开放性:开放性对其迅速的风靡全球有不可磨灭的功劳。谷歌公司把Android系统开放给广大软、硬件厂商、软件研发人员以及普通用户,为Android平台积累了众多的人气和关注度。大家可以通过Google的Google Play平台下载应用软件并且上传自己设计开发的程序,这样的开放方式促进Android平台不断的发展和完善,也有利于促进软件行业的竞争,同时为大家提供了非常丰富的软件资源。良好的兼容性:Android平台的兼容性,使Android手机上的各种应用开发百花齐放,各种各样创新的设计以及产品应运而生,虽然这些基于And
35、roid平台上开发的应用程序功能特色各异、用途各不相同,在不同手机厂商的硬件版本中,却实现数据同步,软、硬件高度兼容的情况,这些是得力于手机联盟(OHA)对Android平台的大力支持。高度融合Google服务:Android系统另一个特点就是整合了Google服务的特色功能,如Google Map、E-mail、搜索功能等,这些极大的方便广大开发者以及手机用户。b.Android应用开发存在的不足Android版本更新过于频繁。自从2007年Android1.0版本正式面世以来,中间经历了许多的版本的更迭,虽然这样说明了Android发展的势头,但同时版本更新过于密集,也会让开发人员和用户感
36、到不适,系统及软件的升级维护有一定的麻烦,无形中增加了一定的使用成本。由于Android虚拟机Dalvik VM对硬件配置资源的要求比较高,相应的开发所需硬件配置成本比其他开发环境要求有所提高。为了平台的安全性考虑,Google公司在该平台使用开发时设置了较多的权限控制,导致了任务管理器、虚拟按键、屏幕截图、短信防火墙等类似功能的实现步骤相当繁琐,比较难为实现。2.1.5Basic4android开发环境的搭建Android平台Linux核心库提供了Java语言核心库的大多数功能,并通过Dalvik虚拟机来执行Android应用程序。因此,Android平台下应用程序的开发除了用于Java语言
37、开发的JDK,还须安装专门为Android开发用的Android标准开发包Android SDK,以及相关的开发编程工具Basic4android,具体开发环境的搭建和配置流程这里不做详细的介绍。只对于环境搭建过程中的注意事项做一简单介绍。首先安装完成Basic4android,初次运行会提示选择相应的license文件并且要求输入邮箱账号,从而激活完整版软件。第二步安装Java JDK v7,这里要注意的是不管是32位或者64位的操作系统,都必须安装Windows x86 (32-bit),否则在下一步Android SDK的安装过程中将无法识别。第三步安装Android SDK和开发平台(
38、platform),Android SDK的安装路径必须不能包含空格键,比如Program Files,完成安装之后打开路径下的SDK Manager.exe 其显示如图2-2所示Android SDK Manager界面: 图2-2Android SDK Manager界面勾选并下载相应的平台版本,推荐安装API8及以上版本,由于该游戏硬件加速的开启,必须选择Android 4.0以上的版本,这里我们选择的是Android 4.1的开发平台。完成安装后进入Basic4android点击选择Tools Configure Paths配置相应的路径,如图2-3Paths Configuratio
39、n界面:图2-3Paths Configuration界面到此为止,所需软件安装、开发环境平台搭建完成。2.1.6运用Basic4android软件的优势Basic4android是简单而强有力的工具;IDE和程序语言100%专注于Android 开发;编译为原生 bytecode,不需要运行库生成的 APK 文件与Java / Eclipse生成的文件完全一样;与Java 写的应用性能相同;使用与Visual Basic类似的事件驱动开发语言,支持对象和代码模块;不需要写任何 XML 文件;通过支持定制Java 库提高扩展性;大量的、活跃的、有好的社区开发者,超过 20,000 注册开发者;
40、Android史上唯一的真正 WYSIWYG 可视化编辑器。可视化编辑器能够支持多屏幕和各种分辨率。支持Android 1.6 到 4.0版本的所有的电话和平板终端;支持自动完成、内置文档和内部索引的现代IDE和其他高级功能;集成了强大的单步调试器;具有可定制在线和离线查询功能的海量文档;使用可视化设计器和抽象设计器支持所有的屏幕大小和分辨率;增强的数据库和web 服务的支持,一步一步指导如何连接到远程的MySQL and Microsoft SQL Server数据库等等一系列所独有的特征。2.2传感器概念与分类2.2.1传感器的概念传感器是一种物理装置或生物器官,能够探测、感受外界的信号、
41、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。国家标准GB/T 7665-200对传感器的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。传感器是一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求,它是实现自动检测和自动控制的首要环节。2.2.2传感器的分类传感器技术己经广泛应用于人们的生活、工作、学习方方面面之中,它们的种类丰富,特点各异,因此把它们分类的方法也有很多方式。最直接和最广泛的
42、分类方式是把它们分为物理传感器、化学传感器和生物传感器三种类型。另外,按照传感器的不同用途和性质也可以分成种类多的传感器,如温度传感器、光传感器、压力传感器、速度传感器、磁敏传感器、湿敏传感器、震动传感器、能耗传感器以及本文中将会重点介绍的姿态传感器等等。按这些种类繁多的传感器技术为人们的生活、工作、学习、科研提供了非常多的便利,被广泛应用于军事、航天航空、医用、汽车、家电等各个顶端和基础行业领域。2. 3传感器在智能手机中的应用随着智能操作系统手机以及移动互联网迅速发展,手机的功能己远远超出其最初的打电话、发短信的功能。智能手机在人们的日常生活工作中扮演着越来越重要的角色,消费者在手机功能上
43、的要求也越来越苛刻,一部智能化、人性化的智能手机更能为人们所接受和喜爱。目前,智能手机的功能可谓是多种多样,基本上满足了不同人群的各种需求。手机传感器应用技术也正是在这样的背景下得以迅速的发展。目前应用于智能手机上的传感器技术是非常多的:如光传感器(Light Sensor)主要用于手机屏幕亮度的智能调节。手机的光传感器技术可根据周围环境光线的情况,智能的调节手机屏幕的亮度,如果手机用户处于黑暗的环境中时,传感器便会智能降低手机屏幕的亮度,起到保护用户眼睛和节能的作用。相反,当手机处于较强烈的光线之下时,传感器则会自动增加手机屏幕的亮度,以达到较好的显示效果。而距离传感器(Proximity
44、Sensor)可以在用户接电话时智能熄灭屏幕,则可以防止用户在听电话时手机屏幕接触到用户脸部将电话意外挂断或者消耗过多的电能。重力传感器(Gravity Sensor)在智能手机上的应用则更为广泛常见,比如很有意思的是来电时翻转手机静音。姿态传感器(Orientation Sensor)主要是用于检测手机方向的变化,而做出相关的应用,最典型的应用就是游戏的使用,比如本论文的传感器小游戏就是该传感器的使用例子。应用的比较好,而且非常人性化的就是当下非常流行的美国苹果公司(Apple)公司的语音软件Siri,她能够利用陀螺仪和距离传感器检测手机轨迹状态,在手机从静止平台状态下到拿起放到耳朵旁边的过
45、程中,触发并打开语音助手实现手机直接拨打电话等等功能。2. 4Android平台传感器的种类Google的Android平台为我们提供大量传感器硬件接口。从Android l . 5版本开始,Android系统内置了对多达八种传感器的支持,它们分别是:加速度传感器(Accelerometer Sensor)、陀螺仪(Gyroscope Sensor)、环境光照传感器(Light Sensor)、磁力传感器(Magnetic field Sensor)、方向传感器(Orientation Sensor)、压力传感器(Pressure Sensor)、距离传感器(Proximity Sensor)
46、、温度传感器(Temperature Sensor)和本论文重点应用的姿态传感器(Orientation Sensor)。正是因为有了这些成熟的传感器技术的支撑,我们可以在Android平台上设计开发出各种人性化、高实用性的手机应用程序。在表2-4写出来在Android平台下各种传感器的返回值情况。传感器类型返回值数量返回值备注ORIENTATION3Value0:PitchValue1:RollValue2:Yaw方向传感器,返回三个坐标轴的角度,以度为单位PRESURE1Value0:Pressure压力传感器,单位为KP千帕斯卡LIGHT1Value 0 :Illumination计算周
47、围环境光的强度,以lux为单位GYROSCOPE3Value0:PitchValue1:RollValue2:Yaw计算三个坐标轴的方向的角度,单位为度。MAGNETIC FIELD3Value 0 : LateralValue1:LongitudinalValue2:Vertical计算坐标轴三个方向磁感应情况,以微特拉斯ut为单位ACCELEROMETER3Value 0 : LateralValue1:LongitudinalValue2:Vertical加速度传感器,返回值单位为m/s2PRPXIMITY1Value0:Distance距离传感器,返回值以米为单位TEMPERATURE1Value 0 :Temperature温度传感器,返回值单位为摄氏度。表2-4Android平台下各种传感器的返回值在这里简单介绍了Android平台所支持的部分传感器的参数,在下边的论文中会再详细介绍跟应用程序相关的姿态传感器的主要特征以及调用的具体操作实现。2.4.1加速传感器(重力传感器)Acce