1 Sensors介绍
1.1 Android Sensors 简介
每一部搭载Android智能操作系统的设备都具有一系列传感器,用于测量运动,方向,和各种环境条件。如果你想要监测装置或三维运动定位,或者你想要监测在附近的一个设备的周围环境的变化,那么这些传感器能够提供原始数据供你分析和使用。例如,一个游戏可能从重力传感器得来的数据来推断用户的手势和动作,如倾斜,震动,旋转,或摆动。同样,一个天气应用程序可能使用温度传感器和湿度传感器来计算和报告天气情况,或一个旅游应用程序可以使用地磁传感器和加速度计的报告一个罗盘方位。
Android平台支持传感器三大类:
运动传感器
这一类包括加速度计,重力传感器,陀螺仪,和旋转矢量传感器,步伐检测传感器,步数传感器。
环境传感器
如环境空气温度、压力和湿度,光照。这一类包括气压计,光度计,温度计。
位置传感器
这一类包括定位传感器和磁力计。
这些传感器有的是基于硬件的,有的是基于软件的。
基于硬件的传感器的物理组件内置到手机或平板设备。他们获得他们的数据,通过直接测量特定的环境性能,如加速度,地磁场强度,或角的变化。
基于软件的传感器没有物理设备,他们获得的数据是从一个或多个硬件传感器计算出来的,线性加速度传感器和重力传感器。有时基于软件的传感器也被称为虚拟传感器或综合传感器。
这篇文章中我们主要针对运动传感器作分析。其他sensors的详细介绍可以参考http://developer.android.com/guide/topics/sensors/sensors_overview.html。
1.2 Android sensors 框架图
类别 |
名称 |
代码 |
用户空间 |
JAVA应用程序 |
用户实现 |
Java framework框架层 |
SensorManager.java |
|
SensorListener.java |
||
SensorEvent.java |
||
... |
||
JNI层 |
Andorid_hardware_SensorManager.cpp |
|
Native层 |
SensorService.cpp |
|
SensorDevice.cpp |
||