基于Android的传感器技术应用开发毕业设计

上传人:无*** 文档编号:45950837 上传时间:2021-12-09 格式:DOC 页数:40 大小:502.50KB
返回 下载 相关 举报
基于Android的传感器技术应用开发毕业设计_第1页
第1页 / 共40页
基于Android的传感器技术应用开发毕业设计_第2页
第2页 / 共40页
基于Android的传感器技术应用开发毕业设计_第3页
第3页 / 共40页
点击查看更多>>
资源描述
基于基于 Android 的传感器技术应用开发的传感器技术应用开发目录目录摘摘要要 -IABSTRACT-II引言引言-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运用Basic4android软件的优势-102.2传感器概念与分类 -112.2.1传感器的概念-112.2.2传感器的分类-112. 3传感器在智能手机中的应用-112. 4Android 平台传感器的种类-122.4.1加速传感器(重力传感器)Accelerometer -132.4.2姿态传感器Orientation -142. 5传感器的使用方法-152.5.1加速度传感器的调用(PhoneAccelerometer)-152.5.2方向传感器的调用(PhoneOrientation) -152.6B4A-Bridge 软件的使用-162.7小结 -173游戏程序设计架构详解游戏程序设计架构详解-183.1程序开发背景与功能简介 -183.1.1程序开发背景简介-183.1.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.1GameView-294.3.2Phone -304.3.3Audio-324.4游戏测试 -334.4.1游戏测试环境-334.4.2游戏测试结果-334.5本章总结 -335总结与展望总结与展望 -345.1论文总结 -345. 2未来展望-34致谢致谢-35参考文献参考文献 -36摘要摘要随着科学技术的发展,人们的沟通方式发生了翻天覆地的变化,对手机的需求也不在局限于传统的语音、短信功能,而是要求成为具有越来越完备和强大的应用数据处理能力,如移动办公、网上购物、互联网游戏、地图导航、随身数字影院、在线音乐等等兼备的智能的手持终端。在现实生活中,智能手机硬件以及软件开发商也正是朝着这个目标进行技术和产品的创新。因此也就出现了几大阵营的智能手机操作系统,目前使用最为广泛的是 Apple 公司的 IOS,Microsoft 的 Windows Phone,以及现在正在迅速崛起的 Google 公司推出的基于 Linux 内核的开源智能手机操作系统Android。根据 Google 公司的统计数据,Android 设备每日实际激活量约达 65 万台,该系统正在如火如荼的壮大。基于 Android 系统的各种手机硬件及软件研发已然成为一种趋势。作为近些年智能手机操作系统中的佼佼者之一,Google 公司发布的Android 系统正在趋于成熟,并凭借其自身强大的开源优势成为厂商在手机硬件和应用研发中的首选。Android 系统平台有功能强大的传感器接口,这些接口为开发各类手机传感器应用(APPS)提供了便利的途径。本文通过介绍基于 Android 系统平台的传感器应用游戏的设计与开发过程,阐述当前流行传感器应用程序在 Android 智能手机操作系统中的实现过程及涉及的技术要点。利用姿态传感器设计一款游戏应用程序,从而全面的学习并实践传感器在游戏开发过程中的使用。该程序中主要运用到的技术有传感器应用技术、游戏应用程序界面设计。关键词:智能手机;Android;传感器;游戏开发ABSTRACTWith the development of science and technology, the way people communicate has undergone enormous changes. 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 phones 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 is 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 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 applications develop.Keywords:Smart phones;sensor;games;Android引言引言正是科学技术的发展带来了各种各样便捷的生活方式,同时人们对于生活质量的要求也越来越高,特别是对于移动互联网时代的终端要求伴随技术水平的提高而水涨船高。传统的软、硬件模式已经被人们所摒弃,新的创新型产品越来越深入到生活的方方面面。手机现在成为了每一个人出门必备的随身物品,所以人们对其的要求也越来越高。Google 公司的 Android 操作系统就是一个非常开放与优秀的智能手机操作平台,其强大应用接口可以为程序的开发提供非常便利的条件。本次的毕业设计基于 Android 的传感器技术应用开发就是以 Basic4android搭建开发环境,利用 Android 平台提供的硬件实现传感器游戏的开发,从而对于传感器进行深入的研究与学习。本文分为 5 个章节详细的介绍了从开始想法的萌生到开发完成的所有步骤。第1 章是绪论,主要介绍研究背景、意义等基本情况;第 2 章对应用程序项目涉及的具体相关技术进行介绍;第 3 章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块;第 4 章是程序的详细开发设计过程研究、源程序代码开发以及测试。在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等进行详细的分析与介绍,其中包括程序中的姿态传感器模块算法开发、应用程序测试等等;第 5 章是总结与展望,将会对论文研究的结果进行总结并且对未来该方向的发展趋势加以展望。1绪论绪论在移动互联网时代,一次次的科学技术的发展,必将带来前所未有的挑战与机遇,新的科学技术成果将为人类的文明史划下浓墨重彩的一笔。美国 Google 公司推出的 Android 系统就扮演着这样的角色,它已经改变了人们的传统的生活方式。本章将简要介绍该系统的演进史,再对研究的背景及意义简要的介绍,并对于论文的基本内容做了简要的安排。1.1研究背景与意义研究背景与意义随着科学技术水平的不断迭代更新,人们的工作、生活方式正在悄然发生变化。在移动互联网时代,高速的生活节奏、海量的数据信息每天伴随在我们的身边。尤其在智能手机终端出现以后,这一现象随处可见,地铁、公交、餐厅等等地方,人们越来越多的时间花在了移动手持终端之上,这使得传统的桌面式办公方式、消费模式、游戏娱乐体验发生了颠覆性的改变。现在的智能手机终端也越来越趋于智能化、人性化,功能越来越完善和强大。全球的各大厂商正在努力的进行技术研发与应用创新。在目前智能手机终端领域比较流行的操作系统主要有:微软(Microsoft)研发的 Windows Phone 智能手机操作系统、美国苹果(Apple)公司的 iPhone 智能手机操作系统、谷歌(Google)公司研发推出的基于 Linux 内核自由及开放源代码的智能手机操作系统Android。由于自由及开放源代码的优势使得 Android 智能手机操作系统在过去的时间里迅猛的发展起来,倍受全球手机硬件厂商和软件研发人员青睐。本文将论述的 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)、姜饼 Gingerbread (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 智能手机操作系统以及其产业链的蓬勃发展,手机硬件厂商、软件研发机构和个人大量的投入到这个产业当中。基于 Android 的手机硬件产品层出不穷,各个厂商打造属于自己的基于 Android 的智能手机操作系统,软件开发人员运用开放与自由的平台开发拥有个性化应用的软件程序,一股 Android 之风正在席卷全球。1.2国内外智能手机应用程序现状研究国内外智能手机应用程序现状研究由于 Android 系统本身所自带的强大的应用程序接口(API)功能,这就为人们开发各种类型的应用提供便利的技术应用基础。现在,市面上围绕 Android 的智能手机操作系统己经开发出五花八门的应用程序,如移动办公程序、互联网游戏程序等等。在传统 PC 桌面以及 Web 应用程序开发日趋成熟的状况下,基于智能手机的移动互联网应用程序开发是当前软件研发的又一个春天,智能手机操作系统的发展更为移动互联网时代的快速发展带来前所未有契机。在对手机的应用程序功能需求上,人们的要求也越来越有品位与个性化。传统的手机软件已经不再能够满足人们日益增长的互联网服务需求。相应产生的是能够满足更多需求的综合性智能手机应用程序,比如说百度地图(Baidu Map)能够在提供地图服务的基础上为人们提供便捷的本地生活服务提供周边餐饮美食、休闲娱乐、酒店购物等海量商户信息,包括商户电话、地址地图、客观点评等免费下载优惠券,还可享受最新鲜的团购折扣信息;智能出行规划拥有强大的路线查询及规划能力,支持公交、驾车、步行、 地铁四种出行方式,提供路线方案和打车费用; 随时随地查看实时路况,提前规划出行计划等等。当然越来越高的技术难点就会出现在研发人员的面前,比如 3D 效果显示技术,大数据的分析技术等等。本论文正是在这样的大背景之下,研究利用手机的传感器设计出来一个小型游戏软件,从而对于Android 程序的开发过程做一了解。1.3研究目的及项目背景介绍研究目的及项目背景介绍伴随着移动互联网技术的更迭和大数据时代的到来,相关的应用程序也在不断的演进,各种领域的学者都在关注着该领域的每一步发展。从谷歌公司(Google)开始发布基于 Linux 内核的自由开放源代码的 Android 智能手机操作系统以来,各大个人、高校以及研究机构纷纷投入与其相关领域进行研究。本文中将会介绍基于Android 操作系统的传感器应用程序开发游戏的全过程,通过开发中不断出现问题、解决问题的过程,从而对 Android 平台应用程序的开发有一个全面的了解,为以后的进一步拓展学习打下坚实的基础。更多的是学会去提出问题,解决问题的方法,继而从容面对以后工作中遇到的更多的难题。1.4论文的研究内容和结构安排论文的研究内容和结构安排1.4.1论文内容概述论文内容概述本论文主要对基于 Android 的传感器技术应用进行深入的研究,通过开发一款比较简单常见的传感器小型游戏的整体设计与实现过程,学习传感器技术在 Android智能手机操作系统中的综合应用。游戏程序主要是利用姿态传感器技术和主要的素材模块实现,通过调整手机姿态来实时控制游戏主角的弹跳轨迹,从而到达更高平台,获取更高的分数,游戏具有很高的操作性与可玩性。1.4.2论文内容结构安排论文内容结构安排本文分为 5 个章节,第 1 章是绪论,主要介绍论文研究背景、意义等情况;第2 章对应用程序项目涉及的具体相关技术进行介绍;第 3 章是系统详细分析设计,介绍项目程序的系统设计框架、程序功能以及程序各个模块;第 4 章是程序的详细开发设计过程研究、代码开发以及测试,在这一章中将会对游戏程序的详细开发流程、各个模块的具体实现过程、遇到的技术难点等知识点进行详细的分析与介绍,其中包括程序中的姿态传感器模块开发算法、应用程序测试等等;第 5 章是综述,将会对论文研究的结果进行总结并且对未来的发展趋势加以展望。1.5小结小结本章是论文的绪论部分,主要介绍了论文的研究意义、国内外研究现状,对论文的撰写架构做了简要的说明。最后对论文中涉及的项目程序的开发技术背景知识进行了介绍,这些在下一章当中进行详细的介绍与分析。2基于基于 Android 的传感器技术研究的传感器技术研究绪论对于文章的研究背景做了介绍,这一章将针对 Android 的平台和程序设计过程中用到的传感器知识进行深入的探讨,并将 Basic4android 相关的要点进行重点的阐述。2.1Android 简述简述2.1.1Android 平台简介平台简介Android 的本义是“机器人” ,是 Google 公司 2007 年 11 月 5 日正式面世,基于Linux 平台的开放源代码的操作系统,它很好的整合了操作系统、中间件、用户界面和应用软件,可以为移动终端打造开放完整的移动程序软件。Android 是一个崭新的手机操作系统平台,在以 Google 为首的 40 多家开放手机联盟(OHA)支持下,使用开放源码策略,平台全部以开源的项目来构建,是完全开放的智能终端操作系统平台。Android 系统的快速发展使得移动终端的发展趋向于多元化,其强大的网络功能及整合 Google 网络服务优势,使得 Android 在移动技术发展方面有着光明的前景趋势。目前 Android 已由刚开始的 Android 1.0 版本经过多个版本的演进与升级,发展到现在的 Android4.1、Android4.2 版本,不久的将来会发布的 Android4.5 版本,其平台应用方面更加趋于完备和成熟。2.1.2Android 开发框架开发框架和其他的智能手机操作系统一样,Android 操作系统也有自己的一套运行机制和开发框架,如图 1.1 所示:应用层程序应用程序架构应用库核心库Da1Vik虚拟机Linux 内核图 1-1Android 框架由于 Android 系统的体系架构采用类似于 OSI 的开放式系统互联参考模型的分层架构,分层的好处是下层可以为上层提供统一的服务,这样能够屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上一层;也就说高层各司其职,各层提供各自独有的服务。a.应用程序Android 应用程序属于整个框架的最顶层,也是开发人员进行设计开发应用以及终端用户体验使用直接接口。该层包含大量本身配置的一套应用程序子集,如短信收发、日历查询、Google Map、Web 浏览器、E-mail 客户端等等常用工具组件,以及基于 Android 平台的应用程序框架,该层是使用 Java 语言开发的。b.应用程序框架Android 应用程序框架主要包括系统中与用户进行交互的一些管理组件,如Activity、窗体、电话、包和视图管理等等,这些框架的使用可简化和充当应用程序的组件。在应用程序框架这一层,充分体现了各个组件的重用性能,也就是说任何的应用组件不但可以独立发布自己的应用,也可以发布其他具有组合功能的应用程序。因此,通过该应用程序框架,用户自定义的程序不但可以执行用户程序之外的预设功能,也可以执行其他附加的能使得软件的复用性更高。c.系统开发库Android 系统的库运行在 Linux 内核之上,应用程序框架层之下。该层由负责Android 运行时的核心库、Dalvik 虚拟机以及其他的一些常用的应用库组成。这些核心库主要是 C/C+函数库,而应用库则是一些常用的应用开发库,例如用于音频、视频播放的媒体库;用于管理界面显示效果的外观管理器;用于 2D 和 3D 图形显示的 SGL 和 OpenGL 的图形库;用于本地数据库支持的 SQLite;用于集成 Web 浏览器和 Internet 安全的 SSL 和 Webkit 等等。d. Linux 核心Android 的 Linux 核心层位于其框架的最底层,该层虽说是基于 Linux 核心,但是发展到现在已经和 Linux 有了很大差别。该层用来提供系统的底层服务,包括安全运行机制、内存、进程、电源项的管理,网络堆栈及所有驱动模块。另外,内核还在硬件和软件栈的部分提供了一个抽象层。Android 系统框架发展到现在的状况,底层 Linux 核心层已经和标准的 Linux 很大的区别,它的编程接口、系统库等和标准的 Linux 系统已经不同,它的文件系统并不是采用虚拟内存文件系统,而是采用开源的、可移植性较好的 YAFFS ( Yet Another Flash File System)文件系统。2.1.3Android 应用程序组件应用程序组件进行 Android 应用程序的开发,我们必不可少的就是要了解其平台的应用程序框架。Android 应用程序主要是由 Activity、Broadcast Receiver、Service 和 Content Provider 四大组件构成。在 Android 应用程序中,不一定要包括所有组件,开发人员可根据实际需求进行选择性的使用。但无论对哪个组件进行使用,都必须在AndroidManfest.xml 文件中进行注册以后才能使用。a.Activity 组件在 Android 中最常见、也是最重要的一个组件是 Activity。它主要是负责终端屏幕界面之间的跳转,为用户提供一个可视化界面,也就是说我们用户所看到的每一个显示界面就是一个 Activity 组件。在进行程序开发的过程中所涉及到的全部功能就是通过 Activity 组件之间的相互衔接、跳转,再运用其自带的强大控件功能和图层渲染等技术完成,从而最终形成优美的显示界面。任何一个 Activity 类的使用都是继承自基类,并在 AndroidManfest.xml 文件中进行注册。Activity 中包含有 3 个重要的生命周期状态:运行状态(Running State)暂停状态(Pause State)和停止状态(Stopped State)。对 Activity 组件的调用基本上都是对这三个生命周期的使用。当Activity 在不同状态进行切换时,就是通过重写相应的回调的方法来执行相应的动作,图 2-1 显示的是 Activity 生命周期的基本过程。图 2-1Activity 生命周期b.Broadcast Receiver 组件Broadcast Receiver 组件主要负责接收外部的广播消息并对消息做出适当反应。在使用 Android 系统的时候经常会遇到许多各种类型的广播,比如我们在玩游戏同时,手机显示有新的来电或者收到新的短信,由于优先级的不同,这时这个系统就必须对当前应用程序进行中断并响应新来电或短信,这些都需要系统响应。应用程OnRestart( ) OnCreate( ) OnStart( ) OnResume() Running State OnPauese( ) Paused State OnStop( ) Stopped State OnDestroy( ) Activity 创建获得焦点失去焦点失去焦点销毁退出序需要对某些广播事件进行响应,则需要注册对应的 Broadcast Receiver 对象。Broadcast Receiver 发布广播和接收广播是通过 Intent 对象来完成,Intent 可用于Activity 之间的切换。Broadcast Receiver 组件的生命周期较为简单,它只需onReceiver 一个回调方法,在应用程序接收到广播的时候调用即可。c.Service 组件Service 组件是与用户没有交互界面,运行于程序后台的长生命周期组件,它继承自 Service 类。Service 组件运行于程序的后台,因此任何不需要在前台显示的计算或数据处理,都可以通过启动 Service 组件来实现。因此,我们可以认为 Service是一个默默在后台支撑系统的各种程序,而自身却始终没有现身的幕后主角。一个Service 启动之后会一直在后台运行,直到自己的生命周期结束为止,即便在这期间启动它的 Activity 或是其他组件的生命周期己经结束。与此同时,Service 组件有两种启动的方式,分别为 startService 方式和 bindService 方式。这两种方式的区别是bindService 方式会将启动 Service 组件的组件,如 Activity,进行绑定,当启动Service 的组件消失时,它也会跟着一起停止运行。而 startService 方式则不同,它会一直在后台运行到生命周期结束为止。d.Content Provider 组件该组件主要的功能是在不同的应用程序之间实现数据共享。Android 系统应用程序拥有各自独立的存储空间,这样如果一个程序要访问其他程序的数据或者向外部程序提供数据,则需要 Content Provider 组件来完成。在 Android 平台中,应用程序数据可以被存储为 SQLite 数据库文件、Android 系统文件或者其他合法的文件类型。Content Provider 为应用程序提供了一组标准的访问方式,用于在程序需要时能够访问这些数据,实现数据共享。2.1.4Android 软件开发的优点及缺点软件开发的优点及缺点a.Android 应用开发的优势Android 平台的开放性:开放性对其迅速的风靡全球有不可磨灭的功劳。谷歌公司把 Android 系统开放给广大软、硬件厂商、软件研发人员以及普通用户,为Android 平台积累了众多的人气和关注度。大家可以通过 Google 的 Google Play 平台下载应用软件并且上传自己设计开发的程序,这样的开放方式促进 Android 平台不断的发展和完善,也有利于促进软件行业的竞争,同时为大家提供了非常丰富的软件资源。良好的兼容性:Android 平台的兼容性,使 Android 手机上的各种应用开发百花齐放,各种各样创新的设计以及产品应运而生,虽然这些基于 Android 平台上开发的应用程序功能特色各异、用途各不相同,在不同手机厂商的硬件版本中,却实现数据同步,软、硬件高度兼容的情况,这些是得力于手机联盟(OHA)对 Android 平台的大力支持。高度融合 Google 服务:Android 系统另一个特点就是整合了 Google 服务的特色功能,如 Google Map、E-mail、搜索功能等,这些极大的方便广大开发者以及手机用户。b.Android 应用开发存在的不足Android 版本更新过于频繁。自从 2007 年 Android1.0 版本正式面世以来,中间经历了许多的版本的更迭,虽然这样说明了 Android 发展的势头,但同时版本更新过于密集,也会让开发人员和用户感到不适,系统及软件的升级维护有一定的麻烦,无形中增加了一定的使用成本。由于 Android 虚拟机 Dalvik VM 对硬件配置资源的要求比较高,相应的开发所需硬件配置成本比其他开发环境要求有所提高。为了平台的安全性考虑,Google 公司在该平台使用开发时设置了较多的权限控制,导致了任务管理器、虚拟按键、屏幕截图、短信防火墙等类似功能的实现步骤相当繁琐,比较难为实现。2.1.5Basic4android 开发环境的搭建开发环境的搭建Android 平台 Linux 核心库提供了 Java 语言核心库的大多数功能,并通过Dalvik 虚拟机来执行 Android 应用程序。因此,Android 平台下应用程序的开发除了用于 Java 语言开发的 JDK,还须安装专门为 Android 开发用的 Android 标准开发包Android SDK,以及相关的开发编程工具 Basic4android,具体开发环境的搭建和配置流程这里不做详细的介绍。只对于环境搭建过程中的注意事项做一简单介绍。首先安装完成 Basic4android,初次运行会提示选择相应的 license 文件并且要求输入邮箱账号,从而激活完整版软件。第二步安装 Java JDK v7,这里要注意的是不管是 32位或者 64 位的操作系统,都必须安装 Windows x86 (32-bit),否则在下一步 Android SDK 的安装过程中将无法识别。第三步安装 Android SDK 和开发平台(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 Configuration 界面:图 2-3Paths Configuration 界面到此为止,所需软件安装、开发环境平台搭建完成。2.1.6运用运用 Basic4android 软件的优势软件的优势Basic4android 是简单而强有力的工具;IDE 和程序语言 100%专注于 Android 开发;编译为原生 bytecode,不需要运行库生成的 APK 文件与 Java / Eclipse 生成的文件完全一样;与 Java 写的应用性能相同;使用与 Visual Basic 类似的事件驱动开发语言,支持对象和代码模块;不需要写任何 XML 文件;通过支持定制 Java 库提高扩展性;大量的、活跃的、有好的社区开发者,超过 20,000 注册开发者;Android 史上唯一的真正 WYSIWYG 可视化编辑器。可视化编辑器能够支持多屏幕和各种分辨率。支持 Android 1.6 到 4.0 版本的所有的电话和平板终端;支持自动完成、内置文档和内部索引的现代 IDE 和其他高级功能;集成了强大的单步调试器;具有可定制在线和离线查询功能的海量文档;使用可视化设计器和抽象设计器支持所有的屏幕大小和分辨率;增强的数据库和 web 服务的支持,一步一步指导如何连接到远程的 MySQL and Microsoft SQL Server 数据库等等一系列所独有的特征。2.2传感器概念与分类传感器概念与分类2.2.1传感器的概念传感器的概念传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。国家标准 GB/T 7665-200 对传感器的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成” 。传感器是一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求,它是实现自动检测和自动控制的首要环节。2.2.2传感器的分类传感器的分类传感器技术己经广泛应用于人们的生活、工作、学习方方面面之中,它们的种类丰富,特点各异,因此把它们分类的方法也有很多方式。最直接和最广泛的分类方式是把它们分为物理传感器、化学传感器和生物传感器三种类型。另外,按照传感器的不同用途和性质也可以分成种类多的传感器,如温度传感器、光传感器、压力传感器、速度传感器、磁敏传感器、湿敏传感器、震动传感器、能耗传感器以及本文中将会重点介绍的姿态传感器等等。按这些种类繁多的传感器技术为人们的生活、工作、学习、科研提供了非常多的便利,被广泛应用于军事、航天航空、医用、汽车、家电等各个顶端和基础行业领域。2. 3传感器在智能手机中的应用传感器在智能手机中的应用随着智能操作系统手机以及移动互联网迅速发展,手机的功能己远远超出其最初的打电话、发短信的功能。智能手机在人们的日常生活工作中扮演着越来越重要的角色,消费者在手机功能上的要求也越来越苛刻,一部智能化、人性化的智能手机更能为人们所接受和喜爱。目前,智能手机的功能可谓是多种多样,基本上满足了不同人群的各种需求。手机传感器应用技术也正是在这样的背景下得以迅速的发展。目前应用于智能手机上的传感器技术是非常多的:如光传感器(Light Sensor)主要用于手机屏幕亮度的智能调节。手机的光传感器技术可根据周围环境光线的情况,智能的调节手机屏幕的亮度,如果手机用户处于黑暗的环境中时,传感器便会智能降低手机屏幕的亮度,起到保护用户眼睛和节能的作用。相反,当手机处于较强烈的光线之下时,传感器则会自动增加手机屏幕的亮度,以达到较好的显示效果。而距离传感器(Proximity Sensor)可以在用户接电话时智能熄灭屏幕,则可以防止用户在听电话时手机屏幕接触到用户脸部将电话意外挂断或者消耗过多的电能。重力传感器(Gravity Sensor)在智能手机上的应用则更为广泛常见,比如很有意思的是来电时翻转手机静音。姿态传感器(Orientation Sensor)主要是用于检测手机方向的变化,而做出相关的应用,最典型的应用就是游戏的使用,比如本论文的传感器小游戏就是该传感器的使用例子。应用的比较好,而且非常人性化的就是当下非常流行的美国苹果公司(Apple)公司的语音软件 Siri,她能够利用陀螺仪和距离传感器检测手机轨迹状态,在手机从静止平台状态下到拿起放到耳朵旁边的过程中,触发并打开语音助手实现手机直接拨打电话等等功能。2. 4Android 平台传感器的平台传感器的种类种类Google 的 Android 平台为我们提供大量传感器硬件接口。从 Android l . 5 版本开始,Android 系统内置了对多达八种传感器的支持,它们分别是:加速度传感器(Accelerometer Sensor)、陀螺仪(Gyroscope Sensor)、环境光照传感器(Light Sensor)、磁力传感器(Magnetic field Sensor)、方向传感器(Orientation Sensor)、压力传感器(Pressure Sensor)、距离传感器(Proximity Sensor)、温度传感器(Temperature Sensor)和本论文重点应用的姿态传感器(Orientation Sensor)。正是因为有了这些成熟的传感器技术的支撑,我们可以在 Android 平台上设计开发出各种人性化、高实用性的手机应用程序。在表 2-4 写出来在 Android 平台下各种传感器的返回值情况。传感器类型返回值数量返回值备注ORIENTATION3Value0:PitchValue1:RollValue2:Yaw方向传感器,返回三个坐标轴的角度,以度为单位PRESURE1Value0:Pressure压力传感器,单位为 KP 千帕斯卡LIGHT1Value 0 :Illumination计算周围环境光的强度,以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加速传感器加速传感器(重力传感器重力传感器)Accelerometer主要感应手机的运动状态,在注册了传感器监听器后,加速度传感器主要捕获三个参数 value0、value1、value2单位是 m/s2value0:空间坐标系中 x 轴方向上的加速度减去重力加速度在 x 轴上的分量value1:空间坐标系中 y 轴方向上的加速度减去重力加速度在 y 轴上的分量value2:空间坐标系中 z 轴方向上的加速度减去重力加速度在 z 轴上的分量以下是加速度取值的一个典型的例子:当手机平放到桌面上静止时, 加速度为重力加速度 g,通过 0 减去-g(重力加速度 g 方向为 z 轴反向,故为负值)得到 values2为 g。如果把手机水平向右推,此时手机 x 方向上的加速度为正,即 value0为正。如果把手机以 a m/s2的加速度竖直向上举时,values2的返回值为(a+g)m/s2,通过加速度 a 减去负的重力加速度-g 得到。2.4.2姿态传感器姿态传感器 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 轴都是沿着手机的屏幕向上指示的,其方向是与手机绑定的。该三维状态的图示效果如图 2-4 所示:R Ro ol ll lY Ya aw wP Pi it tc ch hO O图 2-4姿态传感器 Orientation2. 5传感器的使用方法传感器的使用方法相对于传统的 android 软件开发工具,Basic4android 提供了与 Visual Basic 类似的事件驱动开发语言,支持对象和代码模块。下边简单介绍几个常用的传感器使用方法。2.5.1加速度传感器的调用加速度传感器的调用(PhoneAccelerometer)调用内部的加速度传感器具有一定的语法要求,并且这个变量必须被定义成为一个全局的变量。事件声明:AccelerometerChanged (X As Float, Y As Float, Z As Float)开始监听:StartListening (EventName As String)停止监听:StopListening具体的成员描述方法:StartListening (EventName As String)开始监听加速度传感器的变化事件。StopListening停止监听加速度传感器的变化事件。2.5.2方向传感器的调用方向传感器的调用(PhoneOrientation)类似于上一个加速度传感器的调用类似,调用内部的方向感传感器也是具有一定的语法要求,并且这个变量必须被定义成为一个全局的变量,才能在程序之中正常调用。事件声明:OrientationChanged (Azimuth As Float, Pitch As Float, Roll As Float)开始监听:StartListening (EventName As String)停止监听:StopListening具体的成员描述方法:StartListening (EventName As String)开始监听方向传感器的变化事件StopListening停止监听方向传感器的变化事件以上的是两个比较常用的传感器的函数调用以及成员声明的方法,在其他的传感器调用过程中也会用到相同的语法来定义与调用,在这里就不再赘述。2.6B4A-Bridge 软件的使用软件的使用在利用 Basic4android 编程软件进行传感器的游戏开发编程调试时,由于要获取传感器实时的数据值,所以如果创建传统的 Android Virtual Device 无法满足实时调试应用程序的需求,在这里就要通过安装 B4A-Bridge 辅助软件,通过访问无线局域网或者通过蓝牙连接运行 Android 智能操作系统的手机进行实时的调试。这样连接之后只要实时的该变手机的姿态值,通过相应的传输介质就能将该参数传递过去。B4A-Bridge 软件界面如下图 2-5 所示:图 2-5B4A-Bridge 软件界面该软件有无线局域网(WIFI)、蓝牙(Bluetooth)两种途径可以将 Android 操作系统的手机与 Basic4android 开发环境连接,从而实现传感器参数的实时传递来实现程序的调试。在软件界面点击相应的连接方式按钮后,手机会开启无线或者蓝牙功能发送相应的数据以备 Basic4android 开发环境连接。然后,在 Basic4android 开发软件的工具栏选择 Tolls B4A Bridge Connect-Bluetooth/Connect-Wireless 如下图 2.6 所示点击选择相应的连接方式,输入手机 B4A-Bridge 软件界面相应参数即可成功连接。图 2.6B4A Bridge 连接方式选择在成功连接以后,在编译环境中编写程序源代码完成后,按 F5 运行该程序,即可在手机上显示安装将要调试的软件程序,只需点击安装按钮即可。在需要调试传感器的某个特性时,我们只要实时的操作手机就可以达到传感器参数的实时传递。2.7小结小结本章主要介绍了 Android 平台的系统框架结构、程序应用框架的基础知识和传感器技术的相关知识以及其在智能手机操作系统上的基本运用情况。其次,本章也介绍了 Android 系统中较为常用的几种传感器的类型和使用方式,特别对姿态传感器(Orientation Sensor)以及加速度传感器(Accelerometer Sensor)进行了详细的介绍,这个传感器也将会是本文之后讲述的程序中的核心模块,在以后的使用过程也还会进一步重点阐述。最后,由于传感器参数必须在调试过程中实时的传递,本章还介绍了一种用于开发过程中实时连接手机获取传感器参数的测试辅助软件 B4A-Bridge的功能以及具体的使用方法,它是作为整个程序开发过程中不可或缺的一个及其重要的调试和测试工具。3游戏程序设计架构详解游戏程序设计架构详解软件规划设计在整个程序设计当中扮演着及其重要的角色,它贯穿在整个软件开发的至始至终。好的软件设计方案可以为软件开发的过程减少很多的不便与难度,本章将对于游戏开发过程做详细的设计规划,介绍该游戏软件开发的背景、功能以及软件设计的详细架构,并且对于在开发过程中可能要到的技术难点问题进行讨论与分析。3.1程序开发背景与功能简介程序开发背景与功能简介3.1.1程序开发背景简介程序开发背景简介该应用软件是一款利用手机姿态实时传输控制游戏主角的小游戏,虽然该游戏的设计和玩法难度不是很大,但是却利用现在流行的传感器技术实现,由于使用物理传感器摒弃了传统的物理键盘来控制游戏角色,通过手机姿态的变化控制游戏主角,大大的增加了游戏的可玩性与趣味性,成为了迎合大众品位的一款热门小游戏。3.1.2游戏功能简介游戏功能简介本游戏是在游戏主体跳跃的过程中不断变化手机姿态,让它触及到更高的平台上,一步步弹到更高的水平处,从而得到更高的分数。在改变手机姿态弹跳的过程中会遇到多种不同的平台,白色静止的平台、白色移动的平台、蓝色静止的平台、白色移动的平台,特别是蓝色的平台,如果反复在一个平台上弹跳,平台会每弹一下变短一点,直到最后全部消失游戏主角无法继续上升为止,游戏结束。游戏的玩法非常简单,进入游戏有会有如图 3-1 所示的界面:图 3-1游戏界面在游戏过程中圆形的游戏主角会不断的在平台上弹起,游戏操作着者只需要改变手机的左右姿态来控制让主角落在相应的平台上从而到达更高的高度。3.2游戏开发平台及工作准备游戏开发平台及工作准备3.2.1游戏开发平台游戏开发平台1、游戏开发平台操作系统:Windows 7。2、游戏开发工具及语言: Basic4android+ Java JDK v7+ Android SDK 及相应支持版本的平台。3、运行及调试环境:B4A-Bridge tool+ Android 操作系统手机。4、安卓系统版本:Android 4.0 及以上。3.2.2游戏相关素材游戏相关素材在游戏程序开始设计之初,首先必须根据需求准备游戏当中需要用到的相应的图片以及声音素材,并且保存在相应的文件夹当中,以备在游戏开发过程中调用。本游戏开发过程当中用到的所有素材均来自互联网收集。3.3游戏整体详细框架游戏整体详细框架3.3.1游戏的功能模块详解游戏的功能模块详解首先要说明的是,由于为了达到流畅的游戏体验,在游戏开发过程中开启硬件加速功能。Android 从 3.0(API Level 11)开始,在绘制 View 的时候支持硬件加速,充分利用 GPU 的特性,使得绘制更加平滑,但是会多消耗一些内存。相应可以使用的手机系统版本就必须是 4.0 及其以上的版本,这里使用的是 Android 4.1 的操作系统。a.开启或关闭硬件加速:由于硬件加速自身并非完美无缺,所以 Android 提供选项来打开或者关闭硬件加速,默认是关闭。可以在 4 个级别上打开或者关闭硬件加速:Application 级别:Activity 级别:Window 级别:getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);注意:目前为止,Android 还不支持在 Window 级别关闭硬件加速。View 级别:myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);注意:目前为止,Android 还不支持在 View 级别开启硬件加速。在本游戏开发中应用的是第一种在 Application 级别开启硬件加速的方法,具体的操作代码如下:application android:hardwareAccelerated=trueb.检测当前是否启用了硬件加速:(1).方法一此方法返回 true,如果 myView 放在一个开启了硬件加速的 Window 的下边,即就是它在绘制的时候不一定使用了硬件加速 getDrawingCache myView.isHardwareAccelerated(); (2).方法二返回 true,如果 canvas 在绘制的时候启用了硬件加速,尽量采用这种方法来判断是否开启了硬件加速 canvas.isHardwareAccelerated();c.理解 View 的绘制模型:(1).没有硬件加速:invalidate the view hierarchy - draw the view hierarchy(2).有硬件加速:invalidate the view hierarchy - record and update the display list - draw the display listd.硬件加
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!