




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ANDROID的传感器技术应用开发目录摘要IABSTRACTII引言11绪论211研究背景与意义212国内外智能手机应用程序现状研究313研究目的及项目背景介绍314论文的研究内容和结构安排3141论文内容概述3142论文内容结构安排415小结42基于ANDROID的传感器技术研究521ANDROID简述5211ANDROID平台简介5212ANDROID开发框架5213ANDROID应用程序组件6214ANDROID软件开发的优点及缺点8215BASIC4ANDROID开发环境的搭建9216运用BASIC4ANDROID软件的优势1022传感器概念与分类11221传感器的概念11222传感器的分类1123传感器在智能手机中的应用1124ANDROID平台传感器的种类12241加速传感器重力传感器ACCELEROMETER13242姿态传感器ORIENTATION1425传感器的使用方法15251加速度传感器的调用PHONEACCELEROMETER15252方向传感器的调用PHONEORIENTATION1526B4ABRIDGE软件的使用1627小结173游戏程序设计架构详解1831程序开发背景与功能简介18311程序开发背景简介18312游戏功能简介1832游戏开发平台及工作准备19321游戏开发平台19322游戏相关素材1933游戏整体详细框架19331游戏的功能模块详解19332游戏具体包含实体模块21333MVC设计模式介绍22334游戏设计规划过程23335游戏各个模块设计详解2334游戏设计中的状态机2535小结254游戏源程序开发2641传感器游戏开发流程2642游戏开发实现过程的主要技术实现26421ANDROID静态图片的访问26422ANDROID动态图片的访问27423图像色彩显示27424碰撞检测实现2843核心库文件的详细解读29431GAMEVIEW29432PHONE30433AUDIO3244游戏测试33441游戏测试环境33442游戏测试结果3345本章总结335总结与展望3451论文总结3452未来展望34致谢35参考文献36摘要随着科学技术的发展,人们的沟通方式发生了翻天覆地的变化,对手机的需求也不在局限于传统的语音、短信功能,而是要求成为具有越来越完备和强大的应用数据处理能力,如移动办公、网上购物、互联网游戏、地图导航、随身数字影院、在线音乐等等兼备的智能的手持终端。在现实生活中,智能手机硬件以及软件开发商也正是朝着这个目标进行技术和产品的创新。因此也就出现了几大阵营的智能手机操作系统,目前使用最为广泛的是APPLE公司的IOS,MICROSOFT的WINDOWSPHONE,以及现在正在迅速崛起的GOOGLE公司推出的基于LINUX内核的开源智能手机操作系统ANDROID。根据GOOGLE公司的统计数据,ANDROID设备每日实际激活量约达65万台,该系统正在如火如荼的壮大。基于ANDROID系统的各种手机硬件及软件研发已然成为一种趋势。作为近些年智能手机操作系统中的佼佼者之一,GOOGLE公司发布的ANDROID系统正在趋于成熟,并凭借其自身强大的开源优势成为厂商在手机硬件和应用研发中的首选。ANDROID系统平台有功能强大的传感器接口,这些接口为开发各类手机传感器应用APPS提供了便利的途径。本文通过介绍基于ANDROID系统平台的传感器应用游戏的设计与开发过程,阐述当前流行传感器应用程序在ANDROID智能手机操作系统中的实现过程及涉及的技术要点。利用姿态传感器设计一款游戏应用程序,从而全面的学习并实践传感器在游戏开发过程中的使用。该程序中主要运用到的技术有传感器应用技术、游戏应用程序界面设计。关键词智能手机ANDROID传感器游戏开发ABSTRACTWITHTHEDEVELOPMENTOFSCIENCEANDTECHNOLOGY,THEWAYPEOPLECOMMUNICATEHASUNDERGONEENORMOUSCHANGESTHEYARENOLONGERJUSTCONFINEDTOTHETRADITIONALVOICEANDTEXTMESSAGINGFUNCTIONLEVEL,BUTREQUIRETHEPHONEHASBECOMEMOREANDMORECOMPLETEANDPOWERFULAPPLICATIONPROCESSINGCAPABILITIESSUCHASMOBILEOFFICE,ONLINESHOPPING,INTERNETGAMES,MAPNAVIGATION,ONLINEMUSICSMARTPHONESANDAPPLICATIONSOFTWAREDEVELOPERSARETOWARDSTHISOBJECTIVETECHNICALANDPRODUCTRESEARCHANDDEVELOPMENTTHEMOSTWIDELYUSEDISTHEUSAPPLESIPHONEOPERATINGSYSTEMANDMICROSOFTWINDOWSPHONEMOBILEOPERATINGSYSTEMTHEOPENSOURCELINUXKERNELANDROIDSMARTPHONEOPERATINGSYSTEMISRAPIDLYEMERGINGANDROIDSMARTPHONEOPERATINGSYSTEMPLATFORMHASAPOWERFULSENSORINTERFACE,SUCHASORIENTATIONSENSOR,ACCELEROMETERSENSOR,LIGHTSENSOR,MAGNETICFIELDSENSOR,AMBIENTTEMPERATURESENSOR,GRAVITYSENSOR,GYROSCOPESENSOR,PRESSURESENSOR,PROXIMITYSENSOR,TEMPERATURESENSORANDROTATIONVECTORSENSORETCTHESEALLTYPESOFMOBILESENSORPROVIDEACONVENIENTWAYFORTHEDEVELOPMENTOFAPPLICATIONSTHISPAPERINTRODUCESASENSORAPPLICATIONGAMEDESIGNBASEDONTHEANDROIDSMARTPHONEOPERATINGSYSTEMLEARNINGHOWTHEPOPULARSMARTPHONEOPERATINGSYSTEMSENSORAPPLICATIONSDEVELOPKEYWORDSSMARTPHONESSENSORGAMESANDROID引言正是科学技术的发展带来了各种各样便捷的生活方式,同时人们对于生活质量的要求也越来越高,特别是对于移动互联网时代的终端要求伴随技术水平的提高而水涨船高。传统的软、硬件模式已经被人们所摒弃,新的创新型产品越来越深入到生活的方方面面。手机现在成为了每一个人出门必备的随身物品,所以人们对其的要求也越来越高。GOOGLE公司的ANDROID操作系统就是一个非常开放与优秀的智能手机操作平台,其强大应用接口可以为程序的开发提供非常便利的条件。本次的毕业设计基于ANDROID的传感器技术应用开发就是以BASIC4ANDROID搭建开发环境,利用ANDROID平台提供的硬件实现传感器游戏的开发,从而对于传感器进行深入的研究与学习。本文分为5个章节详细的介绍了从开始想法的萌生到开发完成的所有步骤。第1章是绪论,主要介绍研究背景、意义等基本情况;第2章对应用程序项目涉及的具体相关技术进行介绍;第3章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块第4章是程序的详细开发设计过程研究、源程序代码开发以及测试。在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等进行详细的分析与介绍,其中包括程序中的姿态传感器模块算法开发、应用程序测试等等第5章是总结与展望,将会对论文研究的结果进行总结并且对未来该方向的发展趋势加以展望。1绪论在移动互联网时代,一次次的科学技术的发展,必将带来前所未有的挑战与机遇,新的科学技术成果将为人类的文明史划下浓墨重彩的一笔。美国GOOGLE公司推出的ANDROID系统就扮演着这样的角色,它已经改变了人们的传统的生活方式。本章将简要介绍该系统的演进史,再对研究的背景及意义简要的介绍,并对于论文的基本内容做了简要的安排。11研究背景与意义随着科学技术水平的不断迭代更新,人们的工作、生活方式正在悄然发生变化。在移动互联网时代,高速的生活节奏、海量的数据信息每天伴随在我们的身边。尤其在智能手机终端出现以后,这一现象随处可见,地铁、公交、餐厅等等地方,人们越来越多的时间花在了移动手持终端之上,这使得传统的桌面式办公方式、消费模式、游戏娱乐体验发生了颠覆性的改变。现在的智能手机终端也越来越趋于智能化、人性化,功能越来越完善和强大。全球的各大厂商正在努力的进行技术研发与应用创新。在目前智能手机终端领域比较流行的操作系统主要有微软MICROSOFT研发的WINDOWSPHONE智能手机操作系统、美国苹果APPLE公司的IPHONE智能手机操作系统、谷歌GOOGLE公司研发推出的基于LINUX内核自由及开放源代码的智能手机操作系统ANDROID。由于自由及开放源代码的优势使得ANDROID智能手机操作系统在过去的时间里迅猛的发展起来,倍受全球手机硬件厂商和软件研发人员青睐。本文将论述的ANDROID游戏开发就该种,基于LINUX内核自由及开放源代码的以手持终端为载体的智能操作系统平台下的应用程序开发。自谷歌GOOGLE公司2007年11月5日正式向外界展示了这款名为ANDROID的操作系统后,从最初的阿童木ANDROIDBETA、发条机器人ANDROID10到纸杯蛋糕CUPCAKEANDROID15、甜甜圈DONUTANDROID16、松饼ECLAIRANDROID20/21、冻酸奶FROYOANDROID22、姜饼GINGERBREADANDROID23、蜂巢HONEYCOMBANDROID30、冰激凌三明治ICECREAMSANDWICHANDROID40、果冻豆JELLYBEANANDROID41和ANDROID42以及在不久的将来要发布的青柠派KEYLIMEPIEANDROID50,经过各个版本的更迭改善使得绝大部分组件功能都不需要经过授权而可以直接为开发人员所利用。软件研发者开发的软件可以被上传到谷歌应用商店GOOGLEPLAY之上供人们下载使用,达到资源共享的目的。正是这样的原因极大的促进了ANDROID智能手机操作系统以及其产业链的蓬勃发展,手机硬件厂商、软件研发机构和个人大量的投入到这个产业当中。基于ANDROID的手机硬件产品层出不穷,各个厂商打造属于自己的基于ANDROID的智能手机操作系统,软件开发人员运用开放与自由的平台开发拥有个性化应用的软件程序,一股ANDROID之风正在席卷全球。12国内外智能手机应用程序现状研究由于ANDROID系统本身所自带的强大的应用程序接口API功能,这就为人们开发各种类型的应用提供便利的技术应用基础。现在,市面上围绕ANDROID的智能手机操作系统己经开发出五花八门的应用程序,如移动办公程序、互联网游戏程序等等。在传统PC桌面以及WEB应用程序开发日趋成熟的状况下,基于智能手机的移动互联网应用程序开发是当前软件研发的又一个春天,智能手机操作系统的发展更为移动互联网时代的快速发展带来前所未有契机。在对手机的应用程序功能需求上,人们的要求也越来越有品位与个性化。传统的手机软件已经不再能够满足人们日益增长的互联网服务需求。相应产生的是能够满足更多需求的综合性智能手机应用程序,比如说百度地图BAIDUMAP能够在提供地图服务的基础上为人们提供便捷的本地生活服务提供周边餐饮美食、休闲娱乐、酒店购物等海量商户信息,包括商户电话、地址地图、客观点评等免费下载优惠券,还可享受最新鲜的团购折扣信息;智能出行规划拥有强大的路线查询及规划能力,支持公交、驾车、步行、地铁四种出行方式,提供路线方案和打车费用;随时随地查看实时路况,提前规划出行计划等等。当然越来越高的技术难点就会出现在研发人员的面前,比如3D效果显示技术,大数据的分析技术等等。本论文正是在这样的大背景之下,研究利用手机的传感器设计出来一个小型游戏软件,从而对于ANDROID程序的开发过程做一了解。13研究目的及项目背景介绍伴随着移动互联网技术的更迭和大数据时代的到来,相关的应用程序也在不断的演进,各种领域的学者都在关注着该领域的每一步发展。从谷歌公司GOOGLE开始发布基于LINUX内核的自由开放源代码的ANDROID智能手机操作系统以来,各大个人、高校以及研究机构纷纷投入与其相关领域进行研究。本文中将会介绍基于ANDROID操作系统的传感器应用程序开发游戏的全过程,通过开发中不断出现问题、解决问题的过程,从而对ANDROID平台应用程序的开发有一个全面的了解,为以后的进一步拓展学习打下坚实的基础。更多的是学会去提出问题,解决问题的方法,继而从容面对以后工作中遇到的更多的难题。14论文的研究内容和结构安排141论文内容概述本论文主要对基于ANDROID的传感器技术应用进行深入的研究,通过开发一款比较简单常见的传感器小型游戏的整体设计与实现过程,学习传感器技术在ANDROID智能手机操作系统中的综合应用。游戏程序主要是利用姿态传感器技术和主要的素材模块实现,通过调整手机姿态来实时控制游戏主角的弹跳轨迹,从而到达更高平台,获取更高的分数,游戏具有很高的操作性与可玩性。142论文内容结构安排本文分为5个章节,第1章是绪论,主要介绍论文研究背景、意义等情况;第2章对应用程序项目涉及的具体相关技术进行介绍;第3章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块;第4章是程序的详细开发设计过程研究、代码开发以及测试,在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等知识点进行详细的分析与介绍,其中包括程序中的姿态传感器模块开发算法、应用程序测试等等第5章是综述,将会对论文研究的结果进行总结并且对未来的发展趋势加以展望。15小结本章是论文的绪论部分,主要介绍了论文的研究意义、国内外研究现状,对论文的撰写架构做了简要的说明。最后对论文中涉及的项目程序的开发技术背景知识进行了介绍,这些在下一章当中进行详细的介绍与分析。2基于ANDROID的传感器技术研究绪论对于文章的研究背景做了介绍,这一章将针对ANDROID的平台和程序设计过程中用到的传感器知识进行深入的探讨,并将BASIC4ANDROID相关的要点进行重点的阐述。21ANDROID简述211ANDROID平台简介ANDROID的本义是“机器人”,是GOOGLE公司2007年11月5日正式面世,基于LINUX平台的开放源代码的操作系统,它很好的整合了操作系统、中间件、用户界面和应用软件,可以为移动终端打造开放完整的移动程序软件。ANDROID是一个崭新的手机操作系统平台,在以GOOGLE为首的40多家开放手机联盟OHA支持下,使用开放源码策略,平台全部以开源的项目来构建,是完全开放的智能终端操作系统平台。ANDROID系统的快速发展使得移动终端的发展趋向于多元化,其强大的网络功能及整合GOOGLE网络服务优势,使得ANDROID在移动技术发展方面有着光明的前景趋势。目前ANDROID已由刚开始的ANDROID10版本经过多个版本的演进与升级,发展到现在的ANDROID41、ANDROID42版本,不久的将来会发布的ANDROID45版本,其平台应用方面更加趋于完备和成熟。212ANDROID开发框架和其他的智能手机操作系统一样,ANDROID操作系统也有自己的一套运行机制和开发框架,如图11所示应用层程序应用程序架构应用库核心库DA1VIK虚拟机LINUX内核图11ANDROID框架由于ANDROID系统的体系架构采用类似于OSI的开放式系统互联参考模型的分层架构,分层的好处是下层可以为上层提供统一的服务,这样能够屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上一层;也就说高层各司其职,各层提供各自独有的服务。A应用程序ANDROID应用程序属于整个框架的最顶层,也是开发人员进行设计开发应用以及终端用户体验使用直接接口。该层包含大量本身配置的一套应用程序子集,如短信收发、日历查询、GOOGLEMAP、WEB浏览器、EMAIL客户端等等常用工具组件,以及基于ANDROID平台的应用程序框架,该层是使用JAVA语言开发的。B应用程序框架ANDROID应用程序框架主要包括系统中与用户进行交互的一些管理组件,如ACTIVITY、窗体、电话、包和视图管理等等,这些框架的使用可简化和充当应用程序的组件。在应用程序框架这一层,充分体现了各个组件的重用性能,也就是说任何的应用组件不但可以独立发布自己的应用,也可以发布其他具有组合功能的应用程序。因此,通过该应用程序框架,用户自定义的程序不但可以执行用户程序之外的预设功能,也可以执行其他附加的能使得软件的复用性更高。C系统开发库ANDROID系统的库运行在LINUX内核之上,应用程序框架层之下。该层由负责ANDROID运行时的核心库、DALVIK虚拟机以及其他的一些常用的应用库组成。这些核心库主要是C/C函数库,而应用库则是一些常用的应用开发库,例如用于音频、视频播放的媒体库;用于管理界面显示效果的外观管理器;用于2D和3D图形显示的SGL和OPENGL的图形库;用于本地数据库支持的SQLITE;用于集成WEB浏览器和INTERNET安全的SSL和WEBKIT等等。DLINUX核心ANDROID的LINUX核心层位于其框架的最底层,该层虽说是基于LINUX核心,但是发展到现在已经和LINUX有了很大差别。该层用来提供系统的底层服务,包括安全运行机制、内存、进程、电源项的管理,网络堆栈及所有驱动模块。另外,内核还在硬件和软件栈的部分提供了一个抽象层。ANDROID系统框架发展到现在的状况,底层LINUX核心层已经和标准的LINUX很大的区别,它的编程接口、系统库等和标准的LINUX系统已经不同,它的文件系统并不是采用虚拟内存文件系统,而是采用开源的、可移植性较好的YAFFSYETANOTHERFLASHFILESYSTEM文件系统。213ANDROID应用程序组件进行ANDROID应用程序的开发,我们必不可少的就是要了解其平台的应用程序框架。ANDROID应用程序主要是由ACTIVITY、BROADCASTRECEIVER、SERVICE和CONTENTPROVIDER四大组件构成。在ANDROID应用程序中,不一定要包括所有组件,开发人员可根据实际需求进行选择性的使用。但无论对哪个组件进行使用,都必须在ANDROIDMANFESTXML文件中进行注册以后才能使用。AACTIVITY组件在ANDROID中最常见、也是最重要的一个组件是ACTIVITY。它主要是负责终端屏幕界面之间的跳转,为用户提供一个可视化界面,也就是说我们用户所看到的每一个显示界面就是一个ACTIVITY组件。在进行程序开发的过程中所涉及到的全部功能就是通过ACTIVITY组件之间的相互衔接、跳转,再运用其自带的强大控件功能和图层渲染等技术完成,从而最终形成优美的显示界面。任何一个ACTIVITY类的使用都是继承自基类,并在ANDROIDMANFESTXML文件中进行注册。ACTIVITY中包含有3个重要的生命周期状态运行状态RUNNINGSTATE暂停状态PAUSESTATE和停止状态STOPPEDSTATE。对ACTIVITY组件的调用基本上都是对这三个生命周期的使用。当ACTIVITY在不同状态进行切换时,就是通过重写相应的回调的方法来执行相应的动作,图21显示的是ACTIVITY生命周期的基本过程。图21ACTIVITY生命周期BBROADCASTRECEIVER组件BROADCASTRECEIVER组件主要负责接收外部的广播消息并对消息做出适当反应。在使用ANDROID系统的时候经常会遇到许多各种类型的广播,比如我们在玩游戏同时,手机显示有新的来电或者收到新的短信,由于优先级的不同,这时这个系统就必须对当前应用程序进行中断并响应新来电或短信,这些都需要系统响应。应用程ONRESTARTONCREATEONSTARTONRESUMERUNNINGSTATEONPAUESEPAUSEDSTATEONSTOPSTOPPEDSTATEONDESTROYACTIVITY创建获得焦点失去焦点失去焦点销毁退出序需要对某些广播事件进行响应,则需要注册对应的BROADCASTRECEIVER对象。BROADCASTRECEIVER发布广播和接收广播是通过INTENT对象来完成,INTENT可用于ACTIVITY之间的切换。BROADCASTRECEIVER组件的生命周期较为简单,它只需ONRECEIVER一个回调方法,在应用程序接收到广播的时候调用即可。CSERVICE组件SERVICE组件是与用户没有交互界面,运行于程序后台的长生命周期组件,它继承自SERVICE类。SERVICE组件运行于程序的后台,因此任何不需要在前台显示的计算或数据处理,都可以通过启动SERVICE组件来实现。因此,我们可以认为SERVICE是一个默默在后台支撑系统的各种程序,而自身却始终没有现身的幕后主角。一个SERVICE启动之后会一直在后台运行,直到自己的生命周期结束为止,即便在这期间启动它的ACTIVITY或是其他组件的生命周期己经结束。与此同时,SERVICE组件有两种启动的方式,分别为STARTSERVICE方式和BINDSERVICE方式。这两种方式的区别是BINDSERVICE方式会将启动SERVICE组件的组件,如ACTIVITY,进行绑定,当启动SERVICE的组件消失时,它也会跟着一起停止运行。而STARTSERVICE方式则不同,它会一直在后台运行到生命周期结束为止。DCONTENTPROVIDER组件该组件主要的功能是在不同的应用程序之间实现数据共享。ANDROID系统应用程序拥有各自独立的存储空间,这样如果一个程序要访问其他程序的数据或者向外部程序提供数据,则需要CONTENTPROVIDER组件来完成。在ANDROID平台中,应用程序数据可以被存储为SQLITE数据库文件、ANDROID系统文件或者其他合法的文件类型。CONTENTPROVIDER为应用程序提供了一组标准的访问方式,用于在程序需要时能够访问这些数据,实现数据共享。214ANDROID软件开发的优点及缺点AANDROID应用开发的优势ANDROID平台的开放性开放性对其迅速的风靡全球有不可磨灭的功劳。谷歌公司把ANDROID系统开放给广大软、硬件厂商、软件研发人员以及普通用户,为ANDROID平台积累了众多的人气和关注度。大家可以通过GOOGLE的GOOGLEPLAY平台下载应用软件并且上传自己设计开发的程序,这样的开放方式促进ANDROID平台不断的发展和完善,也有利于促进软件行业的竞争,同时为大家提供了非常丰富的软件资源。良好的兼容性ANDROID平台的兼容性,使ANDROID手机上的各种应用开发百花齐放,各种各样创新的设计以及产品应运而生,虽然这些基于ANDROID平台上开发的应用程序功能特色各异、用途各不相同,在不同手机厂商的硬件版本中,却实现数据同步,软、硬件高度兼容的情况,这些是得力于手机联盟OHA对ANDROID平台的大力支持。高度融合GOOGLE服务ANDROID系统另一个特点就是整合了GOOGLE服务的特色功能,如GOOGLEMAP、EMAIL、搜索功能等,这些极大的方便广大开发者以及手机用户。BANDROID应用开发存在的不足ANDROID版本更新过于频繁。自从2007年ANDROID10版本正式面世以来,中间经历了许多的版本的更迭,虽然这样说明了ANDROID发展的势头,但同时版本更新过于密集,也会让开发人员和用户感到不适,系统及软件的升级维护有一定的麻烦,无形中增加了一定的使用成本。由于ANDROID虚拟机DALVIKVM对硬件配置资源的要求比较高,相应的开发所需硬件配置成本比其他开发环境要求有所提高。为了平台的安全性考虑,GOOGLE公司在该平台使用开发时设置了较多的权限控制,导致了任务管理器、虚拟按键、屏幕截图、短信防火墙等类似功能的实现步骤相当繁琐,比较难为实现。215BASIC4ANDROID开发环境的搭建ANDROID平台LINUX核心库提供了JAVA语言核心库的大多数功能,并通过DALVIK虚拟机来执行ANDROID应用程序。因此,ANDROID平台下应用程序的开发除了用于JAVA语言开发的JDK,还须安装专门为ANDROID开发用的ANDROID标准开发包ANDROIDSDK,以及相关的开发编程工具BASIC4ANDROID,具体开发环境的搭建和配置流程这里不做详细的介绍。只对于环境搭建过程中的注意事项做一简单介绍。首先安装完成BASIC4ANDROID,初次运行会提示选择相应的LICENSE文件并且要求输入邮箱账号,从而激活完整版软件。第二步安装JAVAJDKV7,这里要注意的是不管是32位或者64位的操作系统,都必须安装WINDOWSX8632BIT,否则在下一步ANDROIDSDK的安装过程中将无法识别。第三步安装ANDROIDSDK和开发平台PLATFORM,ANDROIDSDK的安装路径必须不能包含空格键,比如PROGRAMFILES,完成安装之后打开路径下的SDKMANAGEREXE其显示如图22所示ANDROIDSDKMANAGER界面图22ANDROIDSDKMANAGER界面勾选并下载相应的平台版本,推荐安装API8及以上版本,由于该游戏硬件加速的开启,必须选择ANDROID40以上的版本,这里我们选择的是ANDROID41的开发平台。完成安装后进入BASIC4ANDROID点击选择TOOLSCONFIGUREPATHS配置相应的路径,如图23PATHSCONFIGURATION界面图23PATHSCONFIGURATION界面到此为止,所需软件安装、开发环境平台搭建完成。216运用BASIC4ANDROID软件的优势BASIC4ANDROID是简单而强有力的工具;IDE和程序语言100专注于ANDROID开发;编译为原生BYTECODE,不需要运行库生成的APK文件与JAVA/ECLIPSE生成的文件完全一样;与JAVA写的应用性能相同;使用与VISUALBASIC类似的事件驱动开发语言,支持对象和代码模块;不需要写任何XML文件;通过支持定制JAVA库提高扩展性;大量的、活跃的、有好的社区开发者,超过20,000注册开发者;ANDROID史上唯一的真正WYSIWYG可视化编辑器。可视化编辑器能够支持多屏幕和各种分辨率。支持ANDROID16到40版本的所有的电话和平板终端;支持自动完成、内置文档和内部索引的现代IDE和其他高级功能;集成了强大的单步调试器;具有可定制在线和离线查询功能的海量文档;使用可视化设计器和抽象设计器支持所有的屏幕大小和分辨率;增强的数据库和WEB服务的支持,一步一步指导如何连接到远程的MYSQLANDMICROSOFTSQLSERVER数据库等等一系列所独有的特征。22传感器概念与分类221传感器的概念传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件如光、热、湿度或化学组成如烟雾,并将探知的信息传递给其他装置或器官。国家标准GB/T7665200对传感器的定义是“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。传感器是一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求,它是实现自动检测和自动控制的首要环节。222传感器的分类传感器技术己经广泛应用于人们的生活、工作、学习方方面面之中,它们的种类丰富,特点各异,因此把它们分类的方法也有很多方式。最直接和最广泛的分类方式是把它们分为物理传感器、化学传感器和生物传感器三种类型。另外,按照传感器的不同用途和性质也可以分成种类多的传感器,如温度传感器、光传感器、压力传感器、速度传感器、磁敏传感器、湿敏传感器、震动传感器、能耗传感器以及本文中将会重点介绍的姿态传感器等等。按这些种类繁多的传感器技术为人们的生活、工作、学习、科研提供了非常多的便利,被广泛应用于军事、航天航空、医用、汽车、家电等各个顶端和基础行业领域。23传感器在智能手机中的应用随着智能操作系统手机以及移动互联网迅速发展,手机的功能己远远超出其最初的打电话、发短信的功能。智能手机在人们的日常生活工作中扮演着越来越重要的角色,消费者在手机功能上的要求也越来越苛刻,一部智能化、人性化的智能手机更能为人们所接受和喜爱。目前,智能手机的功能可谓是多种多样,基本上满足了不同人群的各种需求。手机传感器应用技术也正是在这样的背景下得以迅速的发展。目前应用于智能手机上的传感器技术是非常多的如光传感器LIGHTSENSOR主要用于手机屏幕亮度的智能调节。手机的光传感器技术可根据周围环境光线的情况,智能的调节手机屏幕的亮度,如果手机用户处于黑暗的环境中时,传感器便会智能降低手机屏幕的亮度,起到保护用户眼睛和节能的作用。相反,当手机处于较强烈的光线之下时,传感器则会自动增加手机屏幕的亮度,以达到较好的显示效果。而距离传感器PROXIMITYSENSOR可以在用户接电话时智能熄灭屏幕,则可以防止用户在听电话时手机屏幕接触到用户脸部将电话意外挂断或者消耗过多的电能。重力传感器GRAVITYSENSOR在智能手机上的应用则更为广泛常见,比如很有意思的是来电时翻转手机静音。姿态传感器ORIENTATIONSENSOR主要是用于检测手机方向的变化,而做出相关的应用,最典型的应用就是游戏的使用,比如本论文的传感器小游戏就是该传感器的使用例子。应用的比较好,而且非常人性化的就是当下非常流行的美国苹果公司APPLE公司的语音软件SIRI,她能够利用陀螺仪和距离传感器检测手机轨迹状态,在手机从静止平台状态下到拿起放到耳朵旁边的过程中,触发并打开语音助手实现手机直接拨打电话等等功能。24ANDROID平台传感器的种类GOOGLE的ANDROID平台为我们提供大量传感器硬件接口。从ANDROIDL5版本开始,ANDROID系统内置了对多达八种传感器的支持,它们分别是加速度传感器ACCELEROMETERSENSOR、陀螺仪GYROSCOPESENSOR、环境光照传感器LIGHTSENSOR、磁力传感器MAGNETICFIELDSENSOR、方向传感器ORIENTATIONSENSOR、压力传感器PRESSURESENSOR、距离传感器PROXIMITYSENSOR、温度传感器TEMPERATURESENSOR和本论文重点应用的姿态传感器ORIENTATIONSENSOR。正是因为有了这些成熟的传感器技术的支撑,我们可以在ANDROID平台上设计开发出各种人性化、高实用性的手机应用程序。在表24写出来在ANDROID平台下各种传感器的返回值情况。传感器类型返回值数量返回值备注ORIENTATION3VALUE0PITCHVALUE1ROLLVALUE2YAW方向传感器,返回三个坐标轴的角度,以度为单位PRESURE1VALUE0PRESSURE压力传感器,单位为KP千帕斯卡LIGHT1VALUE0ILLUMINATION计算周围环境光的强度,以LUX为单位GYROSCOPE3VALUE0PITCHVALUE1ROLLVALUE2YAW计算三个坐标轴的方向的角度,单位为度。MAGNETICFIELD3VALUE0LATERALVALUE1LONGITUDINALVALUE2VERTICAL计算坐标轴三个方向磁感应情况,以微特拉斯UT为单位ACCELEROMETER3VALUE0LATERALVALUE1LONGITUDINALVALUE2VERTICAL加速度传感器,返回值单位为M/S2PRPXIMITY1VALUE0DISTANCE距离传感器,返回值以米为单位TEMPERATURE1VALUE0TEMPERATURE温度传感器,返回值单位为摄氏度。表24ANDROID平台下各种传感器的返回值在这里简单介绍了ANDROID平台所支持的部分传感器的参数,在下边的论文中会再详细介绍跟应用程序相关的姿态传感器的主要特征以及调用的具体操作实现。241加速传感器重力传感器ACCELEROMETER主要感应手机的运动状态,在注册了传感器监听器后,加速度传感器主要捕获三个参数VALUE0、VALUE1、VALUE2单位是M/S2VALUE0空间坐标系中X轴方向上的加速度减去重力加速度在X轴上的分量VALUE1空间坐标系中Y轴方向上的加速度减去重力加速度在Y轴上的分量VALUE2空间坐标系中Z轴方向上的加速度减去重力加速度在Z轴上的分量以下是加速度取值的一个典型的例子当手机平放到桌面上静止时,加速度为重力加速度G,通过0减去G重力加速度G方向为Z轴反向,故为负值得到VALUES2为G。如果把手机水平向右推,此时手机X方向上的加速度为正,即VALUE0为正。如果把手机以AM/S2的加速度竖直向上举时,VALUES2的返回值为(AG)M/S2,通过加速度A减去负的重力加速度G得到。242姿态传感器ORIENTATION姿态传感器主要是感应手机方向的变化,也是本论文所讨论小游戏项目中的主要核心功能部分。其每次读取的都是静态的状态值,在注册传感器监听器之后方向传感器同样是捕获三个参数VALUES0,VALUES1,VALUES2,分别代表手机沿YAW轴、PITCH轴以及RO11轴转过的角度。姿态传感器是使用最多的传感器之一,该传感器主要感应手机方位的变化,捕获的同样是三个数,分别代表手机沿YAW轴、PITCH轴和ROLL轴转过的角度。YAW轴、PITCH轴和ROLL轴与平时我们理解的空间坐标系有所不同,在特定的状态下其有别于传统的三维空间坐标系。下面分别对这三个轴所表示的含义进行详细介绍YAW轴,该轴是三个轴中最简单的一个,其表示的方向是不变的,一直是重力加速度G的反方向,即一直是竖直向上的,与手机的姿态无关。PITCH轴,该轴的方向并不是固定不变的,而是会随着手机沿YAW轴旋转而改变,唯一不变的关系是该轴永远与YAW轴成90度角。实际上YAW轴与PITCH轴相当于衔接一起的一个90度固定的支架,无论手机怎么旋转,其与YAW轴的角度都为90度。ROLL轴,该轴的方向是沿着手机屏幕向上的轴,无论手机是何种姿态,ROLL轴都是沿着手机的屏幕向上指示的,其方向是与手机绑定的。该三维状态的图示效果如图24所示ROLLYAWPITCHO图24姿态传感器ORIENTATION25传感器的使用方法相对于传统的ANDROID软件开发工具,BASIC4ANDROID提供了与VISUALBASIC类似的事件驱动开发语言,支持对象和代码模块。下边简单介绍几个常用的传感器使用方法。251加速度传感器的调用PHONEACCELEROMETER调用内部的加速度传感器具有一定的语法要求,并且这个变量必须被定义成为一个全局的变量。事件声明ACCELEROMETERCHANGEDXASFLOAT,YASFLOAT,ZASFLOAT开始监听STARTLISTENINGEVENTNAMEASSTRING停止监听STOPLISTENING具体的成员描述方法STARTLISTENINGEVENTNAMEASSTRING开始监听加速度传感器的变化事件。STOPLISTENING停止监听加速度传感器的变化事件。252方向传感器的调用PHONEORIENTATION类似于上一个加速度传感器的调用类似,调用内部的方向感传感器也是具有一定的语法要求,并且这个变量必须被定义成为一个全局的变量,才能在程序之中正常调用。事件声明ORIENTATIONCHANGEDAZIMUTHASFLOAT,PITCHASFLOAT,ROLLASFLOAT开始监听STARTLISTENINGEVENTNAMEASSTRING停止监听STOPLISTENING具体的成员描述方法STARTLISTENINGEVENTNAMEASSTRING开始监听方向传感器的变化事件STOPLISTENING停止监听方向传感器的变化事件以上的是两个比较常用的传感器的函数调用以及成员声明的方法,在其他的传感器调用过程中也会用到相同的语法来定义与调用,在这里就不再赘述。26B4ABRIDGE软件的使用在利用BASIC4ANDROID编程软件进行传感器的游戏开发编程调试时,由于要获取传感器实时的数据值,所以如果创建传统的ANDROIDVIRTUALDEVICE无法满足实时调试应用程序的需求,在这里就要通过安装B4ABRIDGE辅助软件,通过访问无线局域网或者通过蓝牙连接运行ANDROID智能操作系统的手机进行实时的调试。这样连接之后只要实时的该变手机的姿态值,通过相应的传输介质就能将该参数传递过去。B4ABRIDGE软件界面如下图25所示图25B4ABRIDGE软件界面该软件有无线局域网WIFI、蓝牙BLUETOOTH两种途径可以将ANDROID操作系统的手机与BASIC4ANDROID开发环境连接,从而实现传感器参数的实时传递来实现程序的调试。在软件界面点击相应的连接方式按钮后,手机会开启无线或者蓝牙功能发送相应的数据以备BASIC4ANDROID开发环境连接。然后,在BASIC4ANDROID开发软件的工具栏选择TOLLSB4ABRIDGECONNECTBLUETOOTH/CONNECTWIRELESS如下图26所示点击选择相应的连接方式,输入手机B4ABRIDGE软件界面相应参数即可成功连接。图26B4ABRIDGE连接方式选择在成功连接以后,在编译环境中编写程序源代码完成后,按F5运行该程序,即可在手机上显示安装将要调试的软件程序,只需点击安装按钮即可。在需要调试传感器的某个特性时,我们只要实时的操作手机就可以达到传感器参数的实时传递。27小结本章主要介绍了ANDROID平台的系统框架结构、程序应用框架的基础知识和传感器技术的相关知识以及其在智能手机操作系统上的基本运用情况。其次,本章也介绍了ANDROID系统中较为常用的几种传感器的类型和使用方式,特别对姿态传感器ORIENTATIONSENSOR以及加速度传感器ACCELEROMETERSENSOR进行了详细的介绍,这个传感器也将会是本文之后讲述的程序中的核心模块,在以后的使用过程也还会进一步重点阐述。最后,由于传感器参数必须在调试过程中实时的传递,本章还介绍了一种用于开发过程中实时连接手机获取传感器参数的测试辅助软件B4ABRIDGE的功能以及具体的使用方法,它是作为整个程序开发过程中不可或缺的一个及其重要的调试和测试工具。3游戏程序设计架构详解软件规划设计在整个程序设计当中扮演着及其重要的角色,它贯穿在整个软件开发的至始至终。好的软件设计方案可以为软件开发的过程减少很多的不便与难度,本章将对于游戏开发过程做详细的设计规划,介绍该游戏软件开发的背景、功能以及软件设计的详细架构,并且对于在开发过程中可能要到的技术难点问题进行讨论与分析。31程序开发背景与功能简介311程序开发背景简介该应用软件是一款利用手机姿态实时传输控制游戏主角的小游戏,虽然该游戏的设计和玩法难度不是很大,但是却利用现在流行的传感器技术实现,由于使用物理传感器摒弃了传统的物理键盘来控制游戏角色,通过手机姿态的变化控制游戏主角,大大的增加了游戏的可玩性与趣味性,成为了迎合大众品位的一款热门小游戏。312游戏功能简介本游戏是在游戏主体跳跃的过程中不断变化手机姿态,让它触及到更高的平台上,一步步弹到更高的水平处,从而得到更高的分数。在改变手机姿态弹跳的过程中会遇到多种不同的平台,白色静止的平台、白色移动的平台、蓝色静止的平台、白色移动的平台,特别是蓝色的平台,如果反复在一个平台上弹跳,平台会每弹一下变短一点,直到最后全部消失游戏主角无法继续上升为止,游戏结束。游戏的玩法非常简单,进入游戏有会有如图31所示的界面图31游戏界面在游戏过程中圆形的游戏主角会不断的在平台上弹起,游戏操作着者只需要改变手机的左右姿态来控制让主角落在相应的平台上从而到达更高的高度。32游戏开发平台及工作准备321游戏开发平台1、游戏开发平台操作系统WINDOWS7。2、游戏开发工具及语言BASIC4ANDROIDJAVAJDKV7ANDROIDSDK及相应支持版本的平台。3、运行及调试环境B4ABRIDGETOOLANDROID操作系统手机。4、安卓系统版本ANDROID40及以上。322游戏相关素材在游戏程序开始设计之初,首先必须根据需求准备游戏当中需要用到的相应的图片以及声音素材,并且保存在相应的文件夹当中,以备在游戏开发过程中调用。本游戏开发过程当中用到的所有素材均来自互联网收集。33游戏整体详细框架331游戏的功能模块详解首先要说明的是,由于为了达到流畅的游戏体验,在游戏开发过程中开启硬件加速功能。ANDROID从30(APILEVEL11)开始,在绘制VIEW的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。相应可以使用的手机系统版本就必须是40及其以上的版本,这里使用的是ANDROID41的操作系统。A开启或关闭硬件加速由于硬件加速自身并非完美无缺,所以ANDROID提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速APPLICATION级别ACTIVITY级别WINDOW级别GETWINDOWSETFLAGSWINDOWMANAGERLAYOUTPARAMSFLAG_HARDWARE_ACCELERATED,WINDOWMANAGERLAYOUTPARAMSFLAG_HARDWARE_ACCELERATED注意目前为止,ANDROID还不支持在WINDOW级别关闭硬件加速。VIEW级别MYVIEWSETLAYERTYPEVIEWLAYER_TYPE_HARDWARE,NULL注意目前为止,ANDROID还不支持在VIEW级别开启硬件加速。在本游戏开发中应用的是第一种在APPLICATION级别开启硬件加速的方法,具体的操作代码如下APPLICATIONANDROIDHARDWAREACCELERATED“TRUE“B检测当前是否启用了硬件加速1方法一此方法返回TRUE,如果MYVIEW放在一个开启了硬件加速的WINDOW的下边,即就是它在绘制的时候不一定使用了硬件加速GETDRAWINGCACHEMYVIEWISHARDWAREACCELERATED2方法二返回TRUE,如果CANVAS在绘制的时候启用了硬件加速,尽量采用这种方法来判断是否开启了硬件加速CANVASISHARDWAREACCELERATEDC理解VIEW的绘制模型1没有硬件加速INVALIDATETHEVIEWHIERARCHYDRAWTHEVIEWHIERARCHY2有硬件加速INVALIDATETHEVIEWHIE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科学城项目经济效益分析
- 楼道维修合同范本
- 砭石疗法与传统中医理论的关系及发展
- MEAI-hydrochloride-生命科学试剂-MCE
- 财务报销合同范本
- 口罩代工合同范本
- 2-5-Dihydroxybenzoic-acid-sodium-Gentisic-acid-sodium-生命科学试剂-MCE
- 环保产业的人才培养与教育策略
- 科技创新与知识产权法的同步发展
- 科技教育下的电子商务培训新模式
- 形位公差测量方法
- 车辙防治指导意见(确定稿)
- 标准击实试验自动计算记录表
- 一个近乎完美的微信引流招生方案
- 门诊特殊病种审批表
- 旅行社安全检查记录表
- T_CEC 102.1-2016 电动汽车充换电服务信息交换 第1部分_总则_(高清-最新版)
- 国际形式发票模板
- 山西省会计师事务所服务收费标准(汇编)
- 陕西延长石油(集团)有限责任公司企业年金方案
- 常用伪装方法组训方案
评论
0/150
提交评论