![Android Sensors HAL का आइकॉन](https://source.android.google.cn/static/docs/core/interaction/sensors/images/ape_fwk_hal_sensors.png?authuser=3&hl=hi)
Android सेंसर, ऐप्लिकेशन को मोबाइल डिवाइस के फ़िज़िकल सेंसर का ऐक्सेस देते हैं. ये डेटा देने वाले वर्चुअल डिवाइस होते हैं. इनकी जानकारी, सेंसर हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) sensors.h से मिलती है.
Android सेंसर क्या होते हैं?
Android सेंसर, वर्चुअल डिवाइस होते हैं. ये डिवाइस, एक्सलरोमीटर, जाइरोस्कोप, मैग्नेटोमीटर, बैरोमीटर, नमी, दबाव, रोशनी, प्रॉक्सिमिटी, और हृदय की गति के सेंसर जैसे फ़िज़िकल सेंसर के सेट से डेटा देते हैं.
डेटा देने वाले फ़िज़िकल डिवाइसों की सूची में कैमरा, फ़िंगरप्रिंट सेंसर, माइक्रोफ़ोन, और टच स्क्रीन शामिल नहीं हैं. इन डिवाइसों के पास, डेटा भेजने का अपना तरीका होता है. इन डिवाइसों को अलग-अलग इसलिए रखा गया है, क्योंकि इनमें डेटा भेजने की सुविधाएं अलग-अलग होती हैं. हालांकि, आम तौर पर Android सेंसर कम बैंडविड्थ का डेटा देते हैं. उदाहरण के लिए, ऐक्सेलेरोमीटर के लिए “100hz x 3 चैनल” बनाम कैमरे के लिए “25hz x 8 एमपी x 3 चैनल” या माइक्रोफ़ोन के लिए “44kHz x 1 चैनल”.
Android यह तय नहीं करता कि अलग-अलग फ़िज़िकल सेंसर, चिप पर सिस्टम (SoC) से कैसे कनेक्ट होते हैं.
- आम तौर पर, सेंसर चिप को सेंसर हब के ज़रिए SoC से कनेक्ट किया जाता है. इससे, कम बिजली की खपत करके डेटा को मॉनिटर और प्रोसेस किया जा सकता है.
- आम तौर पर, ट्रांसपोर्ट मैकेनिज्म के तौर पर इंटर-इंटिग्रेटेड सर्किट (I2C) या सीरियल पेरिफ़रल इंटरफ़ेस (SPI) का इस्तेमाल किया जाता है.
- बिजली की खपत कम करने के लिए, कुछ आर्किटेक्चर हैरारकी वाले होते हैं. इनमें, ऐप्लिकेशन के हिसाब से इंटिग्रेटेड सर्किट (एएसआईसी - जैसे कि ऐक्सीलेरोमीटर चिप पर मोशन डिटेक्शन) में कुछ कम प्रोसेसिंग की जाती है. ज़्यादा प्रोसेसिंग, माइक्रोकंट्रोलर में की जाती है. जैसे, सेंसर हब में कदमों का पता लगाना.
- डिवाइस बनाने वाली कंपनी के पास, सटीक जानकारी, पावर, कीमत, और पैकेज के साइज़ की विशेषताओं के आधार पर कोई आर्किटेक्चर चुनने का विकल्प होता है. ज़्यादा जानकारी के लिए, सेंसर स्टैक देखें.
- एक साथ कई टास्क करने की सुविधा, बेहतर ऑप्टिमाइज़ेशन के लिए अहम है. ज़्यादा जानकारी के लिए, एक साथ कई प्रॉडक्ट अपलोड करना देखें.
हर Android सेंसर का एक “टाइप” होता है. इससे पता चलता है कि सेंसर कैसे काम करता है और वह कौनसा डेटा उपलब्ध कराता है.
- Android के आधिकारिक सेंसर के टाइप, sensors.h में SENSOR_TYPE_… के नाम से तय किए गए हैं
- ज़्यादातर सेंसर का एक आधिकारिक टाइप होता है.
- इन टाइप के बारे में Android SDK टूल में जानकारी दी गई है.
- इस तरह के सेंसर के व्यवहार की जांच, Android के साथ काम करने से जुड़े टेस्ट सुइट (सीटीएस) में की जाती है.
- अगर कोई मैन्युफ़ैक्चरर, Android डिवाइस में किसी नए तरह के सेंसर को इंटिग्रेट करता है, तो वह उसे रेफ़र करने के लिए, कुछ समय के लिए अपने हिसाब से टाइप तय कर सकता है.
- इन टाइप के बारे में कोई दस्तावेज़ नहीं है. इसलिए, ऐप्लिकेशन डेवलपर इनका इस्तेमाल शायद ही करें. ऐसा इसलिए, क्योंकि उन्हें इनके बारे में पता नहीं है या उन्हें पता है कि ये बहुत कम मौजूद होते हैं (सिर्फ़ इस मैन्युफ़ैक्चरर के कुछ डिवाइसों पर).
- इनकी जांच, सीटीएस नहीं करता.
- जब Android इस तरह के सेंसर के लिए आधिकारिक सेंसर टाइप तय कर देगा, तब मैन्युफ़ैक्चरर को अपने सेंसर के लिए, अस्थायी तौर पर तय किए गए टाइप का इस्तेमाल बंद करना होगा. इसके बजाय, उन्हें आधिकारिक टाइप का इस्तेमाल करना होगा. इससे, ज़्यादा ऐप्लिकेशन डेवलपर, सेंसर का इस्तेमाल कर पाएंगे.
- डिवाइस पर मौजूद सभी सेंसर की सूची, एचएएल लागू करने की प्रोसेस के ज़रिए दी जाती है.
- एक ही तरह के कई सेंसर हो सकते हैं. उदाहरण के लिए, दो प्रॉक्सिमिटी सेंसर या दो एक्सलरोमीटर.
- ज़्यादातर ऐप्लिकेशन, किसी एक तरह के सिर्फ़ एक सेंसर का अनुरोध करते हैं. उदाहरण के लिए, डिफ़ॉल्ट ऐक्सीलेरोमीटर का अनुरोध करने वाले ऐप्लिकेशन को सूची में पहला ऐक्सीलेरोमीटर मिलेगा.
- सेंसर को अक्सर वेक-अप और नॉन-वेक-अप पेयर के हिसाब से तय किया जाता है. दोनों सेंसर एक ही टाइप के होते हैं, लेकिन वेक-अप की सुविधा के हिसाब से अलग-अलग होते हैं.
Android सेंसर, सेंसर इवेंट की सीरीज़ के तौर पर डेटा उपलब्ध कराते हैं.
हर इवेंट में ये चीज़ें शामिल होती हैं:
- उस सेंसर का हैंडल जिसने इसे जनरेट किया
- वह टाइमस्टैंप जब इवेंट का पता चला या उसे मेज़र किया गया, जो इनके आधार पर तय होता है
SystemClock.elapsedRealtimeNanos()
- और कुछ डेटा
रिपोर्ट किए गए डेटा का विश्लेषण, सेंसर के टाइप पर निर्भर करता है. हर तरह के सेंसर के लिए किस तरह का डेटा रिपोर्ट किया जाता है, इस बारे में जानने के लिए सेंसर टाइप की परिभाषाएं देखें.
मौजूदा दस्तावेज़
डेवलपर के लिए
- खास जानकारी
- SDK टूल का रेफ़रंस
- Stack Overflow और ट्यूटोरियल वाली वेबसाइटें
- सेंसर के दस्तावेज़ कभी-कभी उपलब्ध नहीं होते थे. इसलिए, डेवलपर ने जवाब पाने के लिए, सवाल-जवाब वाली वेबसाइटों जैसे कि Stack Overflow का इस्तेमाल किया.
- ट्यूटोरियल वाली कुछ वेबसाइटें भी मौजूद हैं. हालांकि, इनमें बैचिंग, अहम मोशन, और गेम रोटेशन वेक्टर जैसी नई सुविधाओं के बारे में नहीं बताया गया है.
- वहां दिए गए जवाब हमेशा सही नहीं होते. साथ ही, इससे यह भी पता चलता है कि किन दस्तावेज़ों की ज़रूरत है.
मैन्युफ़ैक्चरर के लिए
- खास जानकारी
- यह सेंसर पेज और इसके सब-पेज.
- हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- इसे “sensors.h” भी कहा जाता है
- सटीक जानकारी का सोर्स. नई सुविधाएं उपलब्ध होने पर, सबसे पहले अपडेट किया जाने वाला दस्तावेज़.
- Android CDD (कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट)
- /compatibility/android-cdd.pdf
- सेंसर से जुड़े सेक्शन देखें.
- सीडीडी की शर्तें आसान हैं. इसलिए, अच्छी क्वालिटी के सेंसर उपलब्ध कराने के लिए, सीडीडी की शर्तों को पूरा करना ही काफ़ी नहीं है.