सेवा परिस्थितियों को परिभाषित करने के लिए AIDL का उपयोग किस परिस्थिति में सही निर्णय होगा (केवल service
कक्षा में विस्तार बनाने के बजाय)?एक सहायता आधारित सेवा का उपयोग कब करें?
उत्तर
केवल एक सेवा कक्षा का विस्तार करने से आपकी सेवा बाहरी इकाइयों को अपनी विधियों का पर्दाफाश करने की अनुमति नहीं देगी। यदि आप चाहते हैं कि आपकी एंड्रॉइड ऐप से बाहर निकलने वाली कोड द्वारा आपकी सेवा का खुलासा/उपयोग किया जाए, तो आपको इसके लिए एआईडीएल परिभाषित करना होगा। यह एआईडीएल साझा किया जाएगा और आपकी सेवा के लिए अनुबंध के रूप में गठित किया जाएगा। इसे http://developer.android.com/guide/components/aidl.html देखें।
यदि आप सेवा तक पहुंचने के लिए अपने आवेदन की प्रक्रिया के बाहर कक्षा चाहते हैं तो आपको एआईडीएल का उपयोग करने की आवश्यकता है। यदि आप केवल अपने आवेदन के अंदर से सेवा का उपयोग कर रहे हैं, तो आप local service का उपयोग कर सकते हैं।
1. सहायता सहायता आधारित सेवा का उपयोग करने के लिए।
कुछ लाभबैकएंड सेवा में अपने कोड के खंड हिस्सा द्वारा प्राप्त किया जा सकता:
- दसगुणा सामने के अंत और बैकएंड
- स्मृति/CPU गहन प्रसंस्करण बैकएंड सेवा, जीसी करने के लिए खड़ी की जा सकती है सेवा में सामने के अंत उपयोगकर्ता अनुभव को प्रभावित नहीं करेगा
- सेवा दुर्घटना एक ऐसी सेवा बनाने के लिए पूरे एपीपी
2.how नीचे लाने नहीं होगा
मैं एक अच्छा पुस्तकालय लिखा है, तो आप एक उदाहरण के रूप उल्लेख कर सकते हैं http://github.com/zhchang/hogwarts
AIDL
एंड्रॉयड इंटरफ़ेस परिभाषा भाषा (AIDL) डेवलपर्स एक प्रोग्रामिंग इंटरफेस को परिभाषित करने की अनुमति देता है कि क्लाइंट और सर्वर उपयोग करने के लिए इंटर-प्रोसेस कम्युनिकेशन (आईपीसी) का उपयोग करके एक दूसरे के साथ संवाद करें।
यह आलेख दिखाता है कि एंड्रॉइड में चल रही सेवा से कैसे कनेक्ट करें, और दूरस्थ/चल रही सेवा से डेटा कैसे पुनर्प्राप्त करें।
आईपीसी तंत्र का उदाहरण
Let RemoteService एक ग्राहक सेवा और RemoteServiceClient दूरस्थ सेवा के साथ संवाद करने के लिए एक गतिविधि हो सकता है।
एक सेवा गणित संचालन के बारे में जानकारी प्रदान करती है जैसे दिए गए दो पूर्णांक के लिए अतिरिक्त, घटाव और गुणा। सेवा क्या कर सकती है की कार्यक्षमता का पर्दाफाश करने के लिए, प्रोजेक्ट निर्देशिका में एक .aidl फ़ाइल बनाएं।
- 1. एंड्रॉइड: सेवा बनाम सिंगलटन का उपयोग कब करें?
- 2. सर्विसट्रैकर बनाम सेवा संदर्भ का उपयोग कब करें
- 3. निर्भरता इंजेक्शन बनाम सेवा लोकेटर का उपयोग कब करें
- 4. Android में थ्रेड/सेवा का उपयोग कब करें?
- 5. एक buffered चैनल का उपयोग कब करें?
- 6. एक शून्य पॉइंटर का उपयोग कब करें?
- 7. ट्यूपल का उपयोग कब और कब करें?
- 8. OSGi EventAdmin का उपयोग कब करें और कब नहीं?
- 9. दूरस्थ एंड्रॉइड सहायता सेवा का परीक्षण कैसे करें
- 10. बाइट सरणी का उपयोग कब करें, और स्ट्रीम का उपयोग कब करें?
- 11. QueueUserAPC() का उपयोग कब करें?
- 12. एक नया अपवाद प्रकार का उपयोग कब करें
- 13. ओपनसीएल का उपयोग कब करें?
- 14. फ़िल्टर_इनपुट का उपयोग कब करें()
- 15. ko.utils.unwrapObservable का उपयोग कब करें?
- 16. $ .extend ({...}) का उपयोग कब करें?
- 17. मल्टीथ्रेड का उपयोग कब करें?
- 18. Request.RegisterForDispose का उपयोग कब करें?
- 19. reinterpret_cast का उपयोग कब करें?
- 20. Mockito.verify() का उपयोग कब करें?
- 21. "हटाएं" का उपयोग कब करें?
- 22. कीवर्ड का उपयोग कब करें
- 23. स्ट्रिंगबिल्डर का उपयोग कब करें?
- 24. [MTAThread] का उपयोग कब करें?
- 25. "^" ऑपरेटर का उपयोग कब करें
- 26. का उपयोग कब करें hibernate.connection.provider_class
- 27. एंड्रॉइड में एचटीएमएल 5 का उपयोग कब करें? कब उपयोग नहीं करते?
- 28. उसी प्रारूप में टिप्पणी-आधारित सहायता प्रदर्शित करने के लिए गेट-हेल्प cmdlet का उपयोग करें
- 29. टैग/लेबल का उपयोग कब करें और शाखा कब करें?
- 30. आंशिक मोक्स का उपयोग कब करें?
लेकिन यह सोचते हैं अपने ऐप्लिकेशन, सेवा का उपयोग करता है वहाँ AIDL उपयोग करने के लिए कोई कारण नहीं है - यह सही है? – MalcomTucker
सही। लेकिन फिर आप उस मामले में एक सेवा क्यों बनाना चाहेंगे। –
मैंने अपने ऐप में एक बड़ा डाउनलोड करने के लिए एक स्थानीय सेवा बनाई। इस तरह से मुझे कुछ और नियंत्रण और सुरक्षा हो सकती है, फिर केवल एक असिनक कार्य जिसे हर बार मार दिया जा सकता है। जैसा कि मैं एक ऐसी गतिविधि को समझता हूं जो किसी गतिविधि से जुड़ा हुआ है, यदि संसाधन दुर्लभ हैं तो मारने की संभावना नहीं है। – Janusz