मल्टीटास्किंग से पहले iOS ने क्या किया?


जवाबों:


14

ऐप स्विचर सीमित मल्टीटास्किंग के साथ आया था। इससे पहले, आपने होम बटन दबाया और सामने का कार्यक्रम चलना बंद हो गया।


1
ओह, यह कठोर रहा होगा।
इयान वॉर्बर्टन

8
यह वास्तव में आईओएस 7 के माध्यम से मल्टीटास्किंग से बेहतर था और कभी-कभी, मैं अभी भी चाहता हूं कि हमारे पास सिंगल टास्किंग हो। कई कार्यों के लिए बहुत अधिक संवेदनशील, @IanWarburton भी, t637i सोनी ericsson की गूगल छवियों - कि एकल tasking iOS से पहले क्या आया है।
bmike

@bmike googling कि सटीक वाक्यांश t637i sony ericssonबहुत सारे रसिया लिंक लाता है, लेकिन फोन आदि का कोई लिंक नहीं है। क्या यह सिर्फ इसलिए है क्योंकि मेरा खोज इतिहास है?
NJDawson 11

@NJDawson प्रयास करें इस लिंक
bmike

23

एफडब्ल्यूआईडब्ल्यू, ऐप्पल ने हमेशा अपने स्वयं के कुछ ऐप या सेवाओं को पृष्ठभूमि में बनाए रखने की अनुमति दी है, अर्थात फोन, मेल, पुश नोटिफिकेशन, फाइंड माई आईफोन, और इसी तरह, जरूरत और कार्यक्षमता के आधार पर।

एक बात पर विचार करना है कि iOS पर आज मल्टीटास्किंग अभी भी सीमित है, खासकर जब डेस्कटॉप ऑपरेटिंग सिस्टम (और शायद कुछ एंड्रॉइड वातावरण) की तुलना में।

IOS 4 के साथ शुरुआत करते हुए, Apple आपको यह भ्रम देता है कि आपके सभी ऐप ऐप स्विचर बनाकर चल रहे हैं। हालांकि, कुछ ऐप्स अभी भी चल रहे हैं, अधिकांश हाइबरनेशन में हैं, जो इस बात पर निर्भर करता है कि उन्होंने कौन से बैकग्राउंड को चलाने के लिए रजिस्टर किया है और क्या रैम उपलब्ध है।

एप्लिकेशन जीवन चक्र आम तौर पर एक दिन के बाद से इस तरह व्यवहार किया है:

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

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

जब लोग अपने सभी ऐप को बंद करते हैं और "बलपूर्वक" जाते हैं, तो वे अनिवार्य रूप से ऐप द्वारा सहेजे गए किसी भी राज्य को फेंक रहे हैं, और ऐप द्वारा शुरू किए गए किसी भी पृष्ठभूमि कार्यों को मार सकते हैं। कई लोग सोचते हैं कि वे बैटरी की खपत को कम करने और रैम को साफ रखने में मदद कर रहे हैं, लेकिन क्रेग फेडेरिगी ने कहा कि ऐसा करने से वे वास्तव में अधिक बैटरी नाली का कारण बन सकते हैं, क्योंकि सीपीयू हर बार उन ऐप को फिर से खोलने के बजाय केवल उन्हें बाहर लाने के लिए अधिक कर रहा है। ठहराव।

आईओएस 4 के बाद से, डेवलपर्स को अब ऐसे कार्यों को बनाने की अनुमति दी जाती है जो किसी एप्लिकेशन को निलंबित कर दिए जाने पर भी जारी रह सकते हैं, जैसे ऑडियो प्लेबैक, मॉनिटरिंग नेटवर्क ट्रैफ़िक (वीओआईपी), बैकग्राउंड डेटा रिफ्रेश और लोकेशन अपडेट। यह प्रभावी है क्योंकि केवल ऐप का एक भाग चल रहा है और संसाधनों का उपयोग कर रहा है।

चूंकि डिवाइस अधिक शक्तिशाली (अधिक सीपीयू, अधिक रैम, अधिक स्टोरेज, बड़ी बैटरी) प्राप्त करते हैं और जैसे ही कोड अधिक कुशल होता है, ये अतिरिक्त कार्य संसाधनों पर एक नाली से कम साबित होते हैं। विजेट और आगामी सिरी, iMessage और CallKit एक्सटेंशन जैसी नई चीजें यह प्रकट कर सकती हैं कि लोकप्रिय एप्लिकेशन हमेशा पृष्ठभूमि में कुछ कर रहे हैं।


2
क्षमा करें, मेरा मानना ​​है कि आप गलत हैं। क्या आपके पास अपने दावे के लिए एक संदर्भ है कि ऐप राज्य रैम से डिस्क पर सहेजा गया है? जब तक प्रोग्रामर इसे नहीं करता तब तक डिस्क को कुछ भी सहेजा नहीं जाता है।
अंटेजी

Antzi सही है, iOS स्वैप स्पेस का उपयोग नहीं करता है। जब डिवाइस मेमोरी पर कम चल रहा है, तो यह एप्लिकेशन को उनके मेमोरी उपयोग को कम करने के लिए कहता है। यदि वे पर्याप्त स्थान खाली करने में विफल रहते हैं, तो उन्हें समाप्त कर दिया जाता है। ऑपरेटिंग सिस्टम मेमोरी से डिस्क पर डेटा स्थानांतरित नहीं करता है, यह अनुप्रयोगों को ऐसा करने की उम्मीद करता है। developer.apple.com/library/mac/documentation/Performance/…
MJeffryes

शायद मैंने सरल बनाने के अपने प्रयास में पानी को थोड़ा कम किया। डिस्क एक्सेस को तेज करने के लिए निस्संदेह रैम में कैश को किसी प्रकार का पढ़ना / लिखना है। यदि एप्लिकेशन को समाप्त होने से पहले सहेजने के लिए कोई भी राज्य है, तो मुझे उम्मीद है कि ओएस ऐप के राज्य को लिखने के लिए बफर करेगा जब तक कि उन डिस्क को लिखने के लिए फ्लश करना उचित न हो। तो हाँ, ऐप जो चाहे उसे बचाने के लिए ज़िम्मेदार है (कौन से विचार खुले हैं, कौन सा दस्तावेज़ सामने था, आदि), लेकिन यह ओएस को उस डेटा को सौंपता है, जो बदले में इसे भौतिक भंडारण के लिए सौंप देता है।
ब्रायन स्कॉट

7

शुरुआत में, iOS में मल्टीटास्किंग नहीं थी। 2010 में उनका पहला प्रयास था (पवित्र बकवास!)। IPhone में बस पर्याप्त रैम नहीं था और इसके लिए अनुकूलित नहीं था। 2010 में, Apple ने मल्टीटास्क में कोर ऐप्स को सक्षम किया, लेकिन 3rd पार्टी को नहीं। मुझे याद है कि सभी डिवाइसों को मल्टीटास्क करने की अनुमति देने के लिए मेरे डिवाइस को जेलब्रेक करना, लेकिन यह छोटी गाड़ी थी। आईओएस ने 64 बिट प्रोसेसिंग और बेहतर मेमोरी मैनेजमेंट के साथ एक लंबा सफर तय किया है।

आगे पढ़ने के लिए, विकिपीडिया लेख पर एक नज़र डालें ।


1
OS X पर आधारित होने के कारण, iOS लॉन्च के बाद से बहु-थ्रेडेड है। डेवलपर्स के लिए वर्गों के NSOperation समूह को iPhoneOS 2 (पहला SDK जिसे तृतीय पक्ष डेवलपर्स की पहुंच है) के बाद से सार्वजनिक किया गया है। कचरा संग्रहण के लिए, iOS ने कचरा संग्रहण द्वारा मेमोरी प्रबंधन का कभी समर्थन नहीं किया है और न ही किया है। इसके बजाय iOS ARC मेमोरी मैनेजमेंट का उपयोग करता है (या यदि कोई देवता चुनता है तो वे मैन्युअल मेमोरी मैनेजमेंट का उपयोग कर सकते हैं)। यह एक प्रमुख कारण है कि आईओएस डिवाइस एंड्रॉइड डिवाइस के खिलाफ प्रतिस्पर्धी होने में सक्षम हैं जिनके पास अधिक रैम है।
एलेक्सकेंट

आप सही, गलत शब्द हैं। मेरा उत्तर ठीक कर दिया।
मेगामिकु

1

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

क्या सीमित था कार्यक्रमों के साथ उपयोगकर्ता साक्षात्कार है। उपयोगकर्ता किसी भी समय एक से अधिक कार्यक्रमों के साथ बातचीत नहीं कर सकता था।

इसके अलावा, पुराने समय में भी, जहाँ "होम" दबाने पर एक ऐप से दूसरे ऐप पर स्विच करने की ज़रूरत थी - पुराने ऐप को नहीं मारा गया था। इसे "पृष्ठभूमि में" स्थानांतरित कर दिया गया, जिसका अर्थ है - इसकी स्क्रीन, कीबोर्ड, कैमरा, आदि तक कोई पहुंच नहीं है और यह पृष्ठभूमि में रहते हुए केवल बहुत कम सिस्टम संसाधनों को बनाए रख सकता है।

एक iOS ऐप को पूरी तरह से छोड़ने के लिए आपको होम बटन को डबल टैप करना था और जब सभी रनिंग ऐप को हिलाना शुरू कर दिया, तो आप उन्हें एक-एक करके मारने के लिए थोड़ा "x" दबा सकते थे। तभी ऐप वास्तव में मारे गए थे।

इस UI निर्णय का कारण यह था कि पुराने iOS उपकरणों के बहुत सीमित सिस्टम संसाधनों के साथ ही Apple अच्छी UI जवाबदेही और बैटरी-जीवन प्राप्त कर सकता था।

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

सिस्टम हमेशा की तरह मल्टीटास्किंग है, लेकिन यूआई एक ही समय में उपयोगकर्ता को आंशिक रूप से दिखाई देने वाले एक से अधिक एप्लिकेशन के अधिक जटिल परिदृश्यों की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.