हार्डवेयर ऐब्स्ट्रैक्शन लेयर (HAL) की खास जानकारी

हार्डवेयर ऐब्स्ट्रक्शन लेयर (HAL) एक तरह की ऐब्स्ट्रक्शन लेयर होती है. इसमें हार्डवेयर वेंडर इसे लागू करते हैं. यह एक स्टैंडर्ड इंटरफ़ेस होता है. एचएएल, हार्डवेयर वेंडर को ऊंचे लेवल की लेयर में कोड में बदलाव किए बिना, निचले लेवल की डिवाइस की खास सुविधाएं लागू करने की अनुमति देता है.

ज़रूरी शर्तें

दस्तावेज़ के इस सेक्शन में इस्तेमाल किए गए शब्दों की परिभाषाओं की सूची यहां दी गई है:

Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल)
यह Java जैसी भाषा का इस्तेमाल, इंटरफ़ेस को इस तरह से तय करने के लिए किया जाता है जो इस्तेमाल की जा रही प्रोग्रामिंग भाषा से अलग हो. एआईडीएल का इस्तेमाल करके, एचएएल क्लाइंट और एचएएल की सेवाओं के बीच कम्यूनिकेशन किया जा सकता है.
बाइंडर वाला एचएएल
ऐसा एचएएल जो बाइंडर इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी) कॉल का इस्तेमाल करके अन्य प्रोसेस से संपर्क करता है. बाइंडराइज़्ड एचएएल, उनका इस्तेमाल करने वाले क्लाइंट से अलग प्रोसेस में चलते हैं. बाइंडर्ड एचएएल को सर्विस मैनेजर के साथ रजिस्टर किया जाता है, ताकि क्लाइंट इन सेवाओं का इस्तेमाल कर सकें. Android 8 और इसके बाद वाले वर्शन के लिए लिखे गए एचएएल को बाइंडिंग के हिसाब से रखा जाता है.
एचएएल क्लाइंट
एचएएल सेवा को ऐक्सेस करने की प्रोसेस.
HAL इंटरफ़ेस
एक जैसा इंटरफ़ेस, जिसका इस्तेमाल HAL क्लाइंट और सेवा, दोनों एक-दूसरे से बातचीत करने के लिए करते हैं.
एचएएल सेवा

हार्डवेयर के लिए खास कोड, जैसे कि वह कोड जो आपके किसी खास डिवाइस के कैमरे को ले जाता है. आपको अपने वेंडर पार्टीशन में टारगेट की गई रिलीज़ के लिए, कंपैटबिलिटी मैट्रिक्स में दिए गए सभी ज़रूरी एचएएल लागू करने होंगे. साथ काम करने वाले मैट्रिक्स के बारे में ज़्यादा जानने के लिए, कंपैटबिलिटी मैट्रिक्स देखें.

अपने हार्डवेयर की खास क्षमताओं के हिसाब से, नया HAL इंटरफ़ेस बनाया जा सकता है या एचएएल के इंटरफ़ेस को बढ़ाया जा सकता है.

हार्डवेयर इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एचआईडीएल)

वह भाषा जिसका इस्तेमाल इंटरफ़ेस को इस तरह से तय करने के लिए किया जाता है कि वह इस्तेमाल की जा रही प्रोग्रामिंग भाषा से अलग हो. HIDL, HAL क्लाइंट और HAL सेवाओं के बीच कम्यूनिकेशन की सुविधा देता है.

एक जैसी प्रोसेस (एसपी) एचएएल

रैप किए गए एचएएल का प्रतिबंधित सेट. सेट में मौजूद सदस्यता को Google कंट्रोल करता है. एसपी एचएएल में ये शामिल हैं:

  • स्टेबल C मैपर 5 एचएएल
  • OpenGL
  • वल्कन
  • android.hidl.memory@1.0 (Android सिस्टम से मिला, हमेशा रैप किया जाता है)
  • android.hardware.renderscript@1.0
रैप किया गया एचएएल

ऐसी HAL सेवा जो Android 8 से पहले बनाई गई थी, लेकिन उसे Android 8 और उसके बाद वाले वर्शन के साथ काम करने के लिए AIDL या HIDL रैपर के साथ रैप किया गया था.

आगे क्या करना है?