版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于基于 android 的传感器技术应用开发的传感器技术应用开发 目录目录 摘摘要要 -i abstract-ii 引言引言-1 1绪论绪论-2 1.1研究背景与意义-2 1.2国内外智能手机应用程序现状研究-3 1.3研究目的及项目背景介绍-3 1.4论文的研究内容和结构安排-3 1.4.1论文内容概述-3 1.4.2论文内容结构安排-4 1.5小结-4 2基于基于 android 的传感器技术研究的传感器技术研究 -5 2.1android 简述 -5 2.1.1android平台简介-5 2.1.2android开发框架-5 2.1.3android应用程序组件-6 2.1.4andr
2、oid软件开发的优点及缺点-8 2.1.5basic4android开发环境的搭建-9 2.1.6运用basic4android软件的优势-10 2.2传感器概念与分类 -11 2.2.1传感器的概念-11 2.2.2传感器的分类-11 2. 3传感器在智能手机中的应用-11 2. 4android 平台传感器的种类-12 2.4.1加速传感器(重力传感器)accelerometer -13 2.4.2姿态传感器orientation -14 2. 5传感器的使用方法-15 2.5.1加速度传感器的调用(phoneaccelerometer)-15 2.5.2方向传感器的调用(phoneori
3、entation) -15 2.6b4a-bridge 软件的使用-16 2.7小结 -17 3游戏程序设计架构详解游戏程序设计架构详解-18 3.1程序开发背景与功能简介 -18 3.1.1程序开发背景简介-18 3.1.2游戏功能简介-18 3.2游戏开发平台及工作准备 -19 3.2.1游戏开发平台-19 3.2.2游戏相关素材-19 3.3游戏整体详细框架 -19 3.3.1游戏的功能模块详解-19 3.3.2游戏具体包含实体模块-21 3.3.3mvc设计模式介绍-22 3.3.4游戏设计规划过程-23 3.3.5游戏各个模块设计详解-23 3.4游戏设计中的状态机 -25 3.5小
4、结 -25 4游戏源程序开发游戏源程序开发-26 4.1传感器游戏开发流程 -26 4.2游戏开发实现过程的主要技术实现 -26 4.2.1android静态图片的访问-26 4.2.2android动态图片的访问-27 4.2.3图像色彩显示-27 4.2.4碰撞检测实现-28 4.3核心库文件的详细解读 -29 4.3.1gameview-29 4.3.2phone -30 4.3.3audio-32 4.4游戏测试 -33 4.4.1游戏测试环境-33 4.4.2游戏测试结果-33 4.5本章总结 -33 5总结与展望总结与展望 -34 5.1论文总结 -34 5. 2未来展望-34 致
5、谢致谢-35 参考文献参考文献 -36 摘要摘要 随着科学技术的发展,人们的沟通方式发生了翻天覆地的变化,对手机的需求 也不在局限于传统的语音、短信功能,而是要求成为具有越来越完备和强大的应用 数据处理能力,如移动办公、网上购物、互联网游戏、地图导航、随身数字影院、 在线音乐等等兼备的智能的手持终端。在现实生活中,智能手机硬件以及软件开发 商也正是朝着这个目标进行技术和产品的创新。因此也就出现了几大阵营的智能手 机操作系统,目前使用最为广泛的是 apple 公司的 ios,microsoft 的 windows phone,以及现在正在迅速崛起的 google 公司推出的基于 linux 内核
6、的开源智能手 机操作系统android。 根据 google 公司的统计数据,android 设备每日实际激活量约达 65 万台,该系 统正在如火如荼的壮大。基于 android 系统的各种手机硬件及软件研发已然成为一 种趋势。作为近些年智能手机操作系统中的佼佼者之一,google 公司发布的 android 系统正在趋于成熟,并凭借其自身强大的开源优势成为厂商在手机硬件和应 用研发中的首选。android 系统平台有功能强大的传感器接口,这些接口为开发各类 手机传感器应用(apps)提供了便利的途径。 本文通过介绍基于 android 系统平台的传感器应用游戏的设计与开发过程,阐 述当前流行
7、传感器应用程序在 android 智能手机操作系统中的实现过程及涉及的技 术要点。利用姿态传感器设计一款游戏应用程序,从而全面的学习并实践传感器在 游戏开发过程中的使用。该程序中主要运用到的技术有传感器应用技术、游戏应用 程序界面设计。 关键词:智能手机;android;传感器;游戏开发 abstract with the development of science and technology, the way people communicate has undergone enormous changes. they are no longer just confined to the
8、 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 t
9、owards 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 operatin
10、g 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 type
11、s 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;gam
12、es;android 引言引言 正是科学技术的发展带来了各种各样便捷的生活方式,同时人们对于生活质量 的要求也越来越高,特别是对于移动互联网时代的终端要求伴随技术水平的提高而 水涨船高。传统的软、硬件模式已经被人们所摒弃,新的创新型产品越来越深入到 生活的方方面面。 手机现在成为了每一个人出门必备的随身物品,所以人们对其的要求也越来越 高。google 公司的 android 操作系统就是一个非常开放与优秀的智能手机操作平台, 其强大应用接口可以为程序的开发提供非常便利的条件。 本次的毕业设计基于 android 的传感器技术应用开发就是以 basic4android 搭建开发环境,利用 an
13、droid 平台提供的硬件实现传感器游戏的开发,从而对于传 感器进行深入的研究与学习。 本文分为 5 个章节详细的介绍了从开始想法的萌生到开发完成的所有步骤。第 1 章是绪论,主要介绍研究背景、意义等基本情况;第 2 章对应用程序项目涉及的 具体相关技术进行介绍;第 3 章是系统详细分析设计,介绍项目程序的系统设计框 架、程序功能以及程序各个模块;第 4 章是程序的详细开发设计过程研究、源程序代 码开发以及测试。在这一章中将会对游戏程序的详细开发流程、各个模块的具体实 现过程、遇到的技术难点等进行详细的分析与介绍,其中包括程序中的姿态传感器 模块算法开发、应用程序测试等等;第 5 章是总结与展
14、望,将会对论文研究的结果进 行总结并且对未来该方向的发展趋势加以展望。 1绪论绪论 在移动互联网时代,一次次的科学技术的发展,必将带来前所未有的挑战与机 遇,新的科学技术成果将为人类的文明史划下浓墨重彩的一笔。美国 google 公司推 出的 android 系统就扮演着这样的角色,它已经改变了人们的传统的生活方式。本 章将简要介绍该系统的演进史,再对研究的背景及意义简要的介绍,并对于论文的 基本内容做了简要的安排。 1.1研究背景与意义研究背景与意义 随着科学技术水平的不断迭代更新,人们的工作、生活方式正在悄然发生变化。 在移动互联网时代,高速的生活节奏、海量的数据信息每天伴随在我们的身边。
15、尤 其在智能手机终端出现以后,这一现象随处可见,地铁、公交、餐厅等等地方,人 们越来越多的时间花在了移动手持终端之上,这使得传统的桌面式办公方式、消费 模式、游戏娱乐体验发生了颠覆性的改变。现在的智能手机终端也越来越趋于智能 化、人性化,功能越来越完善和强大。全球的各大厂商正在努力的进行技术研发与 应用创新。在目前智能手机终端领域比较流行的操作系统主要有:微软(microsoft)研 发的 windows phone 智能手机操作系统、美国苹果(apple)公司的 iphone 智能手机操 作系统、谷歌(google)公司研发推出的基于 linux 内核自由及开放源代码的智能手机 操作系统an
16、droid。由于自由及开放源代码的优势使得 android 智能手机操作系 统在过去的时间里迅猛的发展起来,倍受全球手机硬件厂商和软件研发人员青睐。 本文将论述的 android 游戏开发就该种,基于 linux 内核自由及开放源代码的 以手持终端为载体的智能操作系统平台下的应用程序开发。自谷歌(google)公司 2007 年 11 月 5 日正式向外界展示了这款名为 android 的操作系统后,从最初的阿童 木(android beta)、发条机器人(android 1.0)到纸杯蛋糕 cupcake (android 1.5)、甜甜 圈 donut (android 1.6)、松饼 e
17、clair (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),经过各个版本的更迭改善使 得绝大部分组件功能都不需要经过授权而可以直接为开发人员所利用。软件研发者 开发的软件可以被上传到谷歌应用商店(goo
18、gle play)之上供人们下载使用,达到资 源共享的目的。正是这样的原因极大的促进了 android 智能手机操作系统以及其产 业链的蓬勃发展,手机硬件厂商、软件研发机构和个人大量的投入到这个产业当中。 基于 android 的手机硬件产品层出不穷,各个厂商打造属于自己的基于 android 的 智能手机操作系统,软件开发人员运用开放与自由的平台开发拥有个性化应用的软 件程序,一股 android 之风正在席卷全球。 1.2国内外智能手机应用程序现状研究国内外智能手机应用程序现状研究 由于 android 系统本身所自带的强大的应用程序接口(api)功能,这就为人们开 发各种类型的应用提供便
19、利的技术应用基础。现在,市面上围绕 android 的智能手 机操作系统己经开发出五花八门的应用程序,如移动办公程序、互联网游戏程序等 等。在传统 pc 桌面以及 web 应用程序开发日趋成熟的状况下,基于智能手机的移 动互联网应用程序开发是当前软件研发的又一个春天,智能手机操作系统的发展更 为移动互联网时代的快速发展带来前所未有契机。 在对手机的应用程序功能需求上,人们的要求也越来越有品位与个性化。传统 的手机软件已经不再能够满足人们日益增长的互联网服务需求。相应产生的是能够 满足更多需求的综合性智能手机应用程序,比如说百度地图(baidu map)能够在提供 地图服务的基础上为人们提供便捷
20、的本地生活服务提供周边餐饮美食、休闲娱乐、 酒店购物等海量商户信息,包括商户电话、地址地图、客观点评等免费下载优惠券, 还可享受最新鲜的团购折扣信息;智能出行规划拥有强大的路线查询及规划能力, 支持公交、驾车、步行、 地铁四种出行方式,提供路线方案和打车费用; 随时随 地查看实时路况,提前规划出行计划等等。当然越来越高的技术难点就会出现在研 发人员的面前,比如 3d 效果显示技术,大数据的分析技术等等。本论文正是在这 样的大背景之下,研究利用手机的传感器设计出来一个小型游戏软件,从而对于 android 程序的开发过程做一了解。 1.3研究目的及项目背景介绍研究目的及项目背景介绍 伴随着移动互
21、联网技术的更迭和大数据时代的到来,相关的应用程序也在不断 的演进,各种领域的学者都在关注着该领域的每一步发展。从谷歌公司(google)开始 发布基于 linux 内核的自由开放源代码的 android 智能手机操作系统以来,各大个 人、高校以及研究机构纷纷投入与其相关领域进行研究。本文中将会介绍基于 android 操作系统的传感器应用程序开发游戏的全过程,通过开发中不断出现问题、 解决问题的过程,从而对 android 平台应用程序的开发有一个全面的了解,为以后 的进一步拓展学习打下坚实的基础。更多的是学会去提出问题,解决问题的方法, 继而从容面对以后工作中遇到的更多的难题。 1.4论文的
22、研究内容和结构安排论文的研究内容和结构安排 1.4.1论文内容概述论文内容概述 本论文主要对基于 android 的传感器技术应用进行深入的研究,通过开发一款 比较简单常见的传感器小型游戏的整体设计与实现过程,学习传感器技术在 android 智能手机操作系统中的综合应用。游戏程序主要是利用姿态传感器技术和主要的素 材模块实现,通过调整手机姿态来实时控制游戏主角的弹跳轨迹,从而到达更高平 台,获取更高的分数,游戏具有很高的操作性与可玩性。 1.4.2论文内容结构安排论文内容结构安排 本文分为 5 个章节,第 1 章是绪论,主要介绍论文研究背景、意义等情况;第 2 章对应用程序项目涉及的具体相关
23、技术进行介绍;第 3 章是系统详细分析设计, 介绍项目程序的系统设计框架、程序功能以及程序各个模块;第 4 章是程序的详细 开发设计过程研究、代码开发以及测试,在这一章中将会对游戏程序的详细开发流 程、各个模块的具体实现过程、遇到的技术难点等知识点进行详细的分析与介绍, 其中包括程序中的姿态传感器模块开发算法、应用程序测试等等;第 5 章是综述,将 会对论文研究的结果进行总结并且对未来的发展趋势加以展望。 1.5小结小结 本章是论文的绪论部分,主要介绍了论文的研究意义、国内外研究现状,对论 文的撰写架构做了简要的说明。最后对论文中涉及的项目程序的开发技术背景知识 进行了介绍,这些在下一章当中进
24、行详细的介绍与分析。 2基于基于 android 的传感器技术研究的传感器技术研究 绪论对于文章的研究背景做了介绍,这一章将针对 android 的平台和程序设计 过程中用到的传感器知识进行深入的探讨,并将 basic4android 相关的要点进行重点 的阐述。 2.1android 简述简述 2.1.1android 平台简介平台简介 android 的本义是“机器人” ,是 google 公司 2007 年 11 月 5 日正式面世,基于 linux 平台的开放源代码的操作系统,它很好的整合了操作系统、中间件、用户界 面和应用软件,可以为移动终端打造开放完整的移动程序软件。 androi
25、d 是一个崭新的手机操作系统平台,在以 google 为首的 40 多家开放手机 联盟(oha)支持下,使用开放源码策略,平台全部以开源的项目来构建,是完全开 放的智能终端操作系统平台。android 系统的快速发展使得移动终端的发展趋向于多 元化,其强大的网络功能及整合 google 网络服务优势,使得 android 在移动技术发 展方面有着光明的前景趋势。目前 android 已由刚开始的 android 1.0 版本经过多个 版本的演进与升级,发展到现在的 android4.1、android4.2 版本,不久的将来会发 布的 android4.5 版本,其平台应用方面更加趋于完备和成
26、熟。 2.1.2android 开发框架开发框架 和其他的智能手机操作系统一样,android 操作系统也有自己的一套运行机制和 开发框架,如图 1.1 所示: 应用层程序 应用程序架构 应用库 核心库 da1vik 虚拟机 linux 内核 图 1-1android 框架 由于 android 系统的体系架构采用类似于 osi 的开放式系统互联参考模型的分 层架构,分层的好处是下层可以为上层提供统一的服务,这样能够屏蔽本层及以下 层的差异,当本层及以下层发生了变化不会影响到上一层;也就说高层各司其职, 各层提供各自独有的服务。 a.应用程序 android 应用程序属于整个框架的最顶层,也是
27、开发人员进行设计开发应用以及 终端用户体验使用直接接口。该层包含大量本身配置的一套应用程序子集,如短信 收发、日历查询、google map、web 浏览器、e-mail 客户端等等常用工具组件,以 及基于 android 平台的应用程序框架,该层是使用 java 语言开发的。 b.应用程序框架 android 应用程序框架主要包括系统中与用户进行交互的一些管理组件,如 activity、窗体、电话、包和视图管理等等,这些框架的使用可简化和充当应用程序 的组件。在应用程序框架这一层,充分体现了各个组件的重用性能,也就是说任何 的应用组件不但可以独立发布自己的应用,也可以发布其他具有组合功能的应
28、用程 序。因此,通过该应用程序框架,用户自定义的程序不但可以执行用户程序之外的 预设功能,也可以执行其他附加的能使得软件的复用性更高。 c.系统开发库 android 系统的库运行在 linux 内核之上,应用程序框架层之下。该层由负责 android 运行时的核心库、dalvik 虚拟机以及其他的一些常用的应用库组成。这些核 心库主要是 c/c+函数库,而应用库则是一些常用的应用开发库,例如用于音频、 视频播放的媒体库;用于管理界面显示效果的外观管理器;用于 2d 和 3d 图形显示 的 sgl 和 opengl 的图形库;用于本地数据库支持的 sqlite;用于集成 web 浏览 器和 i
29、nternet 安全的 ssl 和 webkit 等等。 d. linux 核心 android 的 linux 核心层位于其框架的最底层,该层虽说是基于 linux 核心,但 是发展到现在已经和 linux 有了很大差别。该层用来提供系统的底层服务,包括安 全运行机制、内存、进程、电源项的管理,网络堆栈及所有驱动模块。另外,内核 还在硬件和软件栈的部分提供了一个抽象层。android 系统框架发展到现在的状况, 底层 linux 核心层已经和标准的 linux 很大的区别,它的编程接口、系统库等和标 准的 linux 系统已经不同,它的文件系统并不是采用虚拟内存文件系统,而是采用 开源的、可
30、移植性较好的 yaffs ( yet another flash file system)文件系统。 2.1.3android 应用程序组件应用程序组件 进行 android 应用程序的开发,我们必不可少的就是要了解其平台的应用程序 框架。android 应用程序主要是由 activity、broadcast receiver、service 和 content provider 四大组件构成。在 android 应用程序中,不一定要包括所有组件,开发人员 可根据实际需求进行选择性的使用。但无论对哪个组件进行使用,都必须在 androidmanfest.xml 文件中进行注册以后才能使用。 a
31、.activity 组件 在 android 中最常见、也是最重要的一个组件是 activity。它主要是负责终端屏 幕界面之间的跳转,为用户提供一个可视化界面,也就是说我们用户所看到的每一 个显示界面就是一个 activity 组件。在进行程序开发的过程中所涉及到的全部功能 就是通过 activity 组件之间的相互衔接、跳转,再运用其自带的强大控件功能和图 层渲染等技术完成,从而最终形成优美的显示界面。任何一个 activity 类的使用都 是继承自基类,并在 androidmanfest.xml 文件中进行注册。activity 中包含有 3 个重 要的生命周期状态:运行状态(runni
32、ng state)暂停状态(pause state)和停止状态 (stopped state)。对 activity 组件的调用基本上都是对这三个生命周期的使用。当 activity 在不同状态进行切换时,就是通过重写相应的回调的方法来执行相应的动作, 图 2-1 显示的是 activity 生命周期的基本过程。 图 2-1activity 生命周期 b.broadcast receiver 组件 broadcast receiver 组件主要负责接收外部的广播消息并对消息做出适当反应。 在使用 android 系统的时候经常会遇到许多各种类型的广播,比如我们在玩游戏同 时,手机显示有新的来电
33、或者收到新的短信,由于优先级的不同,这时这个系统就 必须对当前应用程序进行中断并响应新来电或短信,这些都需要系统响应。应用程 onrestart( ) oncreate( ) onstart( ) onresume() running stat e onpauese( ) paused state onstop( ) stopped stat e ondestroy( ) activity 创建 获得焦点 失去焦点 失去焦点 销毁退出 序需要对某些广播事件进行响应,则需要注册对应的 broadcast receiver 对象。 broadcast receiver 发布广播和接收广播是通过 i
34、ntent 对象来完成,intent 可用于 activity 之间的切换。broadcast receiver 组件的生命周期较为简单,它只需 onreceiver 一个回调方法,在应用程序接收到广播的时候调用即可。 c.service 组件 service 组件是与用户没有交互界面,运行于程序后台的长生命周期组件,它继 承自 service 类。service 组件运行于程序的后台,因此任何不需要在前台显示的计 算或数据处理,都可以通过启动 service 组件来实现。因此,我们可以认为 service 是一个默默在后台支撑系统的各种程序,而自身却始终没有现身的幕后主角。一个 servic
35、e 启动之后会一直在后台运行,直到自己的生命周期结束为止,即便在这期间 启动它的 activity 或是其他组件的生命周期己经结束。与此同时,service 组件有两 种启动的方式,分别为 startservice 方式和 bindservice 方式。这两种方式的区别是 bindservice 方式会将启动 service 组件的组件,如 activity,进行绑定,当启动 service 的组件消失时,它也会跟着一起停止运行。而 startservice 方式则不同,它会 一直在后台运行到生命周期结束为止。 d.content provider 组件 该组件主要的功能是在不同的应用程序之间
36、实现数据共享。android 系统应用程 序拥有各自独立的存储空间,这样如果一个程序要访问其他程序的数据或者向外部 程序提供数据,则需要 content provider 组件来完成。在 android 平台中,应用程序 数据可以被存储为 sqlite 数据库文件、android 系统文件或者其他合法的文件类型。 content provider 为应用程序提供了一组标准的访问方式,用于在程序需要时能够访 问这些数据,实现数据共享。 2.1.4android 软件开发的优点及缺点软件开发的优点及缺点 a.android 应用开发的优势 android 平台的开放性:开放性对其迅速的风靡全球有不
37、可磨灭的功劳。谷歌公 司把 android 系统开放给广大软、硬件厂商、软件研发人员以及普通用户,为 android 平台积累了众多的人气和关注度。大家可以通过 google 的 google play 平台 下载应用软件并且上传自己设计开发的程序,这样的开放方式促进 android 平台不 断的发展和完善,也有利于促进软件行业的竞争,同时为大家提供了非常丰富的软 件资源。 良好的兼容性:android 平台的兼容性,使 android 手机上的各种应用开发百花 齐放,各种各样创新的设计以及产品应运而生,虽然这些基于 android 平台上开发 的应用程序功能特色各异、用途各不相同,在不同手机
38、厂商的硬件版本中,却实现 数据同步,软、硬件高度兼容的情况,这些是得力于手机联盟(oha)对 android 平 台的大力支持。 高度融合 google 服务:android 系统另一个特点就是整合了 google 服务的特色 功能,如 google map、e-mail、搜索功能等,这些极大的方便广大开发者以及手机 用户。 b.android 应用开发存在的不足 android 版本更新过于频繁。自从 2007 年 android1.0 版本正式面世以来,中间 经历了许多的版本的更迭,虽然这样说明了 android 发展的势头,但同时版本更新 过于密集,也会让开发人员和用户感到不适,系统及软
39、件的升级维护有一定的麻烦, 无形中增加了一定的使用成本。 由于 android 虚拟机 dalvik vm 对硬件配置资源的要求比较高,相应的开发所 需硬件配置成本比其他开发环境要求有所提高。 为了平台的安全性考虑,google 公司在该平台使用开发时设置了较多的权限控 制,导致了任务管理器、虚拟按键、屏幕截图、短信防火墙等类似功能的实现步骤 相当繁琐,比较难为实现。 2.1.5basic4android 开发环境的搭建开发环境的搭建 android 平台 linux 核心库提供了 java 语言核心库的大多数功能,并通过 dalvik 虚拟机来执行 android 应用程序。因此,andro
40、id 平台下应用程序的开发除了 用于 java 语言开发的 jdk,还须安装专门为 android 开发用的 android 标准开发包 android sdk,以及相关的开发编程工具 basic4android,具体开发环境的搭建和配置 流程这里不做详细的介绍。只对于环境搭建过程中的注意事项做一简单介绍。首先 安装完成 basic4android,初次运行会提示选择相应的 license 文件并且要求输入邮箱 账号,从而激活完整版软件。第二步安装 java jdk v7,这里要注意的是不管是 32 位或者 64 位的操作系统,都必须安装 windows x86 (32-bit),否则在下一步
41、 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 的开发 平台。完成安装后进入
42、 basic4android 点击选择 tools configure paths 配置相应的路 径,如图 2-3paths configuration 界面: 图 2-3paths configuration 界面 到此为止,所需软件安装、开发环境平台搭建完成。 2.1.6运用运用 basic4android 软件的优势软件的优势 basic4android 是简单而强有力的工具;ide 和程序语言 100%专注于 android 开 发;编译为原生 bytecode,不需要运行库生成的 apk 文件与 java / eclipse 生成的 文件完全一样;与 java 写的应用性能相同;使用
43、与 visual basic 类似的事件驱动开 发语言,支持对象和代码模块;不需要写任何 xml 文件;通过支持定制 java 库 提高扩展性;大量的、活跃的、有好的社区开发者,超过 20,000 注册开发者; android 史上唯一的真正 wysiwyg 可视化编辑器。可视化编辑器能够支持多屏幕 和各种分辨率。支持 android 1.6 到 4.0 版本的所有的电话和平板终端;支持自动完 成、内置文档和内部索引的现代 ide 和其他高级功能;集成了强大的单步调试器; 具有可定制在线和离线查询功能的海量文档;使用可视化设计器和抽象设计器支持 所有的屏幕大小和分辨率;增强的数据库和 web
44、服务的支持,一步一步指导如何连 接到远程的 mysql and microsoft sql server 数据库等等一系列所独有的特征。 2.2传感器概念与分类传感器概念与分类 2.2.1传感器的概念传感器的概念 传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如 光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。 国家标准 gb/t 7665-200 对传感器的定义是:“能感受规定的被测量并按照一定 的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成” 。传感器是 一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变
45、换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、 记录和控制等要求,它是实现自动检测和自动控制的首要环节。 2.2.2传感器的分类传感器的分类 传感器技术己经广泛应用于人们的生活、工作、学习方方面面之中,它们的种 类丰富,特点各异,因此把它们分类的方法也有很多方式。最直接和最广泛的分类 方式是把它们分为物理传感器、化学传感器和生物传感器三种类型。另外,按照传 感器的不同用途和性质也可以分成种类多的传感器,如温度传感器、光传感器、压 力传感器、速度传感器、磁敏传感器、湿敏传感器、震动传感器、能耗传感器以及 本文中将会重点介绍的姿态传感器等等。按这些种类繁多的传感器技术为
46、人们的生 活、工作、学习、科研提供了非常多的便利,被广泛应用于军事、航天航空、医用、 汽车、家电等各个顶端和基础行业领域。 2. 3传感器在智能手机中的应用传感器在智能手机中的应用 随着智能操作系统手机以及移动互联网迅速发展,手机的功能己远远超出其最 初的打电话、发短信的功能。智能手机在人们的日常生活工作中扮演着越来越重要 的角色,消费者在手机功能上的要求也越来越苛刻,一部智能化、人性化的智能手 机更能为人们所接受和喜爱。目前,智能手机的功能可谓是多种多样,基本上满足 了不同人群的各种需求。手机传感器应用技术也正是在这样的背景下得以迅速的发 展。目前应用于智能手机上的传感器技术是非常多的:如光
47、传感器(light sensor)主 要用于手机屏幕亮度的智能调节。手机的光传感器技术可根据周围环境光线的情况, 智能的调节手机屏幕的亮度,如果手机用户处于黑暗的环境中时,传感器便会智能 降低手机屏幕的亮度,起到保护用户眼睛和节能的作用。相反,当手机处于较强烈 的光线之下时,传感器则会自动增加手机屏幕的亮度,以达到较好的显示效果。而 距离传感器(proximity sensor)可以在用户接电话时智能熄灭屏幕,则可以防止用户 在听电话时手机屏幕接触到用户脸部将电话意外挂断或者消耗过多的电能。重力传 感器(gravity sensor)在智能手机上的应用则更为广泛常见,比如很有意思的是来电 时翻
48、转手机静音。姿态传感器(orientation sensor)主要是用于检测手机方向的变化, 而做出相关的应用,最典型的应用就是游戏的使用,比如本论文的传感器小游戏就 是该传感器的使用例子。应用的比较好,而且非常人性化的就是当下非常流行的美 国苹果公司(apple)公司的语音软件 siri,她能够利用陀螺仪和距离传感器检测手机 轨迹状态,在手机从静止平台状态下到拿起放到耳朵旁边的过程中,触发并打开语 音助手实现手机直接拨打电话等等功能。 2. 4android 平台传感器的平台传感器的种类种类 google 的 android 平台为我们提供大量传感器硬件接口。从 android l . 5
49、版本 开始,android 系统内置了对多达八种传感器的支持,它们分别是:加速度传感器 (accelerometer sensor)、陀螺仪(gyroscope sensor)、环境光照传感器(light sensor)、 磁力传感器(magnetic field sensor)、方向传感器(orientation sensor)、压力传感器 (pressure sensor)、距离传感器(proximity sensor)、温度传感器(temperature sensor)和 本论文重点应用的姿态传感器(orientation sensor)。正是因为有了这些成熟的传感器 技术的支撑,我们可
50、以在 android 平台上设计开发出各种人性化、高实用性的手机 应用程序。在表 2-4 写出来在 android 平台下各种传感器的返回值情况。 传感器类型返回值数量返回值备注 orientation3 value0:pitch value1:roll value2:yaw 方向传感器, 返回三个坐标 轴的角度,以 度为单位 presure1value0:pressure 压力传感器, 单位为 kp 千 帕斯卡 light1 value 0 :illumination 计算周围环境 光的强度,以 lux 为单位 gyroscope3 value0:pitch value1:roll valu
51、e2:yaw 计算三个坐标 轴的方向的角 度,单位为度。 magnetic field3 value 0 : lateral value1:longitudina l value2:vertical 计算坐标轴三 个方向磁感应 情况,以微特 拉斯 ut 为单 位 accelerometer3 value 0 : lateral value1:longitudina l value2:vertical 加速度传感器, 返回值单位为 m/s2 prpximity1value0:distance 距离传感器, 返回值以米为 单位 temperature1 value 0 :temperature 温
52、度传感器, 返回值单位为 摄氏度。 表 2-4android 平台下各种传感器的返回值 在这里简单介绍了 android 平台所支持的部分传感器的参数,在下边的论文中 会再详细介绍跟应用程序相关的姿态传感器的主要特征以及调用的具体操作实现。 2.4.1加速传感器加速传感器(重力传感器重力传感器)accelerometer 主要感应手机的运动状态,在注册了传感器监听器后,加速度传感器主要捕获 三个参数 value0、value1、value2单位是 m/s2 value0:空间坐标系中 x 轴方向上的加速度减去重力加速度在 x 轴上的分量 value1:空间坐标系中 y 轴方向上的加速度减去重力
53、加速度在 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 姿态传感器主要是感应手机方向
54、的变化,也是本论文所讨论小游戏项目中的主 要核心功能部分。其每次读取的都是静态的状态值,在注册传感器监听器之后方向 传感器同样是捕获三个参数 values0, values1,values2,分别代表手机沿 yaw 轴、pitch 轴以及 ro11 轴转过的角度。 姿态传感器是使用最多的传感器之一,该传感器主要感应手机方位的变化,捕 获的同样是三个数,分别代表手机沿 yaw 轴、pitch 轴和 roll 轴转过的角度。 yaw 轴、pitch 轴和 roll 轴与平时我们理解的空间坐标系有所不同,在特定的 状态下其有别于传统的三维空间坐标系。下面分别对这三个轴所表示的含义进行详 细介绍: y
55、aw 轴,该轴是三个轴中最简单的一个,其表示的方向是不变的,一直是重力 加速度 g 的反方向,即一直是竖直向上的,与手机的姿态无关。 pitch 轴,该轴的方向并不是固定不变的,而是会随着手机沿 yaw 轴旋转而改 变,唯一不变的关系是该轴永远与 yaw 轴成 90 度角。实际上 yaw 轴与 pitch 轴相 当于衔接一起的一个 90 度固定的支架,无论手机怎么旋转,其与 yaw 轴的角度都 为 90 度。 roll 轴,该轴的方向是沿着手机屏幕向上的轴,无论手机是何种姿态,roll 轴 都是沿着手机的屏幕向上指示的,其方向是与手机绑定的。该三维状态的图示效果 如图 2-4 所示: r ro
56、 ol ll l y ya aw w p pi it tc ch h o o 图 2-4姿态传感器 orientation 2. 5传感器的使用方法传感器的使用方法 相对于传统的 android 软件开发工具,basic4android 提供了与 visual basic 类似 的事件驱动开发语言,支持对象和代码模块。下边简单介绍几个常用的传感器使用 方法。 2.5.1加速度传感器的调用加速度传感器的调用(phoneaccelerometer) 调用内部的加速度传感器具有一定的语法要求,并且这个变量必须被定义成为 一个全局的变量。 事件声明: accelerometerchanged (x a
57、s float, y as float, z as float) 开始监听:startlistening (eventname as string) 停止监听:stoplistening 具体的成员描述方法: startlistening (eventname as string) 开始监听加速度传感器的变化事件。 stoplistening 停止监听加速度传感器的变化事件。 2.5.2方向传感器的调用方向传感器的调用(phoneorientation) 类似于上一个加速度传感器的调用类似,调用内部的方向感传感器也是具有一 定的语法要求,并且这个变量必须被定义成为一个全局的变量,才能在程序之中
58、正 常调用。 事件声明: orientationchanged (azimuth as float, pitch as float, roll as float) 开始监听:startlistening (eventname as string) 停止监听:stoplistening 具体的成员描述方法: startlistening (eventname as string) 开始监听方向传感器的变化事件 stoplistening 停止监听方向传感器的变化事件 以上的是两个比较常用的传感器的函数调用以及成员声明的方法,在其他的传 感器调用过程中也会用到相同的语法来定义与调用,在这里就不再赘
59、述。 2.6b4a-bridge 软件的使用软件的使用 在利用 basic4android 编程软件进行传感器的游戏开发编程调试时,由于要获取 传感器实时的数据值,所以如果创建传统的 android virtual device 无法满足实时调 试应用程序的需求,在这里就要通过安装 b4a-bridge 辅助软件,通过访问无线局域 网或者通过蓝牙连接运行 android 智能操作系统的手机进行实时的调试。这样连接 之后只要实时的该变手机的姿态值,通过相应的传输介质就能将该参数传递过去。 b4a-bridge 软件界面如下图 2-5 所示: 图 2-5b4a-bridge 软件界面 该软件有无线
60、局域网(wifi)、蓝牙(bluetooth)两种途径可以将 android 操作系统 的手机与 basic4android 开发环境连接,从而实现传感器参数的实时传递来实现程序 的调试。 在软件界面点击相应的连接方式按钮后,手机会开启无线或者蓝牙功能发送相 应的数据以备 basic4android 开发环境连接。然后,在 basic4android 开发软件的工具 栏选择 tolls b4a bridge connect-bluetooth/connect-wireless 如下图 2.6 所示点击 选择相应的连接方式,输入手机 b4a-bridge 软件界面相应参数即可成功连接。 图 2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年二手停车位购买合同
- 个人实物抵押合同模板
- 人工维护合同模板
- 2024年基层医疗合作协议
- 机场候机楼空调施工设计方案
- 数据标注合作合同模板
- 剧院减震垫采购合同模板
- 个人购房担保合同模板
- 中学英语角活动方案
- 卖家供货合同模板
- 汉语词汇与文化智慧树知到期末考试答案章节答案2024年浙江师范大学
- 动物细胞培养技术.ppt
- 金属压型夹芯板屋面施工工艺工法
- 色谱柱Agilent安捷伦化色谱柱介绍
- 海上风电基本术语(中英文对照)
- 井下电机车管理规定
- 银行分行“职工之家”活动室管理暂行规定
- 医疗器械生产场地的相关要求
- 西安赛格国际购物中心市场调查报告(31页)
- 《产品合格证》(通用格式模板)
- 电梯控制器DP30使用手册应用篇
评论
0/150
提交评论