博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sensors
阅读量:6515 次
发布时间:2019-06-24

本文共 4371 字,大约阅读时间需要 14 分钟。

Sensors

Android sensors give applications access to a mobile device's underlying physical sensors. They are data-providing virtual devices defined by , the sensor Hardware Abstraction Layer (HAL).

What are Android sensors?


Android sensors are virtual devices that provide data coming from a set of physical sensors: accelerometers, gyroscopes, magnetometers, barometer, humidity, pressure, light, proximity and heart rate sensors.

Not included in the list of physical devices providing data are camera, fingerprint sensor, microphone, and touch screen. These devices have their own reporting mechanism; the separation is arbitrary, but in general, Android sensors provide lower bandwidth data. For example, “100hz x 3 channels” for an accelerometer versus “25hz x 8 MP x 3 channels” for a camera or “44kHz x 1 channel” for a microphone.

Android does not define how the different physical sensors are connected to the system on chip (SoC).

  • Often, sensor chips are connected to the SoC through a , allowing some low-power monitoring and processing of the data.
  • Often, Inter-Integrated Circuit (I2C) or Serial Peripheral Interface (SPI) is used as the transport mechanism.
  • To reduce power consumption, some architectures are hierarchical, with some minimal processing being done in the application-specific integrated circuit (ASIC - like motion detection on the accelerometer chip), and more is done in a microcontroller (like step detection in a sensor hub).
  • It is up to the device manufacturer to choose an architecture based on accuracy, power, price and package-size characteristics. See for more information.
  • Batching capabilities are an important consideration for power optimization. See for more information.

Each Android sensor has a “type” representing how the sensor behaves and what data it provides.

  • The official Android are defined in under the names SENSOR_TYPE_…
    • The vast majority of sensors have an official sensor type.
    • Those types are documented in the Android SDK.
    • Behavior of sensors with those types are tested in the Android Compatibility Test Suite (CTS).
  • If a manufacturer integrates a new kind of sensor on an Android device, the manufacturer can define its own temporary type to refer to it.
    • Those types are undocumented, so application developers are unlikely to use them, either because they don’t know about them, or know that they are rarely present (only on some devices from this specific manufacturer).
    • They are not tested by CTS.
    • Once Android defines an official sensor type for this kind of sensor, manufacturers must stop using their own temporary type and use the official type instead. This way, the sensor will be used by more application developers.
  • The list of all sensors present on the device is reported by the HAL implementation.
    • There can be several sensors of the same type. For example, two proximity sensors or two accelerometers.
    • The vast majority of applications request only a single sensor of a given type. For example, an application requesting the default accelerometer will get the first accelerometer in the list.
    • Sensors are often defined by and pairs, both sensors sharing the same type, but differing by their wake-up characteristic.

Android sensors provide data as a series of sensor events.

Each contains:

  • a handle to the sensor that generated it
  • the timestamp at which the event was detected or measured
  • and some data

The interpretation of the reported data depends on the sensor type. See the definitions for details on what data is reported for each sensor type.

Existing documentation


Targeted at developers

  • Overview
  • SDK reference
  • StackOverflow and tutorial websites
    • Because sensors documentation was sometimes lacking, developers resorted to Q&A websites like StackOverflow to find answers.
    • Some tutorial websites exist as well, but do not cover the latest features like batching, significant motion and game rotation vectors.
    • The answers over there are not always right, and show where more documentation is needed.

Targeted at manufacturers

  • Overview
    • This page and its sub-pages.
  • Hardware abstraction layer (HAL)
    • Also known as “sensors.h”
    • The source of truth. First document to be updated when new features are developed.
  • Android CDD (Compatibility Definition Document)
    • See sections relative to sensors.
    • The CDD is lenient, so satisfying the CDD requirements is not enough to ensure high quality sensors.

转载地址:http://sxofo.baihongyu.com/

你可能感兴趣的文章
java.lang.IllegalArgumentException: No bean specified
查看>>
Wireshark and Tcpdump tips
查看>>
第一课 计算机及操作系统基础知识
查看>>
windows2003单域迁移到2008R2服务器
查看>>
cacti相关资料网站
查看>>
我的友情链接
查看>>
浅析:Android--Fragment的懒加载
查看>>
Linux操作系统目录和Linux常用的文件和目录管理命令
查看>>
DIY:自己动手做一个迷你 Linux 系统(二)
查看>>
猫猫学IOS(三十)UI之Quartz2D画图片画文字
查看>>
ethereumjs/merkle-patricia-tree-2-API
查看>>
go标准库的学习-runtime
查看>>
pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-使用说明
查看>>
NodeJS学习之文件操作
查看>>
AJAX的get和post请求原生编写方法
查看>>
WebSocket 是什么原理?为什么可以实现持久连接
查看>>
Python自学笔记-logging模块详解
查看>>
Head First--设计模式
查看>>
iOS之CAGradientLayer属性简介和使用
查看>>
微信小程序UI组件、开发框架、实用库
查看>>