
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
- Przegląd
- Odniesienie do zestawu SDK
- Witryny z przepełnieniem stosu i samouczkami
- Ponieważ czasami brakowało dokumentacji czujników, programiści korzystali z witryn z pytaniami i odpowiedziami, takich jak Stack Overflow, aby znaleźć odpowiedzi.
- Istnieją również witryny z samouczkami, ale nie obejmują one najnowszych funkcji, takich jak przetwarzanie wsadowe, znaczące wektory ruchu i rotacji gier.
- Odpowiedzi tam podane nie zawsze są poprawne i pokazują, gdzie potrzebna jest dodatkowa dokumentacja.
Skierowany do producentów
- Przegląd
- Ta strona Sensory i jej podstrony.
- Warstwa abstrakcji sprzętu (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- Znany również jako „czujniki.h”
- Źródło prawdy. Pierwszy dokument do aktualizacji po opracowaniu nowych funkcji.
- Android CDD (dokument definicji zgodności)
- /kompatybilność/android-cdd.pdf
- Patrz sekcje dotyczące czujników.
- CDD jest łagodne, więc spełnienie wymagań CDD nie wystarczy, aby zapewnić wysoką jakość czujników.

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
- Przegląd
- Odniesienie do zestawu SDK
- Witryny z przepełnieniem stosu i samouczkami
- Ponieważ czasami brakowało dokumentacji czujników, programiści korzystali z witryn z pytaniami i odpowiedziami, takich jak Stack Overflow, aby znaleźć odpowiedzi.
- Istnieją również witryny z samouczkami, ale nie obejmują one najnowszych funkcji, takich jak przetwarzanie wsadowe, znaczące wektory ruchu i rotacji gier.
- Odpowiedzi tam podane nie zawsze są poprawne i pokazują, gdzie potrzebna jest dodatkowa dokumentacja.
Skierowany do producentów
- Przegląd
- Ta strona Sensory i jej podstrony.
- Warstwa abstrakcji sprzętu (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- Znany również jako „czujniki.h”
- Źródło prawdy. Pierwszy dokument do aktualizacji po opracowaniu nowych funkcji.
- Android CDD (dokument definicji zgodności)
- /kompatybilność/android-cdd.pdf
- Patrz sekcje dotyczące czujników.
- CDD jest łagodne, więc spełnienie wymagań CDD nie wystarczy, aby zapewnić wysoką jakość czujników.