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