1、学号 136312126 苏州市职业大学毕业设计题目 基于ANDROID传感器的应用设计 学生姓名: 夏新德 专业班级: 13计算机应用技术3(3G) 学院 (部): 计算机工程学院 校内指导教师: 贾震斌(讲师) 校外指导教师: 万勇平(工程师) 完成日期: 2015年5 月 摘 要:内容主要是关于传感器的内容和你开题报告的选题内容相似ABSTRACT将摘要翻译成英文关键词:传感器,Android目录第1章 绪论1.1课题的研究意义说一说你这款软件的用途以及设计意义,写的多一点1.2主要研究内容以及拟解决的问题开题报告上面有,就像那样写1.3第3章 技术背景介绍3.1传感器3.1.1传感器的
2、介绍传感器的发展史 传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。 国家标准GB7665-87对传感器下的定义是:“能够感受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置,通常由敏感元件和转换元件组成”。这里所说的“可用输出信号”是指便于加工处理、便于传输利用的信号。现在电信号是最易于处理和便于传输的信号。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动
3、检测和自动控制的首要环节 传感器.不像计算机这么大型复杂的东西.那样的话人们会就清楚的记录它的历史了温度传感器是最早开发,应用最广的一类传感器。根据美国仪器学会的调查,1990年,温度传感器的市场份额大大超过了其他的传感器。从17世纪初伽利略发明温度计开始,人们开始利用温度进行测量。真正把温度变成电信号的传感器是1821年由德国物理学家赛贝发明的,这就是后来的热电偶传感器。五十年以后,另一位德国人西门子发明了铂电阻温度计。在半导体技术的支持下,本世纪相继开发了半导体热电偶传感器、PN结温度传感器和集成温度传感器。与之相应,根据波与物质的相互作用规律,相继开发了声学温度传感器、红外传感器和微波传
4、感器 发展趋势 一、利用新发现的现象、效应。传感器本来就是基于一系列效应制造出来的,目前应用的效应很多,比如压电效应、压阻效应等等,还有一些效应是我们未知的,等着我们去认识。 二、采用高新技术。随着计算机、电子技术以及制造加工技术的发展,传感器也进入高速发展时期,这些技术都是开发和设计传感器的基础。高科技含量的传感器是未来产业化的一个方向。 三、新材料的开发。传感器的感应元件、传感器保护的基础都是各种材料,随着人们对新材料性能的掌握,将大大促进传感器的发展。近年,广泛应用的材料有陶瓷、光纤、高分子有机材料等。 四、不断提高传感器的性能。影响传感器的性能因素很多,有系统的,还有检测的。随着检测技
5、术跟精密制造的发展,这方面也将得到大大提高。 五、传感器应用的扩展。物联网的横空出世,传感器应用也在不断拓展。近些年,地震灾害、海啸灾害、食品危机不断,对研究人员来说,也是个挑战,开发出各种传感器检测这些现象的发生,及早预警。 六、传感器的集成化和多功能化。以前的传感器一般只能检测一种物理量,一个系统光传感器就需要很口。现在,已经出现了多功能和集成化的传感器,比如温湿度和检测各种气体的集成传感器,这也将是以后发展的一个趋势。 七、微型与低功耗化。有些精密仪器或设备,体积本身就小,还需要接上各种传感器进行感知和控制,这也对传感器提出了更高的要求Android传感器框架能够让你访问多种类型的传感器
6、。其中某些传感器是基于硬件的,有些传感器是基于软件的。基于硬件的传感器是内置与手持或平板设备中的物理组件。它们通过直接测量特定的环境属性来获取数据,如加速度、磁场强或角度的变化等。基于软件的传感器不是物理设备,尽管它们模拟基于硬件的传感器。基于软件的传感器从一个或多个有时被叫做虚拟传感器或合成传感器的基于硬件的传感器来获取数据。线性加速度传感器和重力传感器是基于硬件的传感器的实例。表1概要的介绍了Android平台所支持的传感器。 很少有Android设备支持所有类型的传感器。例如,大多数手持设备和平板设备都有一个加速仪和一个磁力仪,但是很少有气压计和温度计的设备。一个设备上也能够有多个同一给
7、定类型的传感器。例如,一个有设备能够有两个重力传感器,每个都有不同测量范围传感器的发展史等等。网上搜一搜,用自己的话说,上面的内容用自己的话改一改。3.1.2传感器的种类加速度传感器加速度传感器又叫G-sensor,返回x、y、z三轴的加速度数值。该数值包含地心引力的影响,单位是m/s2。将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81。将手机朝下放在桌面上,z轴为-9.81。将手机向左倾斜,x轴为正值。将手机向右倾斜,x轴为负值。将手机向上倾斜,y轴为负值。将手机向下倾斜,y轴为正值。加速度传感器可能是最为成熟的一种mems产品,市场上的加速度传感器种类很多。手机中常用的加速度
8、传感器有BOSCH(博世)的BMA系列,AMK的897X系列,ST的LIS3X系列等。这些传感器一般提供2G至16G的加速度测量范围,采用I2C或SPI接口和MCU相连,数据精度小于16bit。2 磁力传感器磁力传感器简称为M-sensor,返回x、y、z三轴的环境磁场数据。该数值的单位是微特斯拉(micro-Tesla),用uT表示。单位也可以是高斯(Gauss),1Tesla=10000Gauss。硬件上一般没有独立的磁力传感器,磁力数据由电子罗盘传感器提供(E-compass)。电子罗盘传感器同时提供下文的方向传感器数据。3 方向传感器方向传感器简称为O-sensor,返回三轴的角度数据
9、,方向数据的单位是角度。为了得到精确的角度数据,E-compass需要获取G-sensor的数据,经过计算生产O-sensor数据,否则只能获取水平方向的角度。方向传感器提供三个数据,分别为azimuth、pitch和roll。azimuth:方位,返回水平时磁北极和Y轴的夹角,范围为0至360。0=北,90=东,180=南,270=西。pitch:x轴和水平面的夹角,范围为-180至180。当z轴向y轴转动时,角度为正值。roll:y轴和水平面的夹角,由于历史原因,范围为-90至90。当x轴向z轴移动时,角度为正值。电子罗盘在获取正确的数据前需要进行校准,通常可用8字校准法。8字校准法要求用
10、户使用需要校准的设备在空中做8字晃动,原则上尽量多的让设备法线方向指向空间的所有8个象限。手机中使用的电子罗盘芯片有AKM公司的897X系列,ST公司的LSM系列以及雅马哈公司等等。由于需要读取G-sensor数据并计算出M-sensor和O-sensor数据,因此厂商一般会提供一个后台daemon来完成工作,电子罗盘算法一般是公司私有产权。4 陀螺仪传感器陀螺仪传感器叫做Gyro-sensor,返回x、y、z三轴的角加速度数据。角加速度的单位是radians/second。根据Nexus S手机实测:水平逆时针旋转,Z轴为正。水平逆时针旋转,z轴为负。向左旋转,y轴为负。向右旋转,y轴为正。
11、向上旋转,x轴为负。向下旋转,x轴为正。ST的L3G系列的陀螺仪传感器比较流行,iphone4和google的nexus s中使用该种传感器。5 光线感应传感器光线感应传感器检测实时的光线强度,光强单位是lux,其物理意义是照射到单位面积上的光通量。光线感应传感器主要用于Android系统的LCD自动亮度功能。可以根据采样到的光强数值实时调整LCD的亮度。6 压力传感器压力传感器返回当前的压强,单位是百帕斯卡hectopascal(hPa)。7 温度传感器温度传感器返回当前的温度。8 接近传感器接近传感器检测物体与手机的距离,单位是厘米。一些接近传感器只能返回远和近两个状态,因此,接近传感器将
12、最大距离返回远状态,小于最大距离返回近状态。接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。一些芯片集成了接近传感器和光线传感器两者功能。下面三个传感器是Android2新提出的传感器类型,目前还不太清楚有哪些应用程序使用。9 重力传感器重力传感器简称GV-sensor,输出重力数据。在地球上,重力数值为9.8,单位是m/s2。坐标系统与加速度传感器相同。当设备复位时,重力传感器的输出与加速度传感器相同。10 线性加速度传感器线性加速度传感器简称LA-sensor。线性加速度传感器是加速度传感器减去重力影响获取的数据。单位是m/s2,坐标系统与加速度传感器相同。加速度传感器、重力传感器
13、和线性加速度传感器的计算公式如下:加速度 = 重力 + 线性加速度11 旋转矢量传感器旋转矢量传感器简称RV-sensor。旋转矢量代表设备的方向,是一个将坐标轴和角度混合计算得到的数据。RV-sensor输出三个数据:x*sin(theta/2)y*sin(theta/2)z*sin(theta/2)sin(theta/2)是RV的数量级。RV的方向与轴旋转的方向相同。RV的三个数值,与cos(theta/2)组成一个四元组。RV的数据没有单位,使用的坐标系与加速度相同。用自己的话将上面的内容改动3.1.3传感器的功能1. 加速度传感器(Accelerometer) 感知手机当前的加速度,可
14、以实现微信摇一摇类似的功能(摇一摇使手机瞬时加速度发生变化),另外通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。下图是加速度传感器数据坐标的示意图。X Y Z分别对应values0到2。X表示左右移动的加速度,Y表示前后移动的加速度,Z表示垂直方向的加速度. 例如,水平放在桌面上的手机从左侧向右侧移动,values0为负值;从右向左移动,values0为正值。2. 重力感应器 与加速度传感器使用同一套坐标系。values数组中三个元素分别表示了X、Y、Z轴的重力大小。其实重力感应器是手机早就集成的传感器,传统重力感应器它仅能识别水平方向和垂直方向的移动。现有的手机集成的
15、重力感应器也就等同于加速度感应器(查了一下资料没有明确的功能区分,姑且这样认为)。屏幕会随着手机位置的不同而改变方向的功能就是通过这个实现的。3. Gyroscope 陀螺仪 定义是一种用于测量角度以及维持方向的设备。中间黄色的转子是“陀螺”,周边三个“钢圈”则会因为设备改变姿态而跟着改变,通过这样来检测设备当前的状态。看定义不知道它与加速度传感器有什么不同,下面我们来看看他们到底有什么区别:加速度感应器用来感应加速度的,譬如手机从静止到移动就会产生加速度,你使劲摇一摇手机,就会产生加速度等等。另外然后人们利用手机倾斜时在加速度敏感轴上的重力不同,就衍生出了所谓的重力感应功能,可以粗略感应倾斜
16、角;陀螺仪是用来固定一个方向的,就像旋转的陀螺放在一个平面上,不论将这个平面如何倾斜,陀螺的中心轴的方向总是会保持不变。在手机里装陀螺仪传感器,就能凭空固定一个方向,无论手机如何移动,这个方向总是保持不变,譬如说在一些手机射击游戏中,射击准心就是不变的,然后你可以通过移动手机位置,来瞄准目标,或者实现手机防抖功能。4. GPS (Global Positioning System)这个大家都很熟悉,大家会经常用它来定位和导航。在android SDK中,有Location对象,这个对象包括当前位置的经纬度甚至可以通过location.getspeed()来获得手机用户的运行速度。当然获取Loc
17、ation不只有通过GPS这一个方式,可以通过基站或者WIFI定位。5. 电子罗盘 目前很多手机都实现了电子罗盘的功能。要实现电子罗盘功能,需要一个检测磁场的三轴磁力传感器和一个三轴加速度传感器。随着微机械工艺的成熟,意法半导体推出将三轴磁力计和三轴加速计集成在一个封装里的二合一传感器模块LSM303DLH,方便用户在短时间内设计出成本低、性能高的电子罗盘。所以手机支持电子罗盘也就相当于支持磁场感应器。电子罗盘的最大用途就是当做指南针。还有一些其他传感器:气压传感器用于判断手机当前海拔高度,光线传感器可以根据手机所处的光线条件调节屏幕亮度,距离传感器常用做识别人脸与手机的距离实现通话时亮屏和黑
18、屏的切换。3.1.4传感器的应用前景3.2 Android平台Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用1。3.2.1 Android特征Dalvik虚拟:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在
19、保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGL ES 1O标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLitet提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android
20、平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(EnhaIlced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。Ca
21、mera,GPS,compass,and accelerometer:(依赖硬件)GPS(GlobalPositioning System)ItTI驯全球定位系统。它是一个由覆盖全球的24颗1J星组成的卫星系统。Compass是个开放源代码的JAVA搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。Eclipse是个集成开发环境2。3.2.2 Android架构Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则
22、上是在Dalvik VM上运行的。图3-1 Android架构图Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。开发语言是Java。Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。Android应用程序框架之下是一套C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3
23、D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核
24、提供的功能,如线程机制,和内存管理机制等。Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。3.2.3 Android应用的构成和工作机制对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfestxml中进行配置。这个配置文件是每个Android
25、应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Activity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。1.活动生命周期:活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。图3.2 Activity状态变换路径图从图2
26、-2可以看出,Activity有三个关键的循环:(1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。(2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。(3)活动的后台生命期:从调用onResume()开始,到
27、onPause()被调用为止。在这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换4。2.活动之间的切换:Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的
28、Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。Intent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用Contextbroadcast
29、Intent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天边听音乐。Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content
30、 Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。第4章 平台的搭建4.1 Android 开发环境的搭建Android平台为开发者提供了源码开放的软件开发包( SDK) ,它包含了使用Java语言开发Android平台应用的必要工具和组件(API) 。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。搭建环境所需要的软件:l 操作系统:Windows XP 或 Linux;l 软件包:Android SDK,ADT;l IDE环境:Eclipse IDE
31、 + ADT Eclipse3.3以上;l JDK:Java Runtime Environmcnt,JDK;4.1.1 JDK的安装下载JDK并且一路next进行安装,这里主要讲解JDK的环境变量如何配置:1. 我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:2. JAVA_HOME值为: a) D:Program FilesJavajdk1.6.0_18(安装JDK的目录)3. CLASSPATH值为:a) .;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4. Path: a) 在开始追加 %JAVA_
32、HOME%bin;安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。出现类似如图3-1的画面表示安装成功了:图3.1验证JDK安装是否成功4.1.2 Eclipse的安装下载如图3-2所示的Eclipse IDE for Java Developers(92M)的win 32bit版(选择自己适合的版本)解压之后即可使用。图3.2 Eclipse下载4.1.3 Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.
33、exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。图3.3设置Android SDK的环境变量“确定”后,重新启动计算机。重启计
34、算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android h 如果有类似如图3-4的输出,表明安装成功:图3.4验证Android SDK是否安装成功4.1.4 ADT安装打开 Eclipse IDE,进入菜单中的 Help - Install New Software点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl-图3.5 Add Site确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和A
35、ndroid Development Tool,勾选他们。 如图3-6所示:图3.6选择插件然后就是按提示一步一步next。完成之后:选择Window Preferences.;在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为:D:AndroidDevelopandroid-sdk-windows。点击Apply、OK。配置完成。4.1.5 创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,
36、再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD4.2 Eclipse简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclip
37、se 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Ec
38、lipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。第5章 系统设计与实现5.1主要功能的实现调用API中提供的Context对象下的getSystemService方法获取SensorManager对象通过获取SensorManager对象后调用getDefaultSensor方法获取传感器的信息,调用getDefaultSensor方法时需要传入一个描述需要获取的传感器的类型,常用的类型如表5.1
39、所示传感器类型常量内部整数值中文名称Sensor.TYPE_ACCELEROMETER1加速度传感器Sensor.TYPE_MAGNETIC_FIELD2磁力传感器Sensor.TYPE_ORIENTATION3方向传感器Sensor.TYPE_GYROSCOPE4陀螺仪传感器Sensor.TYPE_LIGHT5环境光照传感器Sensor.TYPE_PRESSURE6压力传感器Sensor.TYPE_TEMPERATURE7温度传感器Sensor.TYPE_PROXIMITY8距离传感器核心代码:图片随手机姿态变化发生四个方向上的移动,通过SENSOR_ORIENTATION传感器检测手机角度
40、变化,当手机右边抬起角度大于10度就会向左移动,反之向右移动,当手机向上抬起角度超过10度,则图片朝上移动,反之朝下移动一定距离。核心代码:5.2截图及运行说明不同角度图片与Yaw、Roll、Pitch值的变化结论本次毕业设计是结合本地公交线路系统开发的一款手机查询工具。历经几个月的毕业设计,我的收获还是很大的。从资料查找到课题的设计分析、数据库的设计、界面的设计、然后进行代码编写、程序调试等,整个开发过程都是一边摸索一边实践出来的。为了毕业设计,我阅读了不少的资料,付出了不少的心血,有些是对毕设有帮助的,有些只能作为知识来积累,我深有体会的是要完成一个完善的系统是相当不容易,要考虑周全也是相当困难的。在这一步一步地学习摸索的过程中,我感到开心的就是能够将所学到的知识应用到设计中,使自己的设计能更加完善些。由于能力的限制,最终的系统还是没有那么令人满意,还是存在一些不足之处。希望在日后有机会对其继续改进。比如实现导航功能,换乘查询的算法能够更加完善等。由于时间和个人能力有限,本文对Android的理解和分析还不够深入,系统功能也有待完善。致谢说一些快毕业了,自己的程序在老师谁谁谁的帮助下,感谢老师,毕业设计自己做了多久,遇到什么困难,怎么解决的,一些不足之处,自己未能做出来的功能(与开题报告要实现的功能对比)参考文献: