2012-06-21 9 views
5

मैं एंड्रॉइड ऐप से "क्लाउड सेवा" के लगातार कनेक्शन का उपयोग करने पर विचार कर रहा हूं। यह हर समय पृष्ठभूमि सेवा (या ऐसा कुछ) में चलाएगा।एंड्रॉइड पर लगातार मोबाइल कनेक्शन के लिए सर्वश्रेष्ठ अभ्यास?

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

मैं की तरह सामान के बारे में सोच रहा हूँ:

  1. कैसे draining से बैटरी को रोकने के लिए,
  2. कैसे, आईपी पते परिवर्तनों को संभाल आदि?
+1

एंड्रॉइड दस्तावेज़ पढ़ने के लायक: http://developer.android.com/training/efficient-downloads/index।एचटीएमएल – pawelzieba

+4

आपको इसे अलग एंड्रॉइड और आईओएस सवालों में विभाजित करने की आवश्यकता है - दोनों पूरी तरह से अलग हैं (आईओएस पर आप केवल पृष्ठभूमि सेवा नहीं कर सकते हैं)। – Gruntcakes

+0

@MartinH प्रश्न केवल एंड्रॉइड के बारे में अपडेट किया गया है। –

उत्तर

10

यह वह उत्तर नहीं हो सकता है जिसे आप ढूंढ रहे हैं लेकिन मुझे लगता है कि आप अपने आर्किटेक्चर पर पुनर्विचार करना चाहेंगे।

चीजें आप एक मोबाइल प्लेटफॉर्म से बाहर की उम्मीद कर सकते

  • आपका आईपी पता बेतरतीब ढंग से नष्ट हो
  • बेतरतीब ढंग से
  • आपका भौतिक इंटरनेट कनेक्शन बदलने के लिए OS आपका कुछ भी उपयोगी और हत्या नहीं कर रही तय करने के लिए अपनी प्रक्रिया
  • कनेक्शन (किनारे के 3 जी के लिए 4 जी के लिए वाई-फाई से) बेतरतीब ढंग से बदल रहा है प्रकार है और इस तरह आपके आईपी बदलने के लिए

असल में आपके ऐप को कनेक्शन की हानि को संभालने में सक्षम होना चाहिए, क्योंकि इसकी लगभग गारंटी होने की गारंटी है।

कहा जा रहा है, यह वास्तविक समय की आपकी परिभाषा के आधार पर पूरी तरह से करने योग्य है। यदि आप लगातार जांच करने के इच्छुक हैं कि अभी भी एक व्यवहार्य कनेक्शन है, तो आप मिनटों की सीमा तक देरी कर सकते हैं। लेकिन यह बैटरी को हटा देगा और इसके बारे में आप इतना कुछ नहीं कर सकते हैं।

+4

पुनर्विचार वास्तुकला एक बुरा जवाब नहीं है :-) यह प्रश्न पोस्ट करने का पूरा बिंदु है, बस दूसरों के साथ विचार को झुकाव करने का प्रयास करें। अगर यह एक बुरा विचार है कि यह बहुत अच्छी प्रतिक्रिया है। धन्यवाद। हालांकि मैं अभी भी सर्वोत्तम प्रथाओं में रूचि रखता हूं यदि कोई वैसे भी करता है। सी 2 डीएम ऐसा करता है, इसलिए सवाल यह है कि वे यह कैसे करते हैं और उनके सर्वोत्तम अभ्यास क्या हैं? उपरोक्त टिप्पणियां देखने के लिए सहायक चीजें हैं। –

1

कुछ चीजें सिर्फ एक साथ अच्छी तरह से नहीं जाती हैं। "रीयल टाइम में पुश सूचनाएं" और "बैटरी निकालने से रोकें"। आपको निश्चित रूप से समझौता करना होगा।

मैं केवल कुछ एंड्रॉइड ऐप्स को आजमाने की सिफारिश कर सकता हूं जो एक्सएमपीपी का उपयोग करते हैं ताकि वे महसूस कर सकें कि वे लगातार कनेक्शन, आईपी एड्रेस चेंज और बैटरी खपत को कैसे संभालेंगे। यदि वे ओपन-सोर्स हैं तो आप कोड भी देख सकते हैं और इससे सीख सकते हैं। यक्सिम, प्रोजेक्ट मैक्स और बीम कुछ नाम हैं। हो सकता है कि आप XEP-0286: XMPP on Mobile Devices

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

+0

मोबाइल उपकरणों पर एक्सएमपीपी के बारे में महान लिंक। उस दस्तावेज़ में उल्लिखित कुछ अच्छे डिजाइन पैटर्न। संपीड़न जैसी चीजें, और यदि आपको भेजना है तो आपके पास जो कुछ भी है, उसके बाद बिजली के स्तर को उस बिंदु पर बढ़ाया जाएगा, आदि। –

+3

केवल कारण है कि मैं Google के सी 2 डीएम के विकल्पों को देख रहा हूं क्योंकि सी 2 डीएम को उपयोगकर्ता को इसकी आवश्यकता है डिवाइस पर एक Google खाता है। मैं एक पुश फीचर तैयार कर रहा हूं जिसे उत्पादित किया जाएगा और बैंकों को बेचा जाएगा। उन्हें समझाने के लिए कि उनके उपयोगकर्ताओं को Google खातों की आवश्यकता होगी कुछ हद तक अजीब बातचीत होगी। –

+1

मुझे पता है कि यह एक पुराना सवाल है लेकिन इसके लिए नियम जीसीएम स्विच के लिए थोड़ा बदल गए हैं। नए उपकरणों को अब Google खाते की आवश्यकता नहीं है। "यह Google सेवाओं के लिए मौजूदा कनेक्शन का उपयोग करता है। प्री-3.0 डिवाइसों के लिए, उपयोगकर्ताओं को अपने मोबाइल खाते को अपने मोबाइल डिवाइस पर सेट करने की आवश्यकता होती है। एंड्रॉइड 4.0.4 या उच्चतर वाले डिवाइसों पर एक Google खाता की आवश्यकता नहीं है।" - http://developer.android.com/google/gcm/gcm.html –