diff options
Diffstat (limited to 'en/devices/sensors/index.html')
-rw-r--r-- | en/devices/sensors/index.html | 186 |
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&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&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> |