हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल), एक तरह की ऐब्स्ट्रैक्शन लेयर होती है. इसमें हार्डवेयर वेंडर के लिए एक स्टैंडर्ड इंटरफ़ेस होता है, जिसे वे लागू कर सकते हैं. एचएएल की मदद से, हार्डवेयर वेंडर डिवाइस के हिसाब से लोअर-लेवल की सुविधाओं को लागू कर सकते हैं. इससे हायर-लेवल लेयर में मौजूद कोड पर कोई असर नहीं पड़ता और न ही उसमें कोई बदलाव होता है.
ज़रूरी शर्तें
दस्तावेज़ के इस सेक्शन में इस्तेमाल किए गए शब्दों की परिभाषाएं यहां दी गई हैं:
- Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल)
- यह Java जैसी भाषा है. इसका इस्तेमाल इंटरफ़ेस को इस तरह से तय करने के लिए किया जाता है कि यह इस्तेमाल की जा रही प्रोग्रामिंग भाषा से अलग हो. AIDL, HAL क्लाइंट और HAL सेवाओं के बीच कम्यूनिकेशन की अनुमति देता है.
- बाइंडराइज़्ड एचएएल
- यह एक एचएएल है, जो बाइंडर इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी) कॉल का इस्तेमाल करके, अन्य प्रोसेस के साथ कम्यूनिकेट करता है. Binderized HAL, उनका इस्तेमाल करने वाले क्लाइंट से अलग प्रोसेस में चलते हैं. Binderized HAL, सर्विस मैनेजर के साथ रजिस्टर होते हैं, ताकि क्लाइंट उनकी क्षमताओं को ऐक्सेस कर सकें. Android 8 और उसके बाद के वर्शन के लिए लिखे गए HAL, बाइंडर वाले होते हैं.
- HAL client
- वह प्रोसेस जो एचएएल सेवा को ऐक्सेस करती है.
- एचएएल इंटरफ़ेस
- यह एक सामान्य इंटरफ़ेस है. इसका इस्तेमाल HAL क्लाइंट और सेवा, दोनों एक-दूसरे से कम्यूनिकेट करने के लिए करते हैं.
- एचएएल सेवा
हार्डवेयर के लिए खास कोड, जैसे कि आपके डिवाइस के कैमरे से कम्यूनिकेट करने वाला कोड. आपको वेंडर पार्टीशन में टारगेट की गई रिलीज़ के लिए, कंपैटिबिलिटी मैट्रिक्स में दिए गए सभी ज़रूरी HAL लागू करने होंगे. कंपैटिबिलिटी मैट्रिक्स के बारे में ज़्यादा जानकारी के लिए, कंपैटिबिलिटी मैट्रिक्स देखें.
अपने हार्डवेयर की खास सुविधाओं के लिए, नया एचएएल इंटरफ़ेस बनाया जा सकता है या किसी एचएएल के इंटरफ़ेस को बढ़ाया जा सकता है.
- हार्डवेयर इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एचआईडीएल)
यह एक ऐसी भाषा है जिसका इस्तेमाल इंटरफ़ेस को इस तरह से तय करने के लिए किया जाता है कि वह इस्तेमाल की जा रही प्रोग्रामिंग लैंग्वेज से अलग हो. HIDL, HAL क्लाइंट और HAL सेवाओं के बीच कम्यूनिकेशन की सुविधा देता है.
- सेम प्रोसेस (एसपी) एचएएल
रैप किए गए एचएएल का प्रतिबंधित सेट. सेट की सदस्यता को Google कंट्रोल करता है. एसपी एचएएल में ये शामिल हैं:
- स्टेबल सी मैपर 5 एचएएल
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (Android सिस्टम से मिलता है, हमेशा रैप किया जाता है)
- android.hardware.renderscript@1.0
- रैप्ड एचएएल
ऐसी HAL सेवा जिसे Android 8 से पहले बनाया गया था. हालांकि, इसे Android 8 और इसके बाद के वर्शन के साथ काम करने के लिए, AIDL या HIDL रैपर में रैप किया गया है.
आगे क्या करना है?
- एचएएल सेवा को लागू करने का तरीका जानने के लिए, एचएएल के लिए एआईडीएल देखें.
- मौजूदा एचएएल बनाने या उसे बढ़ाने का तरीका जानने के लिए, अटैच किए गए एक्सटेंडेड इंटरफ़ेस पर जाएं.