Czujniki

Ikona HAL czujników systemu Android

Czujniki systemu Android zapewniają aplikacjom dostęp do podstawowych czujników fizycznych urządzenia mobilnego. Są to wirtualne urządzenia dostarczające dane, zdefiniowane przez sensors.h , warstwę abstrakcji sprzętu czujnika (HAL).

Czym są czujniki Androida?

Czujniki Android to urządzenia wirtualne, które dostarczają danych pochodzących z zestawu czujników fizycznych: akcelerometrów, żyroskopów, magnetometrów, barometru, czujników wilgotności, ciśnienia, światła, zbliżeniowych i tętna.

Na liście fizycznych urządzeń dostarczających dane nie ma aparatu, czytnika linii papilarnych, mikrofonu i ekranu dotykowego. Urządzenia te mają własny mechanizm raportowania; separacja jest dowolna, ale generalnie czujniki Androida dostarczają dane o niższej przepustowości. Na przykład „100 Hz x 3 kanały” dla akcelerometru, „25 Hz x 8 MP x 3 kanały” dla kamery lub „44 kHz x 1 kanał” dla mikrofonu.

Android nie określa, w jaki sposób różne czujniki fizyczne są podłączone do systemu na chipie (SoC).

  • Często chipy czujników są podłączone do SoC za pośrednictwem koncentratora czujnika , co pozwala na monitorowanie i przetwarzanie danych przy niskim zużyciu energii.
  • Często jako mechanizm transportowy używany jest układ międzyscalony (I2C) lub szeregowy interfejs peryferyjny (SPI).
  • Aby zmniejszyć zużycie energii, niektóre architektury są hierarchiczne, z pewnym minimalnym przetwarzaniem wykonywanym w układzie scalonym specyficznym dla aplikacji (ASIC - jak wykrywanie ruchu na chipie akcelerometru), a więcej jest wykonywane w mikrokontrolerze (jak wykrywanie kroków w koncentratorze czujnika) ).
  • Wybór architektury w oparciu o dokładność, moc, cenę i wielkość opakowania należy do producenta urządzenia. Zobacz Stos czujników , aby uzyskać więcej informacji.
  • Możliwości przetwarzania wsadowego są ważnym elementem optymalizacji zasilania. Zobacz Przetwarzanie wsadowe , aby uzyskać więcej informacji.

Każdy czujnik systemu Android ma „typ” reprezentujący zachowanie czujnika i dane, które dostarcza.

  • Oficjalne typy czujników Androida są zdefiniowane w sensorach.h pod nazwami SENSOR_TYPE_…
    • Zdecydowana większość czujników ma oficjalny typ czujnika.
    • Te typy są udokumentowane w Android SDK.
    • Zachowanie czujników tego typu jest testowane w oprogramowaniu Android Compatibility Test Suite (CTS).
  • Jeśli producent integruje nowy rodzaj czujnika w urządzeniu z systemem Android, producent może zdefiniować własny tymczasowy typ, który będzie się do niego odnosił.
    • Te typy są nieudokumentowane, więc twórcy aplikacji raczej nie będą ich używać, ponieważ albo o nich nie wiedzą, albo wiedzą, że są rzadko obecne (tylko na niektórych urządzeniach tego konkretnego producenta).
    • Nie są testowane przez CTS.
    • Gdy Android zdefiniuje oficjalny typ czujnika dla tego rodzaju czujnika, producenci muszą przestać używać własnego typu tymczasowego i zamiast tego użyć typu oficjalnego. W ten sposób czujnik będzie używany przez większą liczbę twórców aplikacji.
  • Lista wszystkich czujników obecnych na urządzeniu jest raportowana przez implementację HAL.
    • Może być kilka czujników tego samego typu. Na przykład dwa czujniki zbliżeniowe lub dwa akcelerometry.
    • Zdecydowana większość aplikacji wymaga tylko jednego czujnika danego typu. Na przykład aplikacja żądająca domyślnego akcelerometru otrzyma pierwszy akcelerometr na liście.
    • Czujniki są często definiowane jako pary budzące i nie budzące , oba czujniki mają ten sam typ, ale różnią się charakterystyką budzenia.

Czujniki systemu Android dostarczają dane jako serię zdarzeń czujnika.

Każde wydarzenie zawiera:

  • uchwyt do czujnika, który go wygenerował
  • znacznik czasu, w którym zdarzenie zostało wykryte lub zmierzone, na podstawie SystemClock.elapsedRealtimeNanos()
  • i trochę danych

Interpretacja zgłaszanych danych zależy od typu czujnika. Zobacz definicje typów czujników , aby dowiedzieć się, jakie dane są raportowane dla każdego typu czujnika.

Istniejąca dokumentacja

Skierowany do deweloperów

Skierowany do producentów

, Ikona HAL czujników systemu Android

Czujniki systemu Android zapewniają aplikacjom dostęp do podstawowych czujników fizycznych urządzenia mobilnego. Są to wirtualne urządzenia dostarczające dane, zdefiniowane przez sensors.h , warstwę abstrakcji sprzętu czujnika (HAL).

Czym są czujniki Androida?

Czujniki Android to urządzenia wirtualne, które dostarczają danych pochodzących z zestawu czujników fizycznych: akcelerometrów, żyroskopów, magnetometrów, barometru, czujników wilgotności, ciśnienia, światła, zbliżeniowych i tętna.

Na liście fizycznych urządzeń dostarczających dane nie ma aparatu, czytnika linii papilarnych, mikrofonu i ekranu dotykowego. Urządzenia te mają własny mechanizm raportowania; separacja jest dowolna, ale generalnie czujniki Androida dostarczają dane o niższej przepustowości. Na przykład „100 Hz x 3 kanały” dla akcelerometru, „25 Hz x 8 MP x 3 kanały” dla kamery lub „44 kHz x 1 kanał” dla mikrofonu.

Android nie określa, w jaki sposób różne czujniki fizyczne są podłączone do systemu na chipie (SoC).

  • Często chipy czujników są podłączone do SoC za pośrednictwem koncentratora czujnika , co pozwala na monitorowanie i przetwarzanie danych przy niskim zużyciu energii.
  • Często jako mechanizm transportowy używany jest układ międzyscalony (I2C) lub szeregowy interfejs peryferyjny (SPI).
  • Aby zmniejszyć zużycie energii, niektóre architektury są hierarchiczne, z pewnym minimalnym przetwarzaniem wykonywanym w układzie scalonym specyficznym dla aplikacji (ASIC - jak wykrywanie ruchu na chipie akcelerometru), a więcej jest wykonywane w mikrokontrolerze (jak wykrywanie kroków w koncentratorze czujnika) ).
  • Wybór architektury w oparciu o dokładność, moc, cenę i wielkość opakowania należy do producenta urządzenia. Zobacz Stos czujników , aby uzyskać więcej informacji.
  • Możliwości przetwarzania wsadowego są ważnym elementem optymalizacji zasilania. Zobacz Przetwarzanie wsadowe , aby uzyskać więcej informacji.

Każdy czujnik systemu Android ma „typ” reprezentujący zachowanie czujnika i dane, które dostarcza.

  • Oficjalne typy czujników Androida są zdefiniowane w sensorach.h pod nazwami SENSOR_TYPE_…
    • Zdecydowana większość czujników ma oficjalny typ czujnika.
    • Te typy są udokumentowane w Android SDK.
    • Zachowanie czujników tego typu jest testowane w oprogramowaniu Android Compatibility Test Suite (CTS).
  • Jeśli producent integruje nowy rodzaj czujnika w urządzeniu z systemem Android, producent może zdefiniować własny tymczasowy typ, który będzie się do niego odnosił.
    • Te typy są nieudokumentowane, więc twórcy aplikacji raczej nie będą ich używać, ponieważ albo o nich nie wiedzą, albo wiedzą, że są rzadko obecne (tylko na niektórych urządzeniach tego konkretnego producenta).
    • Nie są testowane przez CTS.
    • Gdy Android zdefiniuje oficjalny typ czujnika dla tego rodzaju czujnika, producenci muszą przestać używać własnego typu tymczasowego i zamiast tego użyć typu oficjalnego. W ten sposób czujnik będzie używany przez większą liczbę twórców aplikacji.
  • Lista wszystkich czujników obecnych na urządzeniu jest raportowana przez implementację HAL.
    • Może być kilka czujników tego samego typu. Na przykład dwa czujniki zbliżeniowe lub dwa akcelerometry.
    • Zdecydowana większość aplikacji wymaga tylko jednego czujnika danego typu. Na przykład aplikacja żądająca domyślnego akcelerometru otrzyma pierwszy akcelerometr na liście.
    • Czujniki są często definiowane jako pary budzące i nie budzące , oba czujniki mają ten sam typ, ale różnią się charakterystyką budzenia.

Czujniki systemu Android dostarczają dane jako serię zdarzeń czujnika.

Każde wydarzenie zawiera:

  • uchwyt do czujnika, który go wygenerował
  • znacznik czasu, w którym zdarzenie zostało wykryte lub zmierzone, na podstawie SystemClock.elapsedRealtimeNanos()
  • i trochę danych

Interpretacja zgłaszanych danych zależy od typu czujnika. Zobacz definicje typów czujników , aby dowiedzieć się, jakie dane są raportowane dla każdego typu czujnika.

Istniejąca dokumentacja

Skierowany do deweloperów

Skierowany do producentów