Sensores

Ícone HAL de sensores do Android

Os sensores do Android fornecem aos aplicativos acesso aos sensores físicos subjacentes de um dispositivo móvel. Eles são dispositivos virtuais de fornecimento de dados definidos porsensors.h , a Camada de Abstração de Hardware (HAL) do sensor.

O que são sensores Android?

Os sensores Android são dispositivos virtuais que fornecem dados provenientes de um conjunto de sensores físicos: acelerômetros, giroscópios, magnetômetros, barômetros, sensores de umidade, pressão, luz, proximidade e frequência cardíaca.

Não incluídos na lista de dispositivos físicos que fornecem dados estão a câmera, o sensor de impressão digital, o microfone e a tela sensível ao toque. Esses dispositivos têm seu próprio mecanismo de relatório; a separação é arbitrária, mas, em geral, os sensores do Android fornecem dados de largura de banda mais baixos. Por exemplo, “100hz x 3 canais” para um acelerômetro versus “25hz x 8 MP x 3 canais” para uma câmera ou “44kHz x 1 canal” para um microfone.

O Android não define como os diferentes sensores físicos são conectados ao sistema no chip (SoC).

  • Freqüentemente, os chips sensores são conectados ao SoC por meio de um hub de sensor , permitindo algum monitoramento e processamento de dados de baixa potência.
  • Freqüentemente, o Circuito Interintegrado (I2C) ou a Interface Periférica Serial (SPI) é usado como mecanismo de transporte.
  • Para reduzir o consumo de energia, algumas arquiteturas são hierárquicas, com algum processamento mínimo sendo feito no circuito integrado específico do aplicativo (ASIC - como detecção de movimento no chip do acelerômetro) e mais é feito em um microcontrolador (como detecção de passos em um hub de sensor ).
  • Cabe ao fabricante do dispositivo escolher uma arquitetura com base nas características de precisão, potência, preço e tamanho do pacote. Consulte Pilha de sensores para obter mais informações.
  • Os recursos de processamento em lote são uma consideração importante para a otimização de energia. Consulte Lote para obter mais informações.

Cada sensor Android tem um “tipo” que representa como o sensor se comporta e quais dados ele fornece.

  • Os tipos de sensores Android oficiais são definidos emsensors.h sob os nomes SENSOR_TYPE_…
    • A grande maioria dos sensores tem um tipo de sensor oficial.
    • Esses tipos estão documentados no Android SDK.
    • O comportamento de sensores com esses tipos é testado no Android Compatibility Test Suite (CTS).
  • Se um fabricante integra um novo tipo de sensor em um dispositivo Android, o fabricante pode definir seu próprio tipo temporário para se referir a ele.
    • Esses tipos não são documentados, portanto, é improvável que os desenvolvedores de aplicativos os usem, seja porque não os conhecem ou porque raramente estão presentes (apenas em alguns dispositivos desse fabricante específico).
    • Eles não são testados pelo CTS.
    • Depois que o Android definir um tipo de sensor oficial para esse tipo de sensor, os fabricantes devem parar de usar seu próprio tipo temporário e usar o tipo oficial. Dessa forma, o sensor será utilizado por mais desenvolvedores de aplicativos.
  • A lista de todos os sensores presentes no dispositivo é relatada pela implementação HAL.
    • Pode haver vários sensores do mesmo tipo. Por exemplo, dois sensores de proximidade ou dois acelerômetros.
    • A grande maioria das aplicações requer apenas um único sensor de um determinado tipo. Por exemplo, um aplicativo que solicita o acelerômetro padrão obterá o primeiro acelerômetro da lista.
    • Os sensores geralmente são definidos por pares de despertar e não despertar , ambos os sensores compartilhando o mesmo tipo, mas diferindo por suas características de ativação.

Os sensores do Android fornecem dados como uma série de eventos de sensor.

Cada evento contém:

A interpretação dos dados relatados depende do tipo de sensor. Consulte as definições de tipo de sensor para obter detalhes sobre quais dados são relatados para cada tipo de sensor.

Documentação existente

Direcionado a desenvolvedores

Destinado a fabricantes

  • Visão geral
  • Camada de abstração de hardware (HAL)
  • Android CDD (Documento de Definição de Compatibilidade)
    • /compatibility/android-cdd.pdf
    • Consulte as seções relativas aos sensores.
    • O CDD é tolerante, portanto, satisfazer os requisitos do CDD não é suficiente para garantir sensores de alta qualidade.