센서

Android 센서 HAL 아이콘

Android 센서는 애플리케이션에 휴대기기의 기본 물리적 센서에 대한 액세스 권한을 부여합니다. Android 센서는 데이터를 제공하는 가상 기기이며, 센서 HAL(하드웨어 추상화 계층)인 sensors.h에 의해 정의됩니다.

Android 센서란?

Android 센서는 가속도계, 자이로스코프, 자기계, 기압계, 습도, 압력, 빛, 근접, 심박수 센서를 비롯한 여러 물리 센서에서 발생하는 데이터를 제공하는 가상 기기입니다.

데이터를 제공하는 실제 기기 목록에 포함되지 않은 항목으로는 카메라, 지문 센서, 마이크, 터치스크린 등이 있습니다. 이러한 기기에는 자체 보고 메커니즘이 있습니다. 구분은 임의적이지만 일반적으로 Android 센서는 저대역 데이터를 제공합니다. 예를 들어 가속도계는 '100hz x 3 채널', 카메라는 '25hz x 8 MP x 3 채널', 마이크는 '44kHz x 1 채널'입니다.

Android는 서로 다른 물리적 센서가 단일 칩 시스템(SoC)에 연결되는 방식을 정의하지 않습니다.

  • 센서 칩은 데이터의 어느 정도 저전력 모니터링 및 처리가 가능하도록 센서 허브를 통해 SoC에 연결되는 경우가 많습니다.
  • I2C(Inter-Integrated Circuit) 또는 SPI(직렬 주변기기 인터페이스)가 전송 메커니즘에 사용되는 경우가 많습니다.
  • 전력 소모를 줄이기 위해 일부 아키텍처는 계층 구조로 이루어집니다. 여기서는 최소 처리의 일부가 가속도계 칩의 모션 감지와 같은 ASIC(애플리케이션별 직접회로)에서 이루어지며 센서 허브의 단계 감지와 같은 마이크로 컨트롤러에서 더 많은 처리가 이루어집니다.
  • 정확도, 전력, 가격 및 포장 크기 특성을 토대로 아키텍처를 선택할지는 기기 제조업체에서 결정합니다. 자세한 내용은 센서 스택을 참조하세요.
  • 일괄 처리 기능은 전력 최적화와 관련된 중요한 고려사항입니다. 자세한 내용은 일괄 처리를 참조하세요.

각 Android 센서에는 센서 동작 방식과 센서를 통해 제공되는 데이터를 나타내는 '유형'이 있습니다.

  • 공식적인 Android 센서 유형은 SENSOR_TYPE_… 아래의 sensors.h에 정의되어 있습니다.
    • 대부분의 센서에는 공식 센서 유형이 있습니다.
    • 이러한 유형은 Android SDK에 문서화됩니다.
    • 이러한 유형을 가진 센서의 동작은 Android CTS(호환성 테스트 도구 모음)에서 테스트됩니다.
  • Android 기기에 새로운 유형의 센서를 통합한 제조업체는 자체적인 임시 유형을 정의하여 이를 참조할 수 있습니다.
    • 이러한 유형은 문서화되지 않으므로 애플리케이션 개발자가 사용할 가능성이 낮습니다. 이는 애플리케이션 개발자가 유형에 관해 모르거나 존재(이 구체적인 제조업체의 기기 중 일부에만)하는 경우가 드물다는 점을 알기 때문입니다.
    • 이러한 유형은 CTS로 테스트되지 않습니다.
    • Android가 이러한 센서 유형의 공식 센서 유형을 정의하면 제조업체는 자체적인 임시 유형의 사용을 멈추고 공식 유형을 사용해야 합니다. 이렇게 하면 더 많은 애플리케이션 개발자가 센서를 사용하게 됩니다.
  • 기기에 존재하는 모든 센서의 목록은 HAL 구현에 의해 보고됩니다.
    • 유형이 같은 여러 센서가 존재할 수 있으며, 2개의 근접 센서나 2개의 가속도계를 예로 들 수 있습니다.
    • 대부분의 애플리케이션은 지정된 유형으로 하나의 센서만 요청합니다. 예를 들어 기본 가속도계를 요청하는 애플리케이션은 목록의 첫 번째 가속도계를 얻게 됩니다.
    • 센서는 보통 wake-upnon-wake-up 쌍으로 정의됩니다. 두 센서는 같은 유형을 공유하지만 활성화 특성이 다릅니다.

Android 센서는 일련의 센서 이벤트로 데이터를 제공합니다.

이벤트에는 다음이 포함됩니다.

보고된 데이터의 해석은 센서 유형에 따라 다릅니다. 센서 유형별로 보고되는 데이터에 관한 자세한 내용은 센서 유형 정의를 참조하세요.

기존 문서

개발자 타겟팅

제조업체 타겟팅