Sensori

Icona HAL dei sensori Android

I sensori Android consentono alle applicazioni di accedere ai sensori fisici sottostanti di un dispositivo mobile. Sono dispositivi virtuali che forniscono dati definiti da sensors.h, l'HAL (Hardware Abstraction Layer) dei sensori.

Che cosa sono i sensori Android?

I sensori Android sono dispositivi virtuali che forniscono dati provenienti da un insieme di sensori fisici: accelerometri, giroscopi, magnetometri, barometri, sensori di umidità, pressione, luce, prossimità e frequenza cardiaca.

Non sono inclusi nell'elenco dei dispositivi fisici che forniscono dati la fotocamera, il sensore di impronte digitali, il microfono e il touch screen. Questi dispositivi hanno un proprio meccanismo di generazione di report; la separazione è arbitraria, ma in generale i sensori Android forniscono dati con una larghezza di banda inferiore. Ad esempio, "100 Hz x 3 canali" per un accelerometro rispetto a "25 Hz x 8 MP x 3 canali" per una fotocamera o "44 kHz x 1 canale" per un microfono.

Android non definisce la modalità di connessione dei diversi sensori fisici al SoC (System on Chip).

  • Spesso, i chip dei sensori sono collegati al SoC tramite un hub dei sensori, consentendo il monitoraggio e l'elaborazione a basso consumo energetico dei dati.
  • Spesso, come meccanismo di trasporto vengono utilizzati il circuito interintegrato (I2C) o l'interfaccia periferica seriale (SPI).
  • Per ridurre il consumo energetico, alcune architetture sono gerarchiche, con un'elaborazione minima eseguita nel circuito integrato specifico dell'applicazione (ASIC, ad esempio il rilevamento del movimento sul chip dell'accelerometro) e un'elaborazione maggiore eseguita in un microcontrollore (ad esempio il rilevamento dei passi in un hub dei sensori).
  • La scelta di un'architettura in base alle caratteristiche di precisione, potenza, prezzo e dimensioni del pacchetto spetta al produttore del dispositivo. Per maggiori informazioni, consulta la sezione Stack dei sensori.
  • Le funzionalità di batch sono un aspetto importante da considerare per l'ottimizzazione del consumo energetico energetico. Per maggiori informazioni, consulta la sezione Batching.

Ogni sensore Android ha un "tipo" che rappresenta il comportamento del sensore e i dati che fornisce.

  • Se un produttore integra un nuovo tipo di sensore su un dispositivo Android, può definire un proprio tipo temporaneo per farvi riferimento.
    • Questi tipi non sono documentati, quindi è improbabile che gli sviluppatori di applicazioni li utilizzino, perché non li conoscono o sanno che sono presenti raramente (solo su alcuni dispositivi di questo produttore specifico).
    • Non vengono testati dalla CTS.
    • Una volta che Android definisce un tipo di sensore ufficiale per questo tipo di sensore, i produttori devono smettere di utilizzare il proprio tipo temporaneo e utilizzare il tipo ufficiale invece. In questo modo, il sensore verrà utilizzato da un numero maggiore di sviluppatori di applicazioni.
  • L'elenco di tutti i sensori presenti sul dispositivo viene fornito dall'implementazione HAL implementazione.
    • Possono essere presenti più sensori dello stesso tipo. Ad esempio, due sensori di prossimità o due accelerometri.
    • La stragrande maggioranza delle applicazioni richiede un solo sensore di un determinato tipo. Ad esempio, un'applicazione che richiede l'accelerometro predefinito riceverà il primo accelerometro dell'elenco.
    • I sensori sono spesso definiti da coppie di sensori di riattivazione e non di riattivazione, entrambi i sensori condividono lo stesso tipo, ma differiscono per la caratteristica di riattivazione.

I sensori Android forniscono i dati come una serie di eventi dei sensori.

Ogni evento contiene:

L'interpretazione dei dati segnalati dipende dal tipo di sensore. Per i dettagli sui dati segnalati per ogni tipo di sensore, consulta le definizioni dei tipi di sensori.

Documentazione esistente

Per gli sviluppatori

Per i produttori