अभी भी बहुत से लोग हैं जो नहीं जानते कि iOS में मल्टीटास्किंग कैसे काम करती है। हालाँकि, आरंभ करने के लिए, यह बताना आवश्यक है कि यह वास्तविक मल्टीटास्किंग नहीं है, बल्कि एक बहुत ही स्मार्ट समाधान है जो सिस्टम या उपयोगकर्ता पर बोझ नहीं डालता है।
अक्सर यह अंधविश्वास सुनने को मिलता है कि iOS में बैकग्राउंड में चलने वाले ऐप्स ऑपरेटिंग मेमोरी को भर देते हैं, जिससे सिस्टम धीमा हो जाता है और बैटरी लाइफ खराब हो जाती है, इसलिए यूजर को इन्हें मैन्युअल रूप से बंद कर देना चाहिए। मल्टीटास्किंग बार में वास्तव में सभी चल रही पृष्ठभूमि प्रक्रियाओं की सूची नहीं होती है, बल्कि केवल सबसे हाल ही में लॉन्च किए गए एप्लिकेशन होते हैं। इसलिए उपयोगकर्ता को कुछ मामलों को छोड़कर पृष्ठभूमि में चल रही प्रक्रियाओं के बारे में चिंता करने की ज़रूरत नहीं है। जब आप होम बटन दबाते हैं, तो एप्लिकेशन आमतौर पर निष्क्रिय हो जाता है या बंद हो जाता है, जिससे यह प्रोसेसर या बैटरी को लोड नहीं करता है और यदि आवश्यक हो तो आवश्यक मेमोरी को मुक्त कर देता है।
इसलिए जब आपके पास दर्जनों प्रक्रियाएं चल रही हों तो यह पूर्ण मल्टीटास्किंग नहीं है। केवल एक एप्लिकेशन हमेशा अग्रभूमि में चल रहा होता है, जिसे आवश्यकता पड़ने पर रोक दिया जाता है या पूरी तरह से बंद कर दिया जाता है। पृष्ठभूमि में केवल कुछ ही द्वितीयक प्रक्रियाएँ चलती हैं। यही कारण है कि आपको आईओएस पर शायद ही कभी एप्लिकेशन क्रैश का सामना करना पड़ेगा, उदाहरण के लिए एंड्रॉइड रनिंग एप्लिकेशन से अभिभूत है जिसका उपयोगकर्ता को ध्यान रखना पड़ता है। एक ओर, यह डिवाइस के साथ काम करना अप्रिय बनाता है, और दूसरी ओर, यह, उदाहरण के लिए, धीमी गति से स्टार्टअप और अनुप्रयोगों के बीच संक्रमण का कारण बनता है।
एप्लिकेशन रनटाइम प्रकार
आपके iOS डिवाइस पर एप्लिकेशन इन 5 स्थितियों में से एक में है:
- दौड़ना: एप्लिकेशन प्रारंभ हो गया है और अग्रभूमि में चल रहा है
- पृष्ठभूमि: यह अभी भी चल रहा है लेकिन पृष्ठभूमि में चल रहा है (हम अन्य एप्लिकेशन का उपयोग कर सकते हैं)
- निलंबित: अभी भी RAM का उपयोग हो रहा है लेकिन चल नहीं रहा है
- निष्क्रिय: एप्लिकेशन चल रहा है लेकिन अप्रत्यक्ष आदेश (उदाहरण के लिए, जब आप एप्लिकेशन चलने के साथ डिवाइस को लॉक करते हैं)
- चल नहीं रहा: एप्लिकेशन समाप्त हो गया है या प्रारंभ नहीं हुआ है
भ्रम तब होता है जब ऐप बैकग्राउंड में चला जाता है ताकि परेशान न हो। जब आप होम बटन दबाते हैं या एप्लिकेशन (आईपैड) को बंद करने के लिए जेस्चर का उपयोग करते हैं, तो एप्लिकेशन पृष्ठभूमि में चला जाता है। अधिकांश ऐप्स सेकंड के भीतर निलंबित हो जाते हैं (वे iDevice की रैम में संग्रहीत होते हैं ताकि उन्हें जल्दी से लॉन्च किया जा सके, वे प्रोसेसर पर ज्यादा लोड नहीं डालते हैं और इस प्रकार बैटरी जीवन बचाते हैं) आप सोच सकते हैं कि यदि कोई ऐप मेमोरी का उपयोग करना जारी रखता है, तो आपके पास है इसे मुक्त करने के लिए इसे मैन्युअल रूप से हटाएं। लेकिन आपको ऐसा करने की ज़रूरत नहीं है, क्योंकि iOS आपके लिए यह करेगा। यदि आपके पास पृष्ठभूमि में कोई मांगलिक एप्लिकेशन निलंबित है, जैसे कि कोई गेम जो बड़ी मात्रा में रैम का उपयोग करता है, तो आवश्यकता पड़ने पर iOS स्वचालित रूप से इसे मेमोरी से हटा देगा, और आप एप्लिकेशन आइकन को टैप करके इसे पुनः आरंभ कर सकते हैं।
इनमें से कोई भी स्थिति मल्टीटास्किंग बार में प्रतिबिंबित नहीं होती है, बार केवल हाल ही में लॉन्च किए गए ऐप्स की सूची दिखाता है, भले ही ऐप बंद हो, रोका गया हो, या पृष्ठभूमि में चल रहा हो। आप यह भी देख सकते हैं कि जो एप्लिकेशन वर्तमान में चल रहा है वह मल्टीटास्किंग पैनल में दिखाई नहीं देता है
नेपथ्य कार्य
आम तौर पर, जब आप होम बटन दबाते हैं, तो एप्लिकेशन पृष्ठभूमि में चलेगा, और यदि आप इसका उपयोग नहीं कर रहे हैं, तो यह स्वचालित रूप से पांच सेकंड के भीतर रुक जाएगा। उदाहरण के लिए, यदि आप पॉडकास्ट डाउनलोड कर रहे हैं, तो सिस्टम इसका मूल्यांकन एक चालू एप्लिकेशन के रूप में करता है और समाप्ति में दस मिनट की देरी करता है। अधिकतम दस मिनट के बाद, प्रक्रिया मेमोरी से रिलीज़ हो जाती है। संक्षेप में, आपको होम बटन दबाकर अपने डाउनलोड को बाधित करने की चिंता करने की ज़रूरत नहीं है, अगर इसे पूरा करने में 10 मिनट से अधिक समय नहीं लगता है।
पृष्ठभूमि में अनिश्चितकालीन चल रहा है
निष्क्रियता के मामले में, सिस्टम पांच सेकंड के भीतर एप्लिकेशन को समाप्त कर देता है, और डाउनलोड के मामले में, समाप्ति में दस मिनट की देरी होती है। हालाँकि, बहुत कम संख्या में ऐसे एप्लिकेशन हैं जिन्हें पृष्ठभूमि में चलाने की आवश्यकता होती है। यहां ऐसे ऐप्स के कुछ उदाहरण दिए गए हैं जो iOS 5 में बैकग्राउंड में अनिश्चित काल तक चल सकते हैं:
- ऐसे एप्लिकेशन जो ध्वनि बजाते हैं और कुछ देर के लिए बाधित होने चाहिए (फोन कॉल के दौरान संगीत रोकना, आदि),
- एप्लिकेशन जो आपके स्थान को ट्रैक करते हैं (नेविगेशन सॉफ़्टवेयर),
- वीओआईपी कॉल प्राप्त करने वाले एप्लिकेशन, उदाहरण के लिए यदि आप स्काइप का उपयोग करते हैं, तो एप्लिकेशन पृष्ठभूमि में होने पर भी आप कॉल प्राप्त कर सकते हैं,
- स्वचालित डाउनलोड (जैसे अख़बार स्टैंड)।
यदि सभी एप्लिकेशन अब कोई कार्य नहीं कर रहे हैं (जैसे पृष्ठभूमि डाउनलोड) तो उन्हें बंद कर देना चाहिए। हालाँकि, ऐसे अपवाद हैं जो पृष्ठभूमि में लगातार चलते रहते हैं, जैसे कि मूल मेल ऐप। यदि वे पृष्ठभूमि में चल रहे हैं, तो वे मेमोरी, सीपीयू उपयोग या बैटरी जीवन को कम कर देते हैं
जिन ऐप्स को पृष्ठभूमि में अनिश्चित काल तक चलने की अनुमति है, वे चलते समय संगीत चलाने से लेकर नए पॉडकास्ट एपिसोड डाउनलोड करने तक कुछ भी कर सकते हैं।
जैसा कि मैंने पहले बताया, यूजर को कभी भी बैकग्राउंड में चल रहे ऐप्स को बंद करने की जरूरत नहीं पड़ती। इसका एकमात्र अपवाद तब होता है जब पृष्ठभूमि में चल रहा कोई ऐप क्रैश हो जाता है या ठीक से नींद से नहीं उठता है। इसके बाद उपयोगकर्ता मल्टीटास्किंग बार में एप्लिकेशन को मैन्युअल रूप से बंद कर सकता है, लेकिन ऐसा कम ही होता है।
इसलिए, सामान्य तौर पर, आपको पृष्ठभूमि प्रक्रियाओं को प्रबंधित करने की आवश्यकता नहीं है क्योंकि सिस्टम स्वयं उनकी देखभाल करेगा। इसीलिए iOS इतना ताज़ा और तेज़ सिस्टम है।
एक डेवलपर के दृष्टिकोण से
एप्लिकेशन मल्टीटास्किंग के ढांचे के भीतर कुल छह अलग-अलग राज्यों के साथ प्रतिक्रिया कर सकता है:
1. एप्लिकेशनविलरिजाइनएक्टिव
अनुवाद में, इस स्थिति का अर्थ है कि एप्लिकेशन भविष्य में सक्रिय एप्लिकेशन (यानी, अग्रभूमि में एप्लिकेशन) के रूप में इस्तीफा दे देगा (कुछ मिलीसेकंड का मामला)। ऐसा होता है, उदाहरण के लिए, एप्लिकेशन का उपयोग करते समय कॉल प्राप्त करते समय, लेकिन साथ ही, यह विधि एप्लिकेशन के पृष्ठभूमि में जाने से पहले भी इस स्थिति का कारण बनती है, इसलिए आपको इन परिवर्तनों को ध्यान में रखना होगा। यह विधि इसलिए भी उपयुक्त है कि, उदाहरण के लिए, इनकमिंग कॉल आने पर यह अपने द्वारा की जाने वाली सभी गतिविधियों को निलंबित कर देती है और कॉल समाप्त होने तक प्रतीक्षा करती है।
2. एप्लिकेशनडिडएंटरबैकग्राउंड
स्थिति इंगित करती है कि एप्लिकेशन पृष्ठभूमि में चला गया है। डेवलपर्स को इस पद्धति का उपयोग उन सभी प्रक्रियाओं को निलंबित करने के लिए करना चाहिए जिन्हें पृष्ठभूमि में चलाने की आवश्यकता नहीं है और अप्रयुक्त डेटा और अन्य प्रक्रियाओं की मेमोरी को साफ़ करना चाहिए, जैसे कि समय सीमा समाप्त करना, मेमोरी से लोड की गई छवियों को साफ़ करना जिनकी आवश्यकता नहीं होगी, या बंद करना सर्वर के साथ कनेक्शन, जब तक कि एप्लिकेशन के लिए पृष्ठभूमि में कनेक्शन पूरा करना महत्वपूर्ण न हो। जब एप्लिकेशन में विधि को कॉल किया जाता है, तो इसका उपयोग मूल रूप से एप्लिकेशन को पूरी तरह से निलंबित करने के लिए किया जाना चाहिए यदि इसके कुछ हिस्से को पृष्ठभूमि में चलाने की आवश्यकता नहीं है।
3. एप्लिकेशनविलएंटरफोरग्राउंड
यह स्थिति पहली स्थिति के विपरीत है, जहां एप्लिकेशन सक्रिय स्थिति से इस्तीफा दे देगा। स्थिति का सीधा सा मतलब है कि स्लीपिंग ऐप पृष्ठभूमि से फिर से शुरू हो जाएगा और अगले कुछ मिलीसेकंड के भीतर अग्रभूमि में दिखाई देगा। डेवलपर्स को किसी भी प्रक्रिया को फिर से शुरू करने के लिए इस पद्धति का उपयोग करना चाहिए जो एप्लिकेशन के पृष्ठभूमि में रहने के दौरान निष्क्रिय थी। सर्वर से कनेक्शन फिर से स्थापित किया जाना चाहिए, टाइमर रीसेट किया जाना चाहिए, छवियों और डेटा को मेमोरी में लोड किया जाना चाहिए, और अन्य आवश्यक प्रक्रियाएं उपयोगकर्ता द्वारा लोड किए गए एप्लिकेशन को दोबारा देखने से ठीक पहले फिर से शुरू हो सकती हैं।
4. एप्लिकेशनडिडबीकमएक्टिव
राज्य इंगित करता है कि एप्लिकेशन अग्रभूमि पर पुनर्स्थापित होने के बाद सक्रिय हो गया है। यह एक ऐसी विधि है जिसका उपयोग उपयोगकर्ता इंटरफ़ेस में अतिरिक्त समायोजन करने या यूआई को उसकी मूल स्थिति में पुनर्स्थापित करने आदि के लिए किया जा सकता है। यह वास्तव में उस समय होता है जब उपयोगकर्ता पहले से ही डिस्प्ले पर एप्लिकेशन देखता है, इसलिए यह आवश्यक है सावधानी से निर्धारित करें कि इस विधि में और पिछली विधि में क्या होता है। इन्हें कुछ मिलीसेकंड के अंतर से एक के बाद एक बुलाया जाता है।
5. आवेदन समाप्त हो जाएगा
यह स्थिति एप्लिकेशन के समाप्त होने से कुछ मिलीसेकंड पहले होती है, यानी एप्लिकेशन के वास्तव में समाप्त होने से पहले। या तो मैन्युअल रूप से मल्टीटास्किंग से या डिवाइस को बंद करते समय। इस पद्धति का उपयोग संसाधित डेटा को सहेजने, सभी गतिविधियों को समाप्त करने और उस डेटा को हटाने के लिए किया जाना चाहिए जिसकी अब आवश्यकता नहीं होगी।
6. applicationDidReceiveMemoryWarning
यह आखिरी राज्य है जो सबसे ज्यादा चर्चा में है. यदि यह अनावश्यक रूप से सिस्टम संसाधनों का उपयोग करता है, तो यदि आवश्यक हो, तो iOS मेमोरी से एप्लिकेशन को हटाने के लिए यह जिम्मेदार है। मैं विशेष रूप से नहीं जानता कि iOS बैकग्राउंड ऐप्स के साथ क्या करता है, लेकिन अगर उसे अन्य प्रक्रियाओं के लिए संसाधनों को जारी करने के लिए किसी ऐप की आवश्यकता होती है, तो यह उसे मेमोरी चेतावनी के साथ संकेत देता है कि उसके पास जो भी संसाधन हैं उन्हें जारी कर दे। तो इस विधि को एप्लिकेशन में कहा जाता है। डेवलपर्स को इसे कार्यान्वित करना चाहिए ताकि एप्लिकेशन आवंटित मेमोरी को छोड़ दे, प्रगति पर सब कुछ सहेज सके, मेमोरी से अनावश्यक डेटा साफ़ कर दे, और अन्यथा पर्याप्त रूप से मेमोरी को मुक्त कर दे। यह सच है कि कई डेवलपर्स, यहां तक कि शुरुआती भी, ऐसी चीजों के बारे में नहीं सोचते या समझते हैं, और फिर ऐसा हो सकता है कि उनका एप्लिकेशन बैटरी जीवन को खतरे में डालता है और/या पृष्ठभूमि में भी अनावश्यक रूप से सिस्टम संसाधनों का उपभोग करता है।
निर्णय
ये छह स्थितियाँ और उनसे जुड़ी विधियाँ iOS में सभी "मल्टीटास्किंग" की पृष्ठभूमि हैं। यह एक महान प्रणाली है, जब तक डेवलपर्स इस तथ्य को नजरअंदाज नहीं करते हैं कि एप्लिकेशन उनके उपयोगकर्ताओं के उपकरणों पर क्या फेंकता है, अगर उन्हें कम किया जाता है या सिस्टम से चेतावनियां मिलती हैं, इसके बारे में जिम्मेदार होने की आवश्यकता है।
स्रोत: Macworld.com
लेखक: जैकब पोज़ारेक, मार्टिन डौबेक (अर्नीएक्स)
क्या आपके पास भी हल करने के लिए कोई समस्या है? क्या आपको सलाह की आवश्यकता है या शायद सही आवेदन मिल गया है? अनुभाग में दिए गए फ़ॉर्म के माध्यम से हमसे संपर्क करने में संकोच न करें काउंसिलिंग, अगली बार हम आपके प्रश्न का उत्तर देंगे।
नमस्कार, वास्तव में अच्छा लेख है, लेकिन मुझे आश्चर्य है कि क्या आपके पास इसके लिए कोई तकनीकी सहायता है। क्योंकि मैंने बिस्तर पर जाने से पहले शाम को कई बार बैटरी की समस्या का समाधान किया है और ऐसा हुआ है कि वाईफाई और मोबाइल डेटा बंद होने पर, वाईफाई बंद होने और केवल 3जी होने पर अन्य मामलों की तुलना में अधिक समय लगा।
दुर्भाग्य से, अनुभव यह है कि iOS में, एप्लिकेशन को मैन्युअल रूप से बंद करना पड़ता है, और सिस्टम अब पहले की तरह नहीं चलता है।
मैंने अपने आईफोन को विंडोज फोन (6200 के लिए सैमसंग ओम्निया डब्ल्यू) से बदल दिया है और सिस्टम की गति पूरी तरह से अलग स्तर पर है।
मुझे डर है कि जब विंडोज़ 8 मेट्रो टैबलेट आएँगे, तो मैं आईपैड भी बदल दूँगा...
@007 - हाँ, यदि आप पुराने iPhone3G की तुलना नए WP से कर रहे हैं, तो हाँ (किसने इसकी उम्मीद की होगी?) WP काफी तेज़ होगा। अन्यथा, कार्लुल्का के बारे में गपशप आपको अच्छी नहीं लगती और वर्तमान एचडब्ल्यू की तुलना करना उचित था। मैंने WP7 भी खरीदा और अंतत: मुझे 4s मिला, जो WP7 की तुलना में प्रयोज्यता के बिल्कुल अलग स्तर का प्रतिनिधित्व करता है। तो आनंदपूर्वक गुजरें और टाइल्स के माध्यम से अंतहीन स्क्रॉल करें।
मैं पाजा से पूरी तरह सहमत हूं
मैं एक और बैरल के मलबे से फिर से योगदान दूंगा - सैमसंग गैलेक्सी एस और आईफोन 4 - मैं उम्र के मामले में तुलनीय कहूंगा? आईओएस 4 के समय, और एंड्रॉइड के अलावा कहीं और प्रयोज्यता और गति के मामले में, ऐप्पल ने अनुप्रयोगों के साथ काम करने की अवधारणा को बहुत अच्छी तरह से हल किया है, लेकिन एंड्रॉइड के साथ अब यह सच नहीं है। अंत में, मैं वैसे भी 4S के साथ समाप्त हुआ और मुझे कोई शिकायत नहीं है, क्योंकि "यह बस काम करता है" .. और यह बहुत तेज़ी से काम करता है!
सिद्धांत सुंदर है... लेकिन व्यवहार में, मैं अभी भी बार में एप्लिकेशन को बंद कर देता हूं;)
धन्यवाद, बहुत दिलचस्प, व्यावहारिक, दिलचस्प, इसमें स्विंग और गहराई की कमी नहीं है। इस प्रतिबंधित ब्रांड के प्रति आज के युवाओं के जुनून को महत्वपूर्ण रूप से रेखांकित करता है! लेकिन उसके लिए धन्यवाद, साथ ही इस लेख के लिए भी।
आर्टिकल पूरी तरह से गलत है.
होम बटन दबाए जाने पर एप्लिकेशन बंद नहीं होता है, जैसा कि ग़लती से कहा गया है, लेकिन रुक जाता है। अर्थात। निश्चित रूप से स्मृति से न हटाएं और न ही छोड़ें। बस रन को रोकें, iOS इस ऐप को 0% CPU समय देगा। यह निश्चित रूप से iDevice मेमोरी में कहीं भी "स्वैप" नहीं करता है, जैसा कि लेख में कहा गया है। यह वास्तव में इस तथ्य के कारण है कि ऐप स्विचिंग का उपयोग करना संभव है।
जब फोन में अन्य एप्लिकेशन को उच्च प्राथमिकता के साथ चलाने के लिए कम मेमोरी होती है (आमतौर पर कोई अन्य एप्लिकेशन अग्रभूमि में चल रहा होता है) तो एप्लिकेशन को मेमोरी से हटा दिया जाता है।
पहले मामले में, आप सही हैं, यह एक अनुवाद त्रुटि थी। जहां तक स्वैपिंग की बात है, हम यहां उसके बारे में बात नहीं कर रहे हैं, हम ऑपरेटिंग मेमोरी के बारे में बात कर रहे हैं, आईओएस डिवाइस में स्टोरेज स्पेस के बारे में नहीं।
एप्लिकेशन की छवि को सीमित समय के लिए मेमोरी में संग्रहीत किया जाता है जब तक कि इसे कमांड द्वारा दोबारा लागू नहीं किया जाता है (13,7 जीबी में से 16 जीबी देखें: 2,3 जीबी सिस्टम और निलंबित अनुप्रयोगों के लिए आरक्षित है)
इस प्रकार, नेविगेशन, स्काइप और इसी तरह के अनुप्रयोगों के बीच अंतर करना आवश्यक है, ये एप्लिकेशन पृष्ठभूमि में भी सक्रिय रहते हैं, या एक निश्चित फ़ंक्शन समाप्त नहीं होता है और जारी रहता है, उदाहरण के लिए, उसके स्थान या स्थान की जानकारी के बारे में डेटा भेजने के लिए। या फिर पॉड मोड में वोकुल की तरह सुनें और मल्टीटास्किंग में अभी भी बैकग्राउंड में सुना जा रहा है।
ये एप्लिकेशन बैटरी खत्म कर देते हैं और इन्हें मैन्युअल रूप से बंद करना जरूरी है और iOS का इंतजार नहीं करना चाहिए। दूसरों के साथ यह आवश्यक नहीं है, वहां केवल एप्लिकेशन क्रैश होने की स्थिति में होता है।
मैं लेख से सहमत नहीं हो सकता. न्यूनतम. पहली पीढ़ी के आईपैड (आईओएस 1) पर यह देखना स्पष्ट है कि मेरे पास मल्टीटास्किंग बार में बहुत सारे "खुले" ऐप्स हैं या बस कुछ ही हैं। iOS मेमोरी को साफ़ करने का प्रयास करता है, लेकिन यह स्पष्ट रूप से पर्याप्त नहीं है - RAM का छोटा आकार संभवतः इसकी सबसे बड़ी कमजोरी है।
इसलिए बहुत कुछ सिस्टम और उपयोग किए गए हार्डवेयर पर निर्भर करता है, यह काफी तार्किक है कि आईओएस 1 के साथ आईपैड 5.0.1 पर यह दूसरी पीढ़ी के आईपैड की तुलना में खराब होगा।
क्षमा करें दोस्त, यह उस आदर्श तरीके का विवरण है जिससे इसे काम करना चाहिए। दुर्भाग्य से, वास्तविकता पूरी तरह से अलग है और यदि आप Apple उत्पादों का उपयोग करते हैं, तो आपको यह पता होगा, कम से कम जितना मैं करता हूं (यानी कभी-कभी)।
"आप अक्सर यह अंधविश्वास सुन सकते हैं कि iOS में बैकग्राउंड में चलने वाले ऐप्स ऑपरेटिंग मेमोरी को भर देते हैं,"
यह कोई अंधविश्वास नहीं, महज़ एक सच्चाई है। आख़िरकार, आप स्वयं लेख में इसका दावा करते हैं।
"जैसा कि मैंने पहले बताया, उपयोगकर्ता को कभी भी पृष्ठभूमि में चल रहे एप्लिकेशन को बंद करने की आवश्यकता नहीं होती है।"
बकवास। यह सिर्फ बकवास है, सेब का प्रचार है, मुझ पर क्रोधित मत होइए।
“लेकिन आपको ऐसा करने की ज़रूरत नहीं है, क्योंकि iOS आपके लिए यह करेगा। यदि आपके पास पृष्ठभूमि में कोई मांगलिक एप्लिकेशन निलंबित है, जैसे कि कोई गेम जो बड़ी मात्रा में रैम का उपयोग करता है, तो आवश्यकता पड़ने पर iOS स्वचालित रूप से इसे मेमोरी से हटा देगा, और आप एप्लिकेशन आइकन पर टैप करके इसे पुनः आरंभ कर सकते हैं।
सच नहीं। स्थिति थोड़ी अलग है. एक विशिष्ट उदाहरण - मेरे पास पृष्ठभूमि में चल रहे मांगलिक एप्लिकेशन हैं, मुझे गेम्स की आवश्यकता है। मैंने ब्राउज़र लॉन्च किया, कुछ टैब खोले -> अधिक मेमोरी की आवश्यकता है। क्या हो जाएगा? मैं पृष्ठभूमि में एप्लिकेशन की मांग करता रहता हूं, इसके विपरीत, ब्राउज़र स्वयं ही गिर जाता है। यदि मैं मांग वाले एप्लिकेशन को मैन्युअल रूप से बंद कर दूं, तो ब्राउज़र बिना किसी समस्या के लंबे समय तक काम करता है।
यह अभ्यास है, सिद्धांत नहीं. और मुझे आश्चर्य है कि, Apple उत्पाद के दीर्घकालिक उपयोगकर्ता के रूप में, आप अभी भी यह नहीं जानते हैं।
धन्यवाद, यह बहुत अच्छी तरह से वर्णित और समझाया गया है। आपने मेरी काफी मदद की है ;-) ♥
शुरुआत करने के लिए, मैं न तो आईओएस के पक्ष में हूं और न ही इसके खिलाफ हूं, बिल्कुल एंड्रॉइड की तरह, लेकिन यहां कुछ अजीब चीजें हैं, यदि जैसा कि यहां लिखा गया है: "आप आईओएस के साथ शायद ही कभी किसी एप्लिकेशन क्रैश का सामना करते हैं" तो एंड्रॉइड ऐप्स के क्रैश होने के बारे में साल में एक बार:-पी
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
हाँ, लेकिन ऐसे मामले जब आपको एप्लिकेशन को मैन्युअल रूप से बंद करने की आवश्यकता होती है तो वास्तव में न्यूनतम होते हैं, क्या मैंने इसे लगभग एक बार उपयोग किया है? ;-) और मोबाइलमेनिया से तुलनात्मक परीक्षण का लिंक देना काफी व्यर्थ है, जब मैं Google द्वारा भुगतान किए गए विज्ञापन के बारे में पढ़ना चाहता हूं, तो मैं वहां देखूंगा ;-) हर किसी के हाथ में कोई भी एंड्रॉइड फोन हो सकता है और यह साफ़-साफ़ नहीं चलेगा, यानी, गैलेक्सी नेक्सस के अपवाद के साथ, जो कि सिस्टम कमोबेश दर्जी द्वारा बनाया गया है। कुल मिलाकर, एंड्रॉइड एक आपदा है
@मेक - मैं कई वर्षों से प्रतिदिन Apple उत्पादों का उपयोग कर रहा हूं और मेरे साथ ऐसा कभी नहीं हुआ, इसलिए आपका सिद्धांत किसी तरह काम नहीं करता है।
OT:
@redakce - आप देख सकते हैं कि वेबसाइट पर लगातार काम किया जा रहा है या इसके साथ कुछ हो रहा है, लेकिन मुझे लगता है कि हर चीज़ को उस तरह से काम करने में एक सप्ताह नहीं लगता है जैसा उसे करना चाहिए। और मैं वास्तव में अब यहां नहीं आता, क्योंकि नया लुक मुझ पर सूट नहीं करता। कम से कम मैंने iPhone पर मोबाइल संस्करण का उपयोग किया, लेकिन अब यह बिल्कुल भी काम नहीं करता - ऐसा कैसे हुआ? वे फिलहाल टिप्पणियों में पोस्ट का जवाब नहीं दे रहे हैं।
@SteveJSF दुर्भाग्य से, चीजें हमेशा वैसी नहीं होती जैसी हम चाहते हैं। जहां तक उत्तरों की बात है, नए एसईओ प्लगइन ने उन्हें तोड़ दिया है, फिलहाल इसका समाधान किया जा रहा है।
WP-Touch ने भी किसी कारण से हमारी सेवा समाप्त कर दी, इसलिए हमने इस प्लगइन से बेहतर समाधान लाने का निर्णय लिया। तो आप जल्द ही अगली खबर का इंतजार कर सकते हैं :-)
अच्छा लेख. जहां तक अभ्यास का सवाल है, मैं कहना चाहूंगा कि मैं कई चीजों से सहमत हूं और ज्यादातर समय यह बताए गए अनुसार काम करता है, लेकिन दुर्भाग्य से अभी भी खराब तरीके से लिखे गए एप्लिकेशन हैं जो सही ढंग से व्यवहार नहीं करते हैं, और फिर ऐसे मामले भी हैं कुछ पाठकों द्वारा नोट किया गया। मुझे लगता है कि स्काइप एक बहुत अच्छा उदाहरण है, मैं अभ्यास से जानता हूं कि यह अभी भी पृष्ठभूमि में चल रहा है (और यह ठीक है और ऐसा ही होना चाहिए), लेकिन समस्या यह है कि यह एप्लिकेशन डिवाइस की बैटरी को बहुत अधिक खर्च करता है और मैं अब इसे ठीक से नहीं देख पा रहा हूं. इसके विपरीत, फेसबुक, Badoo, आदि जैसे एप्लिकेशन। वे अभी भी पृष्ठभूमि में चल रहे हैं, लेकिन उनकी खपत लगभग अगोचर है (कम से कम मुझे कोई नज़र नहीं आता)। इसलिए मुझे लगता है कि त्रुटि अलग-अलग अनुप्रयोगों में है। यदि आप जानते हैं कि कौन से हैं, तो केवल उन्हें मैन्युअल रूप से बंद करना पर्याप्त होगा!
इसलिए प्रथा यह है कि फेसबुक जरूरत पड़ने पर और स्काइप जरूरत पड़ने पर ही चलता है।
ठीक है, दूसरी ओर, अगर मुझे बैटरी बचाने की ज़रूरत है और मुझे पता है कि मुझे iPhone को यथासंभव लंबे समय तक "जीवित" रखना है, तो मैं मल्टीटास्किंग में सभी अनावश्यक चीजों को भी बंद कर देता हूं, लेकिन ज्यादातर इसका कोई बड़ा प्रभाव नहीं पड़ता है, लेकिन यदि आवश्यक हो तो मैं 3जी, सभी मोबाइल इंटरनेट, वाईफाई, स्थान सेवाएं, हवाई जहाज मोड, प्रकाश शक्ति आदि को सीमित कर देता हूं। दिनचर्या के हिस्से के रूप में, मैं मल्टीटास्किंग में उपरोक्त अनुप्रयोगों को भी बंद कर देता हूं।
इसलिए व्यक्तिगत रूप से मुझे लगता है कि लेख सच है, दुर्भाग्य से कुछ प्रोग्रामर अपने अनुप्रयोगों के साथ इन बातों का खंडन करते हैं, क्योंकि उनके अनुप्रयोग गलत हैं और मेरी राय में इसके लिए केवल दो समाधान हैं 1. यदि यह संभव है कि एप्लिकेशन का उपयोग न करें और एक खोजें यदि संभव हो तो विकल्प, या 2. यदि यह संभव नहीं है, उदाहरण के लिए स्काइप देखें, इसे रिपोर्ट में दिए गए प्रोग्रामर को लिखें और आशा करें कि वे इसके बारे में कुछ करेंगे।
ऐप्स को मैन्युअल रूप से अक्षम करना व्यर्थ हो सकता है, लेकिन मैं इसे वैसे भी करता हूं। मैंने यह भी कोशिश की कि एप्लिकेशन सिस्टम को बंद न करें, उन्हें चलने दें (या उन्हें पृष्ठभूमि में सो जाने दें) और बैटरी जीवन बहुत कम था, लगभग तीन सप्ताह के बाद आईपैड 2 को पुनरारंभ करना भी आवश्यक था, इसने धीरे-धीरे प्रतिक्रिया दी। इसलिए मैं ऐप्स को मैन्युअल रूप से बंद कर देता हूं, बैटरी अधिक समय तक चलती है, मैंने हाल ही में क्रिसमस दिवस पर रीबूट किया और यह ठीक चल रहा है।
वैसे, मैं Mac OS यह बहुत अच्छी तरह से काम करता है)। मेरे पास बहुत कम रैम है, केवल 8 जीबी, लेकिन विंडोज 7 में 8 जीबी के साथ, सिस्टम ने धीमी गति से प्रतिक्रिया नहीं की या स्वैप नहीं किया, ओएस एक्स में यह एक काफी सामान्य घटना है (मैंने कभी कंप्यूटर बंद नहीं किया, मैं मैक के साथ भी ऐसा करता हूं, इसलिए एक महीने या उससे अधिक का अप टाइम कोई अपवाद नहीं है, समस्या यह है कि मुझे कभी-कभी रैम को खाली करने और "स्पीड बढ़ाने" के लिए एहतियात के तौर पर मैक को पुनरारंभ करना पड़ता है, विंडोज 7 को इसकी आवश्यकता नहीं है)।
मुझे इस बात में अधिक रुचि है कि वास्तव में एप्लिकेशन को कैसे ब्लास्ट किया जाए। मेरे साथ क्या हुआ कि एप्लिकेशन (विशेष रूप से जियोकैचिंग पर) ऐसी स्थिति में पहुंच गया जहां वह मूल सर्वर से कुछ लोड कर रहा था और उसी स्थिति में फंस गया। होम बटन ने काम किया, रिबूट के बाद यह वापस स्थिर अवस्था में चला गया (जहाँ मैंने छोड़ा था)। मैन्युअल निकास (मल्टीटेस्टिंग मेनू में, आइकन दबाए रखें और बंद करने के लिए माइनस करें) = एप्लिकेशन गायब हो गया, पुनरारंभ करने के बाद यह अपनी मूल स्थिति में खुल गया जहां यह जम गया था। इसलिए मैंने सब कुछ बंद कर दिया, फोन बंद कर दिया, इसे चालू कर दिया, होम पर डबल-क्लिक किया और देखो - सभी एप्लिकेशन वहीं थे जैसे वे बंद होने से ठीक पहले बंद होने से पहले थे। पुनरारंभ ने भी मदद नहीं की - जब तक यह गर्म न हो जाए तब तक घर और ऊपरी हिस्से को पकड़ कर रखें। एकमात्र चीज़ जिसने मदद की वह थी फ़ोन से एप्लिकेशन को हटाना, उसे पुनः प्रारंभ करना और उसे फ़ोन पर पुनः इंस्टॉल करना। किसी तरह मैंने इसे नहीं लिया.
यह मल्टीटास्किंग प्रबंधन काम करता है और इन स्थितियों से निपटना डेवलपर्स पर निर्भर है। पूरी स्थिति के अधिक विस्तृत और पेशेवर विवरण में रुचि रखने वालों के लिए, मैं यहां लिखूंगा कि यह कैसा है।
एप्लिकेशन कुल 6 राज्यों को जवाब दे सकता है और ये राज्य हैं:
applicationWillResignActive
एप्लिकेशनडिडएंटरबैकग्राउंड
एप्लिकेशनविलएंटरफोरग्राउंड
applicationDidBecomeActive
एप्लिकेशन समाप्त हो जाएगा
applicationDidReceiveMemoryWarning
अब मैं इन राज्यों का अधिक विस्तार से वर्णन करने का प्रयास करूंगा।
applicationWillResignActive - इस स्थिति का मतलब है कि भविष्य में (कुछ मिलीसेकंड की बात है) एप्लिकेशन एक सक्रिय एप्लिकेशन के रूप में इस्तीफा दे देगा (यानी अग्रभूमि में एप्लिकेशन) उदाहरण के लिए एप्लिकेशन का उपयोग करते समय कॉल प्राप्त करते समय ऐसा होता है, लेकिन साथ ही समय पर यह विधि एप्लिकेशन के पृष्ठभूमि में जाने से पहले ही चालू हो जाएगी, इसलिए आपको इन परिवर्तनों को ध्यान में रखना होगा। यह विधि इसलिए भी उपयुक्त है कि, उदाहरण के लिए, इनकमिंग कॉल आने पर यह अपने द्वारा की जाने वाली सभी गतिविधियों को निलंबित कर देती है और कॉल समाप्त होने तक प्रतीक्षा करती है।
applicationDidEnterBackground - यह स्थिति इंगित करती है कि एप्लिकेशन पृष्ठभूमि में प्रवेश कर चुका है, डेवलपर्स को इस पद्धति का उपयोग उन सभी प्रक्रियाओं को निलंबित करने के लिए करना चाहिए जिन्हें पृष्ठभूमि में चलाने की आवश्यकता नहीं है और अप्रयुक्त डेटा और अन्य प्रक्रियाओं की मेमोरी को साफ करना चाहिए, उदाहरण के लिए, समाप्ति टाइमर, से साफ़ करें मेमोरी लोड की गई छवियां जिनकी आवश्यक रूप से आवश्यकता नहीं होगी या सर्वर के साथ कनेक्शन समाप्त कर देगी यदि एप्लिकेशन के लिए पृष्ठभूमि में कनेक्शन पूरा करना महत्वपूर्ण नहीं है। मूल रूप से, एप्लिकेशन में कॉल करने पर इस विधि का उपयोग एप्लिकेशन को पूरी तरह से निलंबित करने के लिए किया जाना चाहिए यदि इसके कुछ हिस्से को पृष्ठभूमि में चलाने की आवश्यकता नहीं है।
applicationWillEnterForeground - यह स्थिति पहली स्थिति के विपरीत है जब एप्लिकेशन सक्रिय स्थिति से इस्तीफा दे देगा। इस एप्लिकेशन स्थिति का सीधा सा मतलब है कि अगले कुछ मिलीसेकंड में स्लीपिंग एप्लिकेशन पृष्ठभूमि से फिर से शुरू हो जाएगा और अग्रभूमि में दिखाई देगा (एप्लिकेशन अग्रभूमि में प्रवेश करता है), इस विधि का उपयोग डेवलपर्स द्वारा किसी भी प्रक्रिया को फिर से शुरू करने के लिए किया जाना चाहिए जो एप्लिकेशन के निष्क्रिय होने के दौरान निष्क्रिय थी पृष्ठभूमि में, सर्वर से कनेक्शन फिर से स्थापित किया जाना चाहिए, टाइमर रीसेट किया जाना चाहिए, छवियों और डेटा को मेमोरी में लोड किया जाना चाहिए, और अन्य आवश्यक प्रक्रियाएं उपयोगकर्ता द्वारा लोड किए गए एप्लिकेशन को दोबारा देखने से ठीक पहले फिर से शुरू हो सकती हैं।
applicationDidBecomeActive - यह स्थिति इंगित करती है कि एप्लिकेशन अग्रभूमि में पुनर्स्थापित होने के बाद सक्रिय हो गया है, यह एक ऐसी विधि है जिसका उपयोग उपयोगकर्ता इंटरफ़ेस में अतिरिक्त समायोजन करने या यूआई को अपनी मूल स्थिति में पुनर्स्थापित करने आदि के लिए किया जा सकता है। यह विधि वास्तव में होती है जब उपयोगकर्ता पहले से ही डिस्प्ले पर देख सकता है, तो बैलेंस शीट से यह निर्धारित करना आवश्यक है कि इस विधि में और पिछली विधि में क्या हो रहा है। इन्हें कुछ मिलीसेकंड के अंतर से एक के बाद एक बुलाया जाता है।
एप्लिकेशनविलटर्मिनेट - यह स्थिति एप्लिकेशन के समाप्त होने से कुछ मिलीसेकंड पहले होती है, यानी एप्लिकेशन के वास्तव में समाप्त होने से पहले। या तो मैन्युअल रूप से मल्टीटास्किंग से या डिवाइस को बंद करते समय। इस पद्धति का उपयोग संसाधित डेटा को सहेजने और सभी गतिविधियों को समाप्त करने और उस डेटा को हटाने के लिए किया जाना चाहिए जिसकी अब आवश्यकता नहीं होगी।
applicationDidReceiveMemoryWarning - और यह एक ऐसी स्थिति है जिस पर यहां बहुत चर्चा की गई है, यदि आवश्यक हो, तो iOS अनावश्यक रूप से सिस्टम संसाधनों का उपयोग करने पर एप्लिकेशन को मेमोरी से हटा देगा। मैं विशेष रूप से नहीं जानता कि iOS पृष्ठभूमि ऐप्स के साथ क्या करता है, लेकिन यदि उसे अन्य प्रक्रियाओं के लिए संसाधनों को जारी करने के लिए किसी ऐप की आवश्यकता होती है, तो यह उसे अपने पास मौजूद संसाधनों को जारी करने के लिए एक मेमोरी चेतावनी के साथ संकेत देता है। इसलिए इस विधि को एप्लिकेशन में बुलाया जाता है, और डेवलपर्स को इसे लागू करना चाहिए ताकि एप्लिकेशन अपने पास मौजूद मेमोरी को छोड़ दे, संसाधित डेटा को सहेजे और मेमोरी से अनावश्यक डेटा को हटा दे और अन्यथा मेमोरी को पर्याप्त रूप से मुक्त कर दे। यह सच है कि कई डेवलपर्स, उदाहरण के लिए शुरुआती, ऐसी चीजों के बारे में नहीं सोचते हैं या उन्हें नहीं समझते हैं, और फिर ऐसा हो सकता है कि उनका एप्लिकेशन बैटरी जीवन को खतरे में डालता है और/या पृष्ठभूमि में भी अनावश्यक रूप से सिस्टम संसाधनों का उपभोग करता है। मुझे नहीं पता कि यदि एप्लिकेशन मेमोरी चेतावनी प्राप्त करने के बाद कुछ नहीं करता है और पहले की तरह सिस्टम संसाधनों का उपभोग करना जारी रखता है तो iOS कैसे व्यवहार करेगा।
ये कुछ स्थितियाँ और संबंधित विधियाँ iOS में संपूर्ण "मल्टीटास्किंग" के पीछे हैं... यह एक बेहतरीन प्रणाली है यदि डेवलपर्स इस बात के लिए ज़िम्मेदार होने की आवश्यकता को नज़रअंदाज़ नहीं करते हैं कि यदि ऐप्स को न्यूनतम किया जाता है तो उनके उपयोगकर्ताओं के डिवाइस पर क्या प्रभाव पड़ेगा या सिस्टम से चेतावनियाँ प्राप्त करें और भी बहुत कुछ...
मुझे आशा है कि यह संक्षिप्त विवरण आपको यह समझने में मदद करेगा कि एप्लिकेशन हर चीज़ को सुचारू रूप से चलाने में कैसे शामिल है। इसलिए यह कहना लगभग संभव है कि यह उपयोगकर्ता द्वारा गलत उपयोग की गलती है, जिसे इस प्रकार समझा जा सकता है - यदि आप बड़ी संख्या में शौकिया डेवलपर्स से ज्यादातर मुफ्त एप्लिकेशन का उपयोग करते हैं, तो आपका iOS डिवाइस बड़े पैमाने पर उपयोग करने की तुलना में खराब चलेगा। अनुभवी या पेशेवर डेवलपर्स से निःशुल्क और सशुल्क एप्लिकेशन की संख्या। इसका मतलब यह नहीं है कि दोनों सर्किलों में कोई अपवाद नहीं है। उदाहरण के लिए, फोरस्क्वेयर काफी अजीब और मांगपूर्ण व्यवहार करता है, और साथ ही, कोई पहले से ही उम्मीद कर सकता है कि वे बहुत कुशल डेवलपर्स हैं जो मेमोरी और बैटरी प्रबंधन के लिए बहुत समय देते हैं, लेकिन विपरीत सच है। 4SQ के साथ सबसे बड़ी समस्या सर्वर के साथ संचार है, जो अक्सर हैंग हो जाता है और बाधित हो जाता है। यह केवल इस तथ्य का एक उदाहरण है कि जाने-माने अनुप्रयोगों में भी समस्याएँ हैं, जो इस तथ्य को नहीं बदलता है कि 4SQ एक बेहतरीन सेवा है।
आनंद लो सेब!! :)
हमने लेखक की अनुमति से लेख में जानकारी जोड़ी है ;-)
मुझे खेद है, ENTER पैराग्राफों के बीच हर जगह था, वे यहां इसके बारे में कुछ कर सकते थे ताकि टिप्पणियों में कम से कम रिच टेक्स्ट फ़ॉर्मेटिंग हो।
अरनीएक्स: टिप्पणी के लिए धन्यवाद!!
वह फरामिर: मैं सिर्फ आपकी समस्या के बारे में बता रहा हूं, मुझे नहीं पता कि यह आपके मामले में भी मदद करेगा या नहीं, लेकिन मैं अपने अनुभव से जानता हूं कि यदि आप एप्लिकेशन को बंद करते हैं (मल्टीटास्किंग में) तो इसे बंद होने में कुछ सेकंड लगते हैं, इसलिए यदि आप इसे बंद कर देते हैं तो मेरा सुझाव है कि कुछ सेकंड प्रतीक्षा करें (सुनिश्चित होने के लिए मैं लगभग 10 सेकंड प्रतीक्षा करता हूं) जब तक कि यह निश्चित रूप से समाप्त न हो जाए और उसके बाद ही मैं इसे फिर से शुरू करूं।
आपका स्वागत है ;) अगर मुझे योगदान करने का अवसर मिला तो मुझे मदद करने में खुशी होगी।
यह मीब के साथ कैसा होना चाहिए, जब मैं इसके माध्यम से ICQ या FB चैट में लॉग इन करता हूं, तो यह 10 मिनट के बाद स्वचालित रूप से लॉग आउट हो जाता है और मैं ऑफ़लाइन हो जाता हूं या क्या यह काम करना जारी रखता है? स्पष्टीकरण के लिए धन्यवाद :पी
दस मिनट के बाद, एप्लिकेशन का इंटरनेट से कनेक्शन बस बाधित हो जाता है। हालाँकि, आप अभी भी मीबा सर्वर पर ऑनलाइन रहेंगे और यदि कोई आपको लिखेगा तो आपको एक पुश सूचना प्राप्त होगी। एप्लिकेशन को दोबारा खोलने के बाद, कनेक्शन एक पल में स्थापित हो जाएगा और आप खुशी से चैट करना जारी रख सकते हैं।
इसलिए, यदि मैंने आपके द्वारा लिंक किए गए लेख को सही ढंग से समझा है, तो आँकड़े केवल एप्लिकेशन क्रैश होने का उल्लेख करते हैं जब वे शुरू होते हैं, जो कि क्रैश होने वाले मामलों का काफी छोटा प्रतिशत है। इसलिए, इस "शोध" से यह निष्कर्ष निकालना असंभव है कि मेरी राय में iOS कम स्थिर है। इसके अलावा, फोर्ब्स से लिए गए लेख के अनुवादक यह उल्लेख करना भूल गए कि एप्लिकेशन क्रैश पर डेटा प्रदान करने वाली कंपनी अन्य लोगों के अलावा Google द्वारा समर्थित है ("क्रिटरसिज्म, जो Google वेंचर्स द्वारा समर्थित है, ...")।