Los sensores de Android dan acceso a las aplicaciones a los sensores físicos subyacentes de un dispositivo móvil. Son dispositivos virtuales que proporcionan datos definidos por sensores.h , la capa de abstracción de hardware (HAL) del sensor.
¿Qué son los sensores de Android?
Los sensores de Android son dispositivos virtuales que proporcionan datos provenientes de un conjunto de sensores físicos: acelerómetros, giroscopios, magnetómetros, barómetro, sensores de humedad, presión, luz, proximidad y frecuencia cardíaca.
No se incluyen en la lista de dispositivos físicos que proporcionan datos la cámara, el sensor de huellas dactilares, el micrófono y la pantalla táctil. Estos dispositivos tienen su propio mecanismo de informes; la separación es arbitraria, pero en general, los sensores de Android proporcionan datos de menor ancho de banda. Por ejemplo, “100 Hz x 3 canales” para un acelerómetro frente a “25 Hz x 8 MP x 3 canales” para una cámara o “44 kHz x 1 canal” para un micrófono.
Android no define cómo se conectan los diferentes sensores físicos al sistema en chip (SoC).
- A menudo, los chips sensores se conectan al SoC a través de un concentrador de sensores , lo que permite cierto monitoreo y procesamiento de datos de bajo consumo.
- A menudo, el circuito interintegrado (I2C) o la interfaz periférica en serie (SPI) se utilizan como mecanismo de transporte.
- Para reducir el consumo de energía, algunas arquitecturas son jerárquicas, y se realiza un procesamiento mínimo en el circuito integrado específico de la aplicación (ASIC, como la detección de movimiento en el chip del acelerómetro), y se realiza más en un microcontrolador (como la detección de pasos en un concentrador de sensores). ).
- Depende del fabricante del dispositivo elegir una arquitectura basada en las características de precisión, potencia, precio y tamaño del paquete. Consulte Pila de sensores para obtener más información.
- Las capacidades de procesamiento por lotes son una consideración importante para la optimización de energía. Consulte Procesamiento por lotes para obtener más información.
Cada sensor de Android tiene un "tipo" que representa cómo se comporta el sensor y qué datos proporciona.
- Los tipos de sensores oficiales de Android se definen en sensores.h bajo los nombres SENSOR_TYPE_…
- La gran mayoría de sensores tienen un tipo de sensor oficial.
- Esos tipos están documentados en el SDK de Android.
- El comportamiento de los sensores con esos tipos se prueba en Android Compatibility Test Suite (CTS).
- Si un fabricante integra un nuevo tipo de sensor en un dispositivo Android, el fabricante puede definir su propio tipo temporal para hacer referencia a él.
- Esos tipos no están documentados, por lo que es poco probable que los desarrolladores de aplicaciones los usen, ya sea porque no los conocen o saben que rara vez están presentes (solo en algunos dispositivos de este fabricante específico).
- No son probados por CTS.
- Una vez que Android defina un tipo de sensor oficial para este tipo de sensor, los fabricantes deben dejar de usar su propio tipo temporal y usar el tipo oficial en su lugar. De esta forma, el sensor será utilizado por más desarrolladores de aplicaciones.
- La implementación de HAL informa la lista de todos los sensores presentes en el dispositivo.
- Puede haber varios sensores del mismo tipo. Por ejemplo, dos sensores de proximidad o dos acelerómetros.
- La gran mayoría de las aplicaciones solicitan un único sensor de un tipo determinado. Por ejemplo, una aplicación que solicite el acelerómetro predeterminado obtendrá el primer acelerómetro de la lista.
- Los sensores a menudo se definen por pares de activación y no activación , ambos sensores comparten el mismo tipo, pero difieren en su característica de activación.
Los sensores de Android proporcionan datos como una serie de eventos de sensores.
Cada evento contiene:
- un identificador para el sensor que lo generó
- la marca de tiempo en la que se detectó o midió el evento, según
SystemClock.elapsedRealtimeNanos()
- y algunos datos
La interpretación de los datos informados depende del tipo de sensor. Consulte las definiciones de tipo de sensor para obtener detalles sobre qué datos se informan para cada tipo de sensor.
Documentación existente
Dirigido a desarrolladores
- Descripción general
- Referencia SDK
- Stack Overflow y sitios web de tutoriales
- Debido a que a veces faltaba la documentación de los sensores, los desarrolladores recurrieron a sitios web de preguntas y respuestas como Stack Overflow para encontrar respuestas.
- También existen algunos sitios web de tutoriales, pero no cubren las funciones más recientes, como el procesamiento por lotes, el movimiento significativo y los vectores de rotación del juego.
- Las respuestas no siempre son correctas y muestran dónde se necesita más documentación.
Dirigido a fabricantes
- Descripción general
- Esta página de Sensores y sus subpáginas.
- Capa de abstracción de hardware (HAL)
- /plataforma/hardware/libhardware/+/main/include/hardware/sensors.h
- También conocido como “sensores.h”
- La fuente de la verdad. Primer documento que se actualiza cuando se desarrollan nuevas funciones.
- Android CDD (Documento de definición de compatibilidad)
- /compatibilidad/android-cdd.pdf
- Ver apartados relativos a sensores.
- El CDD es indulgente, por lo que cumplir con los requisitos del CDD no es suficiente para garantizar sensores de alta calidad.
Los sensores de Android dan acceso a las aplicaciones a los sensores físicos subyacentes de un dispositivo móvil. Son dispositivos virtuales que proporcionan datos definidos por sensores.h , la capa de abstracción de hardware (HAL) del sensor.
¿Qué son los sensores de Android?
Los sensores de Android son dispositivos virtuales que proporcionan datos provenientes de un conjunto de sensores físicos: acelerómetros, giroscopios, magnetómetros, barómetro, sensores de humedad, presión, luz, proximidad y frecuencia cardíaca.
No se incluyen en la lista de dispositivos físicos que proporcionan datos la cámara, el sensor de huellas dactilares, el micrófono y la pantalla táctil. Estos dispositivos tienen su propio mecanismo de informes; la separación es arbitraria, pero en general, los sensores de Android proporcionan datos de menor ancho de banda. Por ejemplo, “100 Hz x 3 canales” para un acelerómetro frente a “25 Hz x 8 MP x 3 canales” para una cámara o “44 kHz x 1 canal” para un micrófono.
Android no define cómo se conectan los diferentes sensores físicos al sistema en chip (SoC).
- A menudo, los chips sensores se conectan al SoC a través de un concentrador de sensores , lo que permite cierto monitoreo y procesamiento de datos de bajo consumo.
- A menudo, el circuito interintegrado (I2C) o la interfaz periférica en serie (SPI) se utilizan como mecanismo de transporte.
- Para reducir el consumo de energía, algunas arquitecturas son jerárquicas, y se realiza un procesamiento mínimo en el circuito integrado específico de la aplicación (ASIC, como la detección de movimiento en el chip del acelerómetro), y se realiza más en un microcontrolador (como la detección de pasos en un concentrador de sensores). ).
- Depende del fabricante del dispositivo elegir una arquitectura basada en las características de precisión, potencia, precio y tamaño del paquete. Consulte Pila de sensores para obtener más información.
- Las capacidades de procesamiento por lotes son una consideración importante para la optimización de energía. Consulte Procesamiento por lotes para obtener más información.
Cada sensor de Android tiene un "tipo" que representa cómo se comporta el sensor y qué datos proporciona.
- Los tipos de sensores oficiales de Android se definen en sensores.h bajo los nombres SENSOR_TYPE_…
- La gran mayoría de sensores tienen un tipo de sensor oficial.
- Esos tipos están documentados en el SDK de Android.
- El comportamiento de los sensores con esos tipos se prueba en Android Compatibility Test Suite (CTS).
- Si un fabricante integra un nuevo tipo de sensor en un dispositivo Android, el fabricante puede definir su propio tipo temporal para hacer referencia a él.
- Esos tipos no están documentados, por lo que es poco probable que los desarrolladores de aplicaciones los usen, ya sea porque no los conocen o saben que rara vez están presentes (solo en algunos dispositivos de este fabricante específico).
- No son probados por CTS.
- Una vez que Android defina un tipo de sensor oficial para este tipo de sensor, los fabricantes deben dejar de usar su propio tipo temporal y usar el tipo oficial en su lugar. De esta forma, el sensor será utilizado por más desarrolladores de aplicaciones.
- La implementación de HAL informa la lista de todos los sensores presentes en el dispositivo.
- Puede haber varios sensores del mismo tipo. Por ejemplo, dos sensores de proximidad o dos acelerómetros.
- La gran mayoría de las aplicaciones solicitan un único sensor de un tipo determinado. Por ejemplo, una aplicación que solicite el acelerómetro predeterminado obtendrá el primer acelerómetro de la lista.
- Los sensores a menudo se definen por pares de activación y no activación , ambos sensores comparten el mismo tipo, pero difieren en su característica de activación.
Los sensores de Android proporcionan datos como una serie de eventos de sensores.
Cada evento contiene:
- un identificador para el sensor que lo generó
- la marca de tiempo en la que se detectó o midió el evento, según
SystemClock.elapsedRealtimeNanos()
- y algunos datos
La interpretación de los datos informados depende del tipo de sensor. Consulte las definiciones de tipo de sensor para obtener detalles sobre qué datos se informan para cada tipo de sensor.
Documentación existente
Dirigido a desarrolladores
- Descripción general
- Referencia SDK
- Stack Overflow y sitios web de tutoriales
- Debido a que a veces faltaba la documentación de los sensores, los desarrolladores recurrieron a sitios web de preguntas y respuestas como Stack Overflow para encontrar respuestas.
- También existen algunos sitios web de tutoriales, pero no cubren las funciones más recientes, como el procesamiento por lotes, el movimiento significativo y los vectores de rotación del juego.
- Las respuestas no siempre son correctas y muestran dónde se necesita más documentación.
Dirigido a fabricantes
- Descripción general
- Esta página de Sensores y sus subpáginas.
- Capa de abstracción de hardware (HAL)
- /plataforma/hardware/libhardware/+/main/include/hardware/sensors.h
- También conocido como “sensores.h”
- La fuente de la verdad. Primer documento que se actualiza cuando se desarrollan nuevas funciones.
- Android CDD (Documento de definición de compatibilidad)
- /compatibilidad/android-cdd.pdf
- Ver apartados relativos a sensores.
- El CDD es indulgente, por lo que cumplir con los requisitos del CDD no es suficiente para garantizar sensores de alta calidad.