android एआईडीएल उपयोग का उदाहरण




aidl (4)

एंड्रॉइड में AIDL को समझने के लिए, मुझे एक वास्तविक जीवन उदाहरण चाहिए, इसका मतलब है कि विकास के किस परिदृश्य में हमें AIDL का उपयोग करने की आवश्यकता है।

Android डॉक्स पढ़कर ... यह मुझे भ्रम में डाल देता है और इतने सारे सवाल, इसलिए मेरे लिए पूरे डॉक को पढ़ना मुश्किल है, क्या कोई मेरी मदद कर सकता है

  1. यह फोन के बाहर के साथ संवाद करने के लिए है।

  2. या विभिन्न ऐप्स के साथ संचार करने के लिए, (हमें अन्य ऐप्स के साथ संवाद करने की आवश्यकता क्यों है)

  3. डॉक्स में वे किस तरह की सेवा की बात कर रहे हैं


1 - यह फोन के बाहर के साथ संवाद करने के लिए है। ऐप के बाहर इसके साथ संवाद करना।

2 - या विभिन्न ऐप के साथ संवाद करने के लिए, (हमें अन्य ऐप्स के साथ संवाद करने की आवश्यकता क्यों है) जैसा कि @GodOnScooter ने उल्लेख किया है, जब आपका ऐप टेलीफोनी सेवा के साथ संचार करता है जो वास्तव में एक अन्य हिस्सा है।

3 - डॉक्स में वे किस तरह की सेवा की बात कर रहे हैं?

यह एक ऐसी सेवा है जो किसी सिस्टम की विभिन्न प्रक्रिया में चलती है, इस सेवा से जुड़ने के लिए आपको IPC (इंटर प्रोसेस कम्युनिकेशन) की आवश्यकता होती है, इसे लागू करने के लिए AIDL का उपयोग किया जाता है।


AIDL का उपयोग Binder के लिए किया जाता है। बाइंडर एक Android सेवा से / पर RPC कॉल करने के लिए एक तंत्र है।

AIDL का उपयोग कब करें? जब आपको किसी सेवा की आवश्यकता होगी। आपको एक सेवा की आवश्यकता कब है? यदि आप डेटा को साझा करना चाहते हैं और किसी अन्य एप्लिकेशन में कुछ नियंत्रित करना चाहते हैं, तो आपको इंटरफ़ेस के रूप में एआईडीएल का उपयोग करके एक सेवा की आवश्यकता है। (केवल डेटा साझा करते समय एक सामग्री प्रदाता का उपयोग किया जाता है)।

एमवीसी-पैटर्न में मॉडल रोल के रूप में सेवाओं का उपयोग आपके आवेदन के भीतर किया जा सकता है।


AIDL Android इंटरफ़ेस परिभाषा भाषा है। यह मूल रूप से आपको IPC कॉल करने की अनुमति देता है।

उपयोग: ऐसी स्थितियाँ हैं जहाँ एक प्रक्रिया को कुछ जानकारी प्राप्त करने के लिए दूसरे से बात करने की आवश्यकता होती है।

उदाहरण: प्रक्रिया ए को कॉल स्थिति बदलने के लिए कॉल स्थिति की जानकारी की आवश्यकता है (उदाहरण के लिए ऑडियो से वीडियो कॉल या इसके विपरीत)। आपको कुछ श्रोताओं से कॉल की स्थिति मिल सकती है लेकिन ऑडियो से वीडियो में कॉल प्रकार बदलने के लिए, प्रक्रिया ए को बदलने के लिए एक हुक की आवश्यकता होती है। यह "हुक" या कॉल बदलने का तरीका आम तौर पर टेलीफोनी कक्षाओं का हिस्सा होता है जो टेलीफोनी प्रक्रिया का हिस्सा होते हैं। इसलिए टेलीफोनी प्रक्रिया से ऐसी जानकारी प्राप्त करने के लिए, एक टेलीफोनी सेवा (जो कि एंड्रॉइड टेलीफोनी प्रक्रिया के एक भाग के रूप में चलती है) लिख सकता है, जो आपको कॉल प्रकार को क्वेरी या बदलने की अनुमति देगा। चूंकि प्रोसेस ए (क्लाइंट) यहां इस दूरस्थ सेवा का उपयोग कर रहा है, जो कॉल प्रकार को बदलने के लिए टेलीफोनी प्रक्रिया के साथ संचार करता है, इसे सेवा से बात करने के लिए एक इंटरफ़ेस की आवश्यकता होती है। चूंकि टेलीफोनी सेवा प्रदाता है, और प्रोसेस ए (क्लाइंट) उपयोगकर्ता है, उन्हें दोनों को एक इंटरफेस (प्रोटोकॉल) पर सहमत होने की आवश्यकता है जिसे वे समझ सकते हैं और पालन कर सकते हैं। इस तरह का एक इंटरफ़ेस एआईडीएल है , जो आपको टेलीफोनी प्रक्रिया के लिए (दूरस्थ सेवा के माध्यम से) बात करने और कुछ काम करने की अनुमति देता है।

सीधे शब्दों में कहें तो AIDL एक "एग्रीमेंट" क्लाइंट है, जो इसे सर्विस से बात करने के तरीके के बारे में बताता है। सेवा में स्वयं उस अनुबंध की एक प्रति होगी (क्योंकि यह ग्राहकों के लिए प्रकाशित है)। सेवा तब विवरणों को कार्यान्वित करेगी कि अनुरोध आने के बाद वह कैसे संभालता है या किसी से बात करते समय कहता है

तो प्रक्रिया A सेवा के माध्यम से कॉल बदलने का अनुरोध करती है, सेवा को अनुरोध मिलता है, यह टेलीफोनी प्रक्रिया (क्योंकि यह इसका हिस्सा है) से बात करता है और वीडियो में कॉल बदलता है।

ध्यान देने वाली एक महत्वपूर्ण बात यह है कि, एआईडीएल केवल बहुपरत पर्यावरण के लिए आवश्यक है। यदि आप मल्टीथ्रेडेड आर्च से निपटने की आवश्यकता नहीं है, तो आप बाइंडरों के साथ दूर कर सकते हैं।


एक और वास्तविक विश्व उदाहरण Google Play लाइसेंस AIDL का उपयोग कर रहा है।





aidl