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 sensor.h , il sensore HAL (Hardware Abstraction Layer).

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, luminosità, prossimità e frequenza cardiaca.

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

Android non definisce come i diversi sensori fisici sono collegati al sistema su chip (SoC).

  • Spesso, i chip del sensore sono collegati al SoC tramite un hub del sensore , consentendo un monitoraggio e un'elaborazione dei dati a bassa potenza.
  • Spesso, come meccanismo di trasporto viene utilizzato Inter-Integrated Circuit (I2C) o Serial Peripheral Interface (SPI).
  • Per ridurre il consumo energetico, alcune architetture sono gerarchiche, con un'elaborazione minima eseguita nel circuito integrato specifico dell'applicazione (ASIC - come il rilevamento del movimento sul chip dell'accelerometro) e altro viene eseguito in un microcontrollore (come il rilevamento dei passi in un hub di sensori ).
  • Spetta al produttore del dispositivo scegliere un'architettura basata su caratteristiche di accuratezza, potenza, prezzo e dimensioni del pacchetto. Vedere Stack di sensori per ulteriori informazioni.
  • Le funzionalità di batching sono una considerazione importante per l'ottimizzazione energetica. Vedere Batch per ulteriori informazioni.

Ogni sensore Android ha un "tipo" che rappresenta come si comporta il sensore e quali dati fornisce.

  • I tipi di sensori Android ufficiali sono definiti in Sensors.h sotto i nomi SENSOR_TYPE_...
    • La stragrande maggioranza dei sensori ha un tipo di sensore ufficiale.
    • Questi tipi sono documentati nell'SDK di Android.
    • Il comportamento dei sensori con questi tipi viene testato in Android Compatibility Test Suite (CTS).
  • Se un produttore integra un nuovo tipo di sensore su un dispositivo Android, il produttore può definire il proprio tipo temporaneo per fare riferimento ad esso.
    • Questi tipi non sono documentati, quindi è improbabile che gli sviluppatori di applicazioni li utilizzino, perché non li conoscono o perché sanno che sono raramente presenti (solo su alcuni dispositivi di questo specifico produttore).
    • Non sono testati da 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 invece il tipo ufficiale. In questo modo, il sensore verrà utilizzato da più sviluppatori di applicazioni.
  • L'elenco di tutti i sensori presenti sul dispositivo è riportato dall'implementazione HAL.
    • Possono esserci 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 otterrà il primo accelerometro nell'elenco.
    • I sensori sono spesso definiti da coppie di attivazione e non attivazione , entrambi i sensori condividono lo stesso tipo, ma differiscono per la loro caratteristica di attivazione.

I sensori Android forniscono dati come una serie di eventi del sensore.

Ogni evento contiene:

L'interpretazione dei dati riportati dipende dal tipo di sensore. Vedere le definizioni del tipo di sensore per i dettagli sui dati riportati per ciascun tipo di sensore.

Documentazione esistente

Rivolto agli sviluppatori

Rivolto ai produttori

  • Panoramica
    • Questa pagina Sensori e le sue sottopagine.
  • Livello di astrazione hardware (HAL)
  • Android CDD (documento di definizione della compatibilità)
    • /compatibilità/android-cdd.pdf
    • Vedere le sezioni relative ai sensori.
    • Il CDD è indulgente, quindi soddisfare i requisiti CDD non è sufficiente per garantire sensori di alta qualità.