aboutsummaryrefslogtreecommitdiff
path: root/en/devices/sensors/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'en/devices/sensors/index.html')
-rw-r--r--en/devices/sensors/index.html186
1 files changed, 106 insertions, 80 deletions
diff --git a/en/devices/sensors/index.html b/en/devices/sensors/index.html
index 1613131a..962ba868 100644
--- a/en/devices/sensors/index.html
+++ b/en/devices/sensors/index.html
@@ -24,124 +24,150 @@
<img style="float: right; margin: 0px 15px 15px 15px;" src="images/ape_fwk_hal_sensors.png" alt="Android Sensors HAL icon"/>
-<p>Android sensors give applications access to a mobile device's underlying physical sensors. They are data-providing virtual devices defined by <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a>, the sensor Hardware Abstraction Layer (HAL).</p>
+<p>Android sensors give applications access to a mobile device's underlying
+physical sensors. They are data-providing virtual devices defined by <a
+href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h"
+class="external">sensors.h</a>, the sensor Hardware Abstraction Layer (HAL).</p>
-<h2 id="what_are_“android_sensors”">What are Android sensors?</h2>
-<p>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.</p>
-<p>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.</p>
- <p>Android does not define how the different physical sensors are connected to the system on chip (SoC).</p>
+<h2 id="what_are_android_sensors">What are Android sensors?</h2>
+<p>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.</p>
+<p>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.</p>
+ <p>Android does not define how the different physical sensors are connected
+ to the system on chip (SoC).</p>
<ul>
- <li> Often, sensor chips are connected to the SoC through a <a href="sensor-stack.html#sensor_hub">sensor hub</a>, allowing some low-power monitoring and processing of the data. </li>
- <li> Often, Inter-Integrated Circuit (I2C) or Serial Peripheral Interface
- (SPI) is used as the transport mechanism. </li>
- <li> 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). </li>
- <li> It is up to the device manufacturer to choose an architecture based on
- accuracy, power, price and package-size characteristics. See <a
- href="sensor-stack.html">Sensor stack</a> for more information. </li>
- <li> Batching capabilities are an important consideration for power optimization.
- See <a href="batching.html">Batching</a> for more information. </li>
- </ul>
- <p>Each Android sensor has a “type” representing how the sensor behaves and what
- data it provides.</p>
+ <li>Often, sensor chips are connected to the SoC through a <a
+ href="/devices/sensors/sensor-stack#sensor_hub">sensor hub</a>, allowing
+ some low-power monitoring and processing of the data.</li>
+ <li>Often, Inter-Integrated Circuit (I2C) or Serial Peripheral Interface
+ (SPI) is used as the transport mechanism.</li>
+ <li>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).</li>
+ <li>It is up to the device manufacturer to choose an architecture based on
+ accuracy, power, price and package-size characteristics. See <a
+ href="/devices/sensors/sensor-stack">Sensor stack</a> for more
+ information. </li>
+ <li>Batching capabilities are an important consideration for power
+ optimization. See <a href="/devices/sensors/batching">Batching</a> for
+ more information.</li> </ul>
+ <p>Each Android sensor has a “type” representing how the sensor behaves and
+ what data it provides.</p>
<ul>
- <li> The official Android <a href="sensor-types.html">Sensor types</a> are defined in <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a> under the names SENSOR_TYPE_…
+ <li>The official Android <a href="/devices/sensors/sensor-types">Sensor
+ types</a> are defined in <a
+ href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h"
+ class="external">sensors.h</a> under the names SENSOR_TYPE_…
<ul>
- <li> The vast majority of sensors have an official sensor type. </li>
- <li> Those types are documented in the Android SDK. </li>
- <li> Behavior of sensors with those types are tested in the Android
- Compatibility Test Suite (CTS). </li>
+ <li>The vast majority of sensors have an official sensor type.</li>
+ <li>Those types are documented in the Android SDK.</li>
+ <li>Behavior of sensors with those types are tested in the Android
+ Compatibility Test Suite (CTS).</li>
</ul>
</li>
- <li> 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.
+ <li>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.
<ul>
- <li> 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). </li>
- <li> They are not tested by CTS. </li>
- <li> 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. </li>
+ <li>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).</li>
+ <li>They are not tested by CTS.</li>
+ <li>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.</li>
</ul>
- </li>
- <li> The list of all sensors present on the device is reported by the HAL
+ </li>
+ <li>The list of all sensors present on the device is reported by the HAL
implementation.
<ul>
- <li> There can be several sensors of the same type. For example, two proximity
- sensors or two accelerometers. </li>
- <li> 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. </li>
- <li> Sensors are often defined by <a href="suspend-mode.html#wake-up_sensors">wake-up</a> and <a href="suspend-mode.html#non-wake-up_sensors">non-wake-up</a> pairs, both sensors sharing the same type, but differing by their wake-up
- characteristic. </li>
+ <li>There can be several sensors of the same type. For example, two
+ proximity sensors or two accelerometers.</li>
+ <li>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.</li>
+ <li>Sensors are often defined by <a
+ href="/devices/sensors/suspend-mode#wake-up_sensors">wake-up</a> and
+ <a
+ href="/devices/sensors/suspend-mode#non-wake-up_sensors">non-wake-up</a>
+ pairs, both sensors sharing the same type, but differing by their
+ wake-up characteristic.</li>
</ul>
- </li>
+ </li>
</ul>
<p>Android sensors provide data as a series of sensor events.</p>
- <p> Each <a href="hal-interface.html#sensors_event_t">event</a> contains:</p>
+ <p> Each <a href="/devices/sensors/hal-interface#sensors_event_t">event</a>
+ contains:</p>
<ul>
- <li> a handle to the sensor that generated it </li>
- <li> the timestamp at which the event was detected or measured </li>
- <li> and some data </li>
+ <li>a handle to the sensor that generated it</li>
+ <li>the timestamp at which the event was detected or measured</li>
+ <li>and some data</li>
</ul>
- <p>The interpretation of the reported data depends on the sensor type.
- See the <a href="sensor-types.html">sensor type</a> definitions for details on
- what data is reported for each sensor type.</p>
+ <p>The interpretation of the reported data depends on the sensor type. See
+ the <a href="/devices/sensors/sensor-types">sensor type</a>
+ definitions for details on what data is reported for each sensor type.</p>
<h2 id="existing_documentation2">Existing documentation</h2>
<h3 id="targeted_at_developers">Targeted at developers</h3>
<ul>
- <li> Overview
+ <li>Overview
<ul>
- <li><a href="https://developer.android.com/guide/topics/sensors/sensors_overview.html"> https://developer.android.com/guide/topics/sensors/sensors_overview.html </a></li>
+ <li><a href="https://developer.android.com/guide/topics/sensors/sensors_overview.html" class="external">https://developer.android.com/guide/topics/sensors/sensors_overview.html</a></li>
</ul>
</li>
- <li> SDK reference
+ <li>SDK reference
<ul>
- <li> <a href="https://developer.android.com/reference/android/hardware/SensorManager.html">https://developer.android.com/reference/android/hardware/SensorManager.html</a></li>
- <li><a href="https://developer.android.com/reference/android/hardware/SensorEventListener.html"> https://developer.android.com/reference/android/hardware/SensorEventListener.html</a></li>
- <li> <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">https://developer.android.com/reference/android/hardware/SensorEvent.html</a></li>
- <li><a href="https://developer.android.com/reference/android/hardware/Sensor.html"> https://developer.android.com/reference/android/hardware/Sensor.html</a></li>
+ <li><a href="https://developer.android.com/reference/android/hardware/SensorManager" class="external">https://developer.android.com/reference/android/hardware/SensorManager</a></li>
+ <li><a href="https://developer.android.com/reference/android/hardware/SensorEventListener" class="external">https://developer.android.com/reference/android/hardware/SensorEventListener</a></li>
+ <li><a href="https://developer.android.com/reference/android/hardware/SensorEvent" class="external">https://developer.android.com/reference/android/hardware/SensorEvent</a></li>
+ <li><a href="https://developer.android.com/reference/android/hardware/Sensor" class="external"> https://developer.android.com/reference/android/hardware/Sensor</a></li>
</ul>
</li>
- <li> StackOverflow and tutorial websites
+ <li>Stack Overflow and tutorial websites
<ul>
- <li> Because sensors documentation was sometimes lacking, developers resorted to Q&amp;A
- websites like StackOverflow to find answers. </li>
- <li> Some tutorial websites exist as well, but do not cover the latest features like
- batching, significant motion and game rotation vectors. </li>
- <li> The answers over there are not always right, and show where more documentation
- is needed. </li>
+ <li>Because sensors documentation was sometimes lacking, developers
+ resorted to Q&amp;A websites like Stack Overflow to find answers.
+ </li>
+ <li>Some tutorial websites exist as well, but do not cover the latest
+ features like batching, significant motion and game rotation vectors.
+ </li>
+ <li>The answers over there are not always right, and show where more
+ documentation is needed.</li>
</ul>
</li>
</ul>
<h3 id="targeted_at_manufacturers_public">Targeted at manufacturers</h3>
<ul>
- <li> Overview
+ <li>Overview
<ul>
- <li>This <a href="/devices/sensors/index.html">Sensors</a>
+ <li>This <a href="/devices/sensors/">Sensors</a>
page and its sub-pages. </li>
</ul>
- </li>
- <li> Hardware abstraction layer (HAL)
+ </li>
+ <li>Hardware abstraction layer (HAL)
<ul>
- <li> <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h</a></li>
- <li> Also known as “sensors.h” </li>
- <li> The source of truth. First document to be updated when new features are
- developed. </li>
+ <li><a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h" class="external">/platform/hardware/libhardware/+/master/include/hardware/sensors.h</a></li>
+ <li>Also known as “sensors.h”</li>
+ <li>The source of truth. First document to be updated when new
+ features are developed.</li>
</ul>
</li>
- <li> Android CDD (Compatibility Definition Document)
+ <li>Android CDD (Compatibility Definition Document)
<ul>
- <li><a href="/compatibility/android-cdd.pdf">https://source.android.com/compatibility/android-cdd.pdf</a></li>
- <li> See sections relative to sensors. </li>
- <li> The CDD is lenient, so satisfying the CDD requirements is not enough to ensure
- high quality sensors. </li>
+ <li><a
+ href="/compatibility/9/android-9-cdd">https://source.android.com/compatibility/9/android-9-cdd</a></li>
+ <li>See sections relative to sensors.</li>
+ <li>The CDD is lenient, so satisfying the CDD requirements is not
+ enough to ensure high quality sensors.</li>
</ul>
</li>
</ul>