सेंसर

Android Sensors HAL का आइकॉन

Android सेंसर, ऐप्लिकेशन को मोबाइल डिवाइस के फ़िज़िकल सेंसर का ऐक्सेस देते हैं. ये डेटा उपलब्ध कराने वाले वर्चुअल डिवाइस होते हैं. इन्हें सेंसर के हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) sensors.h से तय किया जाता है.

Android सेंसर क्या होते हैं?

Android सेंसर, वर्चुअल डिवाइस होते हैं. ये कई तरह के फ़िज़िकल सेंसर से डेटा इकट्ठा करते हैं. जैसे, एक्सलरोमीटर, जाइरोस्कोप, मैग्नेटोमीटर, बैरोमीटर, नमी, दबाव, रोशनी, प्रॉक्सिमिटी, और दिल की धड़कन के सेंसर.

डेटा देने वाले फ़िज़िकल डिवाइसों की सूची में कैमरा, फ़िंगरप्रिंट सेंसर, माइक्रोफ़ोन, और टच स्क्रीन शामिल नहीं हैं. इन डिवाइसों में रिपोर्टिंग का अपना तरीका होता है. इन्हें अलग-अलग कैटगरी में बांटा गया है. हालांकि, ऐसा किसी तय नियम के हिसाब से नहीं किया जाता. आम तौर पर, Android सेंसर कम बैंडविड्थ वाला डेटा उपलब्ध कराते हैं. उदाहरण के लिए, ऐक्सिलरोमीटर के लिए “100 हर्ट्ज़ x 3 चैनल” बनाम कैमरे के लिए “25 हर्ट्ज़ x 8 एमपी x 3 चैनल” या माइक्रोफ़ोन के लिए “44 किलोहर्ट्ज़ x 1 चैनल”.

Android यह तय नहीं करता कि अलग-अलग फ़िज़िकल सेंसर, सिस्टम ऑन चिप (SoC) से कैसे कनेक्ट किए जाते हैं.

  • अक्सर, सेंसर चिप को सेंसर हब के ज़रिए SoC से कनेक्ट किया जाता है. इससे, कम पावर में डेटा को मॉनिटर और प्रोसेस किया जा सकता है.
  • अक्सर, इंटर-इंटीग्रेटेड सर्किट (I2C) या सीरियल पेरिफ़ेरल इंटरफ़ेस (एसपीआई) का इस्तेमाल, ट्रांसपोर्ट मैकेनिज़्म के तौर पर किया जाता है.
  • बिजली की खपत कम करने के लिए, कुछ आर्किटेक्चर हैरारकी वाले होते हैं. इनमें से कुछ में, ऐप्लिकेशन के हिसाब से इंटिग्रेटेड सर्किट (एएसआईसी - जैसे कि ऐक्सिलरोमीटर चिप पर मोशन डिटेक्शन) में कम से कम प्रोसेसिंग की जाती है. साथ ही, ज़्यादा प्रोसेसिंग माइक्रो कंट्रोलर (जैसे कि सेंसर हब में स्टेप डिटेक्शन) में की जाती है.
  • डिवाइस बनाने वाली कंपनी, सटीक जानकारी, पावर, कीमत, और पैकेज के साइज़ की विशेषताओं के आधार पर आर्किटेक्चर चुनती है. ज़्यादा जानकारी के लिए, सेंसर स्टैक देखें.
  • बैटचिंग की सुविधाएं, बिजली की खपत को ऑप्टिमाइज़ करने के लिए ज़रूरी हैं. ज़्यादा जानकारी के लिए, बैचिंग देखें.

हर Android सेंसर का एक “टाइप” होता है. इससे पता चलता है कि सेंसर कैसे काम करता है और वह किस तरह का डेटा उपलब्ध कराता है.

  • Android के आधिकारिक सेंसर टाइप, sensors.h में SENSOR_TYPE_… नाम से तय किए गए हैं
    • ज़्यादातर सेंसर के लिए, आधिकारिक तौर पर सेंसर टाइप तय किया गया है.
    • इन टाइप के बारे में Android SDK में बताया गया है.
    • Android Compatibility Test Suite (CTS) में, इन टाइप के सेंसर के व्यवहार की जांच की जाती है.
  • अगर कोई कंपनी, Android डिवाइस पर नया सेंसर जोड़ती है, तो कंपनी उसे कुछ समय के लिए उपलब्ध सेंसर के तौर पर सेट कर सकती है.
    • इन टाइप के बारे में कोई दस्तावेज़ उपलब्ध नहीं है. इसलिए, ऐप्लिकेशन डेवलपर शायद ही इनका इस्तेमाल करें. ऐसा इसलिए हो सकता है, क्योंकि उन्हें इनके बारे में जानकारी नहीं है या उन्हें पता है कि ये बहुत कम मौजूद होते हैं. ये सिर्फ़ इस खास मैन्युफ़ैक्चरर के कुछ डिवाइसों पर मौजूद होते हैं.
    • इनकी जांच CTS नहीं करता.
    • जब Android इस तरह के सेंसर के लिए आधिकारिक सेंसर टाइप तय कर लेता है, तो डिवाइस बनाने वाली कंपनियों को अपने अस्थायी टाइप का इस्तेमाल बंद कर देना चाहिए. इसके बजाय, उन्हें आधिकारिक टाइप का इस्तेमाल करना चाहिए. इस तरह, सेंसर का इस्तेमाल ज़्यादा ऐप्लिकेशन डेवलपर कर पाएंगे.
  • डिवाइस पर मौजूद सभी सेंसर की सूची, HAL लागू करने वाले व्यक्ति या कंपनी से मिलती है.
    • एक ही तरह के कई सेंसर हो सकते हैं. उदाहरण के लिए, दो प्रॉक्सिमिटी सेंसर या दो एक्सलरोमीटर.
    • ज़्यादातर ऐप्लिकेशन, किसी दिए गए टाइप का सिर्फ़ एक सेंसर इस्तेमाल करने का अनुरोध करते हैं. उदाहरण के लिए, डिफ़ॉल्ट ऐक्सिलरोमीटर का अनुरोध करने वाले ऐप्लिकेशन को सूची में मौजूद पहला ऐक्सिलरोमीटर मिलेगा.
    • सेंसर को अक्सर वेक-अप और नॉन-वेक-अप पेयर के हिसाब से तय किया जाता है. दोनों सेंसर एक ही टाइप के होते हैं, लेकिन वेक-अप की सुविधा के हिसाब से अलग-अलग होते हैं.

Android सेंसर, सेंसर इवेंट की सीरीज़ के तौर पर डेटा उपलब्ध कराते हैं.

हर इवेंट में ये शामिल होते हैं:

  • उस सेंसर का हैंडल जिसने इसे जनरेट किया है
  • वह टाइमस्टैंप जिस पर इवेंट का पता चला या उसे मेज़र किया गया. यह टाइमस्टैंप, SystemClock.elapsedRealtimeNanos() के आधार पर तय किया जाता है
  • और कुछ डेटा

रिपोर्ट किए गए डेटा की व्याख्या, सेंसर के टाइप पर निर्भर करती है. हर सेंसर टाइप के लिए किस तरह का डेटा रिपोर्ट किया जाता है, इस बारे में जानकारी पाने के लिए, सेंसर टाइप की परिभाषाएं देखें.

मौजूदा दस्तावेज़

डेवलपर के लिए

मैन्युफ़ैक्चरर के लिए

  • खास जानकारी
  • हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल)
    • /platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h
    • इसे “sensors.h” के नाम से भी जाना जाता है
    • भरोसेमंद सोर्स. नई सुविधाएं डेवलप होने पर, सबसे पहले इस दस्तावेज़ को अपडेट किया जाता है.
  • Android CDD (कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट)
    • /compatibility/android-cdd.pdf
    • सेंसर से जुड़े सेक्शन देखें.
    • सीडीडी की शर्तें आसान होती हैं. इसलिए, अच्छी क्वालिटी वाले सेंसर के लिए, सीडीडी की शर्तों को पूरा करना काफ़ी नहीं है.