एचएएल प्रकार

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

एंड्रॉइड 8.0 और उच्चतर में, निचले स्तर की परतों को एक नया, अधिक मॉड्यूलर आर्किटेक्चर अपनाने के लिए फिर से लिखा जाता है। Android 8.0 और उच्चतर पर चलने वाले उपकरणों को नीचे सूचीबद्ध कुछ अपवादों के साथ, HIDL में लिखे गए HALs का समर्थन करना चाहिए। इन एचएएल को बाइंडर या पासथ्रू किया जा सकता है। Android 11 में AIDL में लिखे HALs भी सपोर्ट करते हैं। सभी एआईडीएल एचएएल बाइंडराइज्ड हैं।

  • बाइंडराइज्ड एचएएल। एचएएल इंटरफ़ेस परिभाषा भाषा (एचआईडीएल) या एंड्रॉइड इंटरफ़ेस परिभाषा भाषा (एआईडीएल) में व्यक्त एचएएल। ये एचएएल एंड्रॉइड के पुराने संस्करणों में उपयोग किए जाने वाले पारंपरिक और विरासती एचएएल दोनों की जगह लेते हैं। बाइंडराइज्ड एचएएल में, एंड्रॉइड फ्रेमवर्क और एचएएल बाइंडर इंटर-प्रोसेस कम्युनिकेशन (आईपीसी) कॉल का उपयोग करके एक दूसरे के साथ संवाद करते हैं। Android 8.0 या बाद के संस्करण के साथ लॉन्च होने वाले सभी उपकरणों को केवल बाइंडराइज़्ड HALs का समर्थन करना चाहिए।
  • पासथ्रू एचएएल। एक एचआईडीएल-लिपटे पारंपरिक या विरासत एचएएल । ये एचएएल मौजूदा एचएएल को लपेटते हैं और एचएएल को बाइंडराइज्ड और समान-प्रोसेस (पासथ्रू) मोड में सेवा दे सकते हैं। Android 8.0 में अपग्रेड करने वाले डिवाइस पासथ्रू HALs का उपयोग कर सकते हैं।

एचएएल मोड आवश्यकताएँ

युक्ति निकासी बाइंडराइज़्ड
Android 8.0 . के साथ लॉन्च करें पासथ्रू एचएएल में सूचीबद्ध एचएएल पासथ्रू होना चाहिए। अन्य सभी एचएएल बाइंडराइज़्ड हैं (एचएएल सहित जो वेंडर एक्सटेंशन हैं)।
Android 8.0 . में अपग्रेड करें पासथ्रू एचएएल में सूचीबद्ध एचएएल पासथ्रू होना चाहिए। बाइंडराइज़्ड एचएएल में सूचीबद्ध एचएएल को बाइंडराइज़ किया जाना चाहिए।
विक्रेता छवि द्वारा प्रदान किए गए अन्य सभी एचएएल पासथ्रू या बाइंडराइज्ड मोड में हो सकते हैं। पूरी तरह से ट्रेबल-संगत डिवाइस में, इन सभी को बाइंडर किया जाना चाहिए।

बाइंडराइज़्ड एचएएल

एंड्रॉइड को सभी एंड्रॉइड डिवाइसों पर निम्नलिखित एचएएलएस को बाइंडर करने की आवश्यकता होती है, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:

  • android.hardware.biometrics.fingerprint@2.1fingerprintd डी को प्रतिस्थापित करता है जो अब एंड्रॉइड 8.0 में नहीं है।
  • android.hardware.configstore@1.0 । एंड्रॉइड 8.0 में नया।
  • android.hardware.dumpstate@1.0 । इस एचएएल द्वारा प्रदान किए गए मूल इंटरफ़ेस को चमकाया नहीं जा सकता था और इसे बदल दिया गया था। इस वजह से, किसी दिए गए डिवाइस पर dumpstate_board को फिर से लागू किया जाना चाहिए (यह एक वैकल्पिक एचएएल है)।
  • android.hardware.graphics.allocator@2.0 । Android 8.0 में बाइंडराइज़ होने की आवश्यकता है, इसलिए फ़ाइल डिस्क्रिप्टर को विश्वसनीय और अविश्वसनीय प्रक्रियाओं के बीच साझा करने की आवश्यकता नहीं है।
  • android.hardware.radio@1.0rild द्वारा प्रदान किए गए इंटरफ़ेस को प्रतिस्थापित करता है जो अपनी प्रक्रिया में रहता है।
  • android.hardware.usb@1.0 । एंड्रॉइड 8.0 में नया।
  • android.hardware.wifi@1.0 । Android 8.0 में नया, पुराने Wi-Fi HAL लाइब्रेरी को बदल देता है जिसे system_server में लोड किया गया था।
  • android.hardware.wifi.supplicant@1.0 । मौजूदा wpa_supplicant प्रक्रिया पर एक HIDL इंटरफ़ेस।

नोट : एंड्रॉइड निम्नलिखित एचआईडीएल इंटरफेस प्रदान करता है जो हमेशा बाइंडराइज्ड मोड में रहेगा: android.frameworks.* , android.system.* , and android.hidl.* (नीचे वर्णित android.hidl.memory@1.0 को छोड़कर)।

पासथ्रू एचएएल

एंड्रॉइड को सभी एंड्रॉइड डिवाइसों पर निम्नलिखित एचएएल को पासथ्रू मोड में होने की आवश्यकता होती है, भले ही वे लॉन्च डिवाइस हों या अपग्रेड डिवाइस हों:

  • android.hardware.graphics.mapper@1.0 । मेमोरी को उस प्रक्रिया में मैप करता है जिसमें वह रहता है।
  • android.hardware.renderscript@1.0 । एक ही प्रक्रिया में आइटम पास करता है ( openGL के बराबर)।

ऊपर सूचीबद्ध नहीं किए गए सभी एचएएल को लॉन्च डिवाइस के लिए बाइंडर किया जाना चाहिए।

समान-प्रक्रिया एचएएल

समान-प्रक्रिया एचएएल (एसपी-एचएएल) हमेशा उसी प्रक्रिया में खुलते हैं जिसमें उनका उपयोग किया जाता है। इनमें वे सभी एचएएल शामिल हैं जो एचआईडीएल में व्यक्त नहीं किए गए हैं और साथ ही कुछ ऐसे भी हैं जो बाइंडर नहीं हैं। SP-HAL सेट में सदस्यता बिना किसी अपवाद के केवल Google द्वारा नियंत्रित होती है।

एसपी-एचएएल में निम्नलिखित शामिल हैं:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (एंड्रॉइड सिस्टम द्वारा प्रदान किया गया, हमेशा पासथ्रू)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0

पारंपरिक और विरासती एचएएल

पारंपरिक एचएएल (एंड्रॉइड 8.0 में बहिष्कृत) इंटरफेस हैं जो एक विशिष्ट नामित और संस्करण वाले एप्लिकेशन बाइनरी इंटरफेस (एबीआई) के अनुरूप हैं। अधिकांश एंड्रॉइड सिस्टम इंटरफेस ( कैमरा , ऑडियो , सेंसर , आदि) पारंपरिक एचएएल के रूप में हैं, जिन्हें हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर के तहत परिभाषित किया गया है।

लीगेसी एचएएल (एंड्रॉइड 8.0 में भी बहिष्कृत) ऐसे इंटरफेस हैं जो पारंपरिक एचएएल से पहले के हैं। कुछ महत्वपूर्ण सबसिस्टम (वाई-फाई, रेडियो इंटरफेस लेयर और ब्लूटूथ) लीगेसी एचएएल हैं। जबकि विरासती एचएएल का वर्णन करने के लिए कोई समान या मानकीकृत तरीका नहीं है, एंड्रॉइड 8.0 से पहले की कोई भी चीज जो पारंपरिक एचएएल नहीं है वह एक विरासत एचएएल है। कुछ विरासती एचएएल के हिस्से libhardware_legacy में समाहित हैं, जबकि अन्य भाग पूरे कोडबेस में एक दूसरे से जुड़े हुए हैं।