2011-12-21 16 views
35

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

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

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

  2. या, अलग-अलग एप्लिकेशन के साथ संवाद स्थापित

  3. सेवा की किस तरह वे डॉक्स

उत्तर

31

AIDL बाइंडर के लिए प्रयोग किया जाता है में बात कर रहे हैं (कारण है कि हम अन्य एप्लिकेशन के साथ संवाद करने की जरूरत है) करने के लिए। बाइंडर एक एंड्रॉइड सेवा पर/आरपीसी कॉल करने के लिए एक तंत्र है।

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

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

+0

ठीक है अब मुझे मिल गया है, धन्यवाद आदमी, उदाहरण के लिए मान लीजिए कि अगर मैं एंड्रॉइड इनबिल्ट फोन-डायलर को नियंत्रित करना चाहता हूं या ऐसे मामले में हो सकता है जहां मैं फोन पर अन्य सभी एप्लिकेशन पर ट्रैक रखना चाहता हूं तो मुझे उपयोग करने की ज़रूरत है एडीएल ... अगर मैं गलत हूं तो मुझे सही करें। –

+2

यह निर्भर करता है। कुछ जानकारी (संपर्कों की तरह) सामग्री प्रदाताओं के माध्यम से उपलब्ध हैं। आप एक सामग्री प्रदाता को एक सतत डेटा संग्रहण के रूप में देख सकते हैं जिसे विशिष्ट डेटा के लिए अनुप्रयोगों के बीच साझा किया जाता है। एआईडीएल/सेवाओं/बाध्यकारी संचार के लिए उपयोग किया जाता है। मेरा मतलब है, न केवल डेटा साझा करना, बल्कि अन्य घटकों के साथ बातचीत करना। एआईडीएल का उपयोग करके टेलीफोनी नियंत्रणों के लिए संभव है। – Jordi

+0

ठीक है धन्यवाद आदमी मुझे मिल गया !!! –

10

एआईडीएल एंड्रॉइड इंटरफेस परिभाषा भाषा है। यह मूल रूप से आपको आईपीसी कॉल करने की अनुमति देता है।

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

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

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

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

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

3

एक और असली दुनिया का उदाहरण है Google Play लाइसेंस एआईडीएल का उपयोग कर रहा है।

0

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

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

3 - सेवा की किस तरह वे डॉक्स में बात कर रहे हैं यह एक सेवा है जो एक प्रणाली के विभिन्न प्रक्रिया में चलता है, तो यह सेवा आपको भारतीय दंड संहिता (इंटर प्रक्रिया संचार) की जरूरत के लिए बाध्य करने के लिए किया जाता है, AIDL इस लागू करने के लिए प्रयोग किया जाता है।

संबंधित मुद्दे