微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Android嵌入式平台传感器应用开发水平仪

基于Android嵌入式平台传感器应用开发水平仪

时间:04-16 来源:互联网 点击:

摘要:详细介绍了如何利用Android系统的传感器开发水平仪应用的全过程。通过对该案例开发的讲解,介绍了传感器应用的开发方法以及通过Eclipse开发Android应用程序的过程。

1Android平台简介

互联网巨头Google公司于2007年11月5日推出了全新的嵌入式软件平台---Android,该平台由操作系统、中间件、用户界面以及应用软件组成,是一个真正开放的移动应用开发平台。

2007年11月初,Google与其他33家手机厂商、软硬件供应商、手机芯片供应商、移动运营商联合组成了开放手机联盟(OpenHandsetAlliance),发布了名为Android的手机软件平台,并宣布该平台完全开放。同时Google希望Android平台成为一套标准化、开放式的移动嵌入式软件平台。

由于Android系统具有开发性、平等性、无界性以及方便性等优点,所以很快被业界所接受。从2008年初开始,越来越多的开发人员投身到Android应用的开发当中。

而Android系统的一大亮点之一就是传感器的使用,利用传感器可以开发出很多新奇有趣的应用程序。例如计步器、水平仪,甚至在很多游戏中都可以使用传感器来操作游戏。传感器的种类有很多种,其中包括加速度传感器、姿态传感器、磁场传感器、温度传感器以及光传感器等,介绍的水平仪应用就是使用姿态传感器的。

2案例功能

将结合水平仪案例的开发详细介绍如何在Android平台下开发传感器应用,下面首先对水平仪的功能及界面进行简单的介绍。

2。1程序界面

程序运行后的效果如图1所示,用户可以通过调整手机的姿态来控制界面中各个气泡的位置。与真正的水平仪一样,在使用手机水平仪时,需要将手机平放到某个平面上才可以。

图1 水平仪应用程序界面

2。2软件功能

运行该程序,当改变手机的姿态时,界面中的气泡便会根据手机的姿态向高处进行相应的移动。

当手机所处的平面水平时,各个气泡都应该位于中间的指定区域。

3开发环境搭建

正式进入代码开发之前,首先需要对开发环境进行搭建,其搭建步骤如下所列。

(1)安装Java开发环境JDK。

(2)从网上下载Android开发环境SDK的压缩包,并将其解压到磁盘上的某个位置。

(3)将SDK解压目录中的tools目录添加到系统的PATH环境变量中。

(4)下载并安装Eclipse集成开发环境。

(5)为Eclipse安装Android开发插件ADT,并在Eclipse的Preferences中配置Android插件的SDKLocation。

(6)在Eclipse的AVDManager中创建Android虚拟设备(AVD),并启动模拟器。

(7)下载并安装用来调试Android传感器应用的Sensorsimulator传感器模拟器软件。

(8)在模拟器中安装Sensorsimulator所对应的apk文件并对其进行调试使Sensorsimulator应用程序能够与Android模拟器进行通信。

4开发前的准备

前面完成了开发环境的搭建,但在正式进行代码开发之前,还需要再做一些开发前的准备工作,其步骤如下:

(1)首先启动之前安装好Eclipse。

(2)然后依次点击File|New|Other|Android|AndroidProject进入项目的创建界面。

(3)在项目创建界面中,输入项目的名称、所使用的目标平台、所在的包名等信息,如图2所示。

图2 在Eclipse 中创建Android 项目

(4)点击Finish完成项目的创建。

(5)在程序中将会用到的图片资源存放到项目文件夹的res/drawable-mdpi目录下,如图3所示。

图3 图片资源

(6)为应用程序引入调试时使用的Sensorsimulator支持jar包,该jar包位于Sensorsimulator安装目录中的bin目录下:

5自定义View的开发

本案例需要自定义一个View来绘制水平仪的用户界面,首先需要在项目文件夹的src/wyf/ytl目录下创建一个名为Main-View的java类,并使其继承自View类,其代码框架如下:

packagewyf。ytl;//声明所在包

importandroid。content。Context;//引入Context类

importandroid。graphics。Bitmap;//引入Bitmap类

importandroid。graphics。BitmapFactory;//引入相关类

importandroid。graphics。Canvas;//引入Canvas类

importandroid。graphics。Color;//引入Color类

importandroid。graphics。Paint;//引入Paint类

importandroid。graphics。RectF;//引入RectF类

importandroid。graphics。Paint。Style;//引入Style类

importandroid。util。AttributeSet;//引入AttributeSet类

importandroid。view。View;//引入View类

publicclassMainViewextendsView{

Paintpaint=newPaint();//画笔

//图片资源的声明

BitmapshangBitmap1;//上面的大矩形图

BitmapshangBitmap2;//上面的气泡

BitmapzuoBitmap1;//左面的大矩形图

BitmapzuoBitmap2;//左面图的气泡

BitmapzhongBitmap1;//中间的大圆图

Bitmapzhong

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top