2011-01-17 14 views
21

प्रिय सभी, मैं एंड्रॉइड के लिए एक नया दृश्य हूं। मैंने एंड्रॉइड सेवा के बारे में बहुत सारे लेख पढ़े थे, लेकिन मैं स्पष्ट रूप से समझ नहीं पा रहा हूं कि स्थानीय सेवा और रिमोट सेवा के बीच क्या अंतर है ("स्थानीय सेवा को दोपहर के भोजन की गतिविधि के समान प्रक्रिया में चलाने के लिए, दूरस्थ प्रक्रियाएं अपनी प्रक्रिया में चलती हैं" - एंडी डेवलपमेंट के लिए व्यस्त कोडर गाइड - मार्क एल मर्फी)।दूरस्थ सेवा बनाम। स्थानीय सेवा

  1. कृपया मुझे स्थानीय सेवा और दूरस्थ सेवा के बीच क्या अलग दिखाता है।
  2. स्थानीय सेवा का उपयोग करने का लाभ/नुकसान क्या है।
  3. रिमोट सेवा का उपयोग करने का लाभ/नुकसान क्या है।

धन्यवाद & सादर दाई बेटा

उत्तर

10

आपका वर्णन वास्तव में एक स्थानीय और दूरस्थ सेवा के बीच अंतर है। कहने के लिए और कुछ नहीं है। आप लगभग रिमोट सेवा का उपयोग नहीं करना चाहेंगे।

+0

प्रिय फल्मररी, आपके सहायक उत्तर के लिए धन्यवाद! –

+3

एक स्पष्ट/संक्षिप्त उत्तर प्रदान करने के लिए धन्यवाद! मैं इसके लिए इंटरनेट का पीछा कर रहा हूं क्योंकि यह एक महत्वपूर्ण डिजाइन निर्णय है और मैंने एंड्रॉइड रिमोट सेवाओं के लिए आईपीसी/एआईडीएल पर ट्यूटोरियल देखे हैं, लेकिन यह स्पष्ट नहीं है कि आप इसे क्यों अपनाना चाहते हैं। आपके उत्तर के साथ मेरा मानना ​​है कि अब यह प्रतीत होता है कि ये दूरस्थ सेवाएं केवल उपयोगी हैं यदि आप एकाधिक * अनुप्रयोग * एक सामान्य पृष्ठभूमि 'सेवा' पूछने की योजना बनाते हैं अन्यथा यह स्थानीय स्तर के रूप में सेवा करना सर्वोत्तम है और समय लेने वाले कार्यों के लिए थ्रेडिंग का उपयोग करना सबसे अच्छा है ... अगर मेरी समझ गलत है, तो मुझे सही करें अगर मैं कोडिंग शुरू करने वाला हूं :) – sradforth

+1

@sradforth: 'ये दूरस्थ सेवाएं केवल तभी उपयोगी होती हैं जब आप एक से अधिक अनुप्रयोगों को एक सामान्य पृष्ठभूमि' सेवा 'पूछने की योजना बनाते हैं। यह एक है रिमोट सेवा के लिए उपयोग के मामलों में से। दूसरा यह है कि यदि आपकी सेवा को शुरू करने की आवश्यकता है और पृष्ठभूमि में लगातार चल रहा है या लगातार चल रहा है (बुरा!), लेकिन आपका पूरा एप्लिकेशन बहुत सारे रैम लेता है, आप दूरस्थ रूप से सेवा चला सकते हैं ताकि आपकी प्रक्रिया मेमोरी मैप्स अलग हो जाएं। मुझे पता है कि शहरी चिकित्सा पुश सेवा इसका उपयोग करती है। लेकिन ईमानदारी से मुझे लगता है कि यह बहुत ही कम, बहुत ही कम "सर्वश्रेष्ठ" डिज़ाइन है। – Falmarri

2

दूरस्थ सेवा और स्थानीय सेवा के बीच का अंतर यह है: स्थानीय सेवा एक ही प्रक्रिया में चलती है और दूरस्थ सेवा विभिन्न प्रक्रियाओं में चलती है और विभिन्न अनुप्रयोगों में हो सकती है।

आप विभिन्न एप्लिकेशन में चल रहे रिमोट सेवा तक पहुंच सकते हैं लेकिन आप एक अलग एप्लिकेशन में चल रही स्थानीय सेवा तक नहीं पहुंच सकते हैं।

0

स्थानीय सेवा का अर्थ है कि यह उसी प्रक्रिया में संभवतः उसी प्रक्रिया में चलता है। आप विधि startService() विधि का उपयोग कर एक सेवा शुरू कर सकते हैं और आप stopService() विधि का उपयोग करके सेवा को रोक सकते हैं। ये दो जीवन चक्र विधियां या सेवा और दूरस्थ सेवा आम तौर पर एक अलग आवेदन में चलती हैं। आप एआईडीएल इंटरफेस लिखकर उन्हें एक्सेस कर सकते हैं और आप बाइंडर का उपयोग करके रिमोट सेवा से संलग्न कर सकते हैं।

-1

मुझे लगता है कि आप वास्तव में नए हैं, और मैं भी ^^। लेकिन मैं समझाता हूं और साथ ही मुझे पता है।

एक स्थानीय सेवा प्रक्रिया स्मृति के माध्यम से आपकी गतिविधि के साथ संचार करती है। यह तेज़ और सरल है। लेकिन आप स्थानीय सेवा के साथ प्लग-इन जैसे बहु-प्रक्रिया कार्यक्रम को लागू नहीं कर सकते हैं।

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

इसलिए यह तेज़ नहीं है क्योंकि अन्य प्रक्रियाओं के साथ फ़ाइल या यातायात को पढ़ना।

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