كلنا نعرف الدرس "تعدد المهام = القدرة على تنفيذ عدة عمليات في نفس الوقت". نحن نستخدمه في أجهزة الكمبيوتر الخاصة بنا دون أن ندرك وجوده بشكل خاص. يتم التبديل بين التطبيقات أو نوافذ تطبيق واحد (بالنسبة لنا) في الوقت الفعلي ونعتبر هذه القدرة لنظام التشغيل أمرًا مفروغًا منه.
مهمة مختلفة
يقوم نظام التشغيل بتخصيص المعالج لجميع التطبيقات في فترات زمنية صغيرة. هذه الفترات الزمنية صغيرة جدًا بحيث لا يمكننا ملاحظتها، لذا يبدو كما لو أن جميع التطبيقات تستخدم المعالج في نفس الوقت. قد نعتقد ذلك تعدد المهام في iOS 4 يعمل بالضبط نفس الشيء. الأمر ليس كذلك. السبب الرئيسي هو بالطبع سعة البطارية. إذا تركت جميع التطبيقات قيد التشغيل في الخلفية، فربما يتعين علينا البحث عن مأخذ توصيل في غضون ساعات قليلة.
يتم وضع معظم التطبيقات المتوافقة مع نظام التشغيل iOS 4 في "الوضع المعلق" أو يتم وضعها في وضع السكون بعد الضغط على زر الصفحة الرئيسية. يمكن تشبيه ذلك بإغلاق غطاء الكمبيوتر المحمول، الذي ينتقل فورًا إلى وضع السكون. بعد فتح الغطاء، ينشط الكمبيوتر المحمول ويصبح كل شيء في نفس الحالة تمامًا كما كان قبل إغلاق الغطاء. علاوة على ذلك، هناك تطبيقات يؤدي فيها الضغط على زر الصفحة الرئيسية إلى إنهائها. وبهذا نعني الإنهاء الحقيقي. للمطورين حرية اختيار أي من هذه الطرق لاستخدامها.
ولكن هناك فئة أخرى من التطبيقات. هذه هي التطبيقات التي تعمل بالفعل في الخلفية، على الرغم من أنك تفعل شيئًا مختلفًا تمامًا على جهاز iDevice الخاص بك. يعد Skype مثالاً جيدًا لأنه يحتاج إلى اتصال دائم بالإنترنت. ومن الأمثلة الأخرى التطبيقات التي تشغل موسيقى الخلفية (Pandora) أو التطبيقات التي تتطلب استخدامًا مستمرًا لنظام تحديد المواقع العالمي (GPS). نعم، تستنزف هذه التطبيقات بطاريتك حتى عند تشغيلها في الخلفية.
النوم أو إسقاط؟
تستمر بعض التطبيقات المتوافقة مع iOS 4، والتي يجب وضعها في وضع السكون (وضعها في "الوضع المعلق") بعد الضغط على زر الصفحة الرئيسية، في العمل في الخلفية. منحت شركة Apple للمطورين عشر دقائق بالضبط حتى يكمل التطبيق مهمته، مهما كانت. لنفترض أنك تقوم بتنزيل ملف في GoodReader. فجأة يريد شخص ما الاتصال بك وعليك فقط قبول هذه المكالمة المهمة. المكالمة لم تدوم أكثر من عشر دقائق، ستعود إلى تطبيق GoodReader. ربما تم تنزيل الملف بالفعل أو لا يزال قيد التنزيل. ماذا لو استغرقت المكالمة أكثر من عشر دقائق؟ سيتعين على التطبيق، في حالتنا GoodReader، إيقاف نشاطه وإخبار نظام التشغيل iOS بإمكانية وضعه في وضع السكون. إذا لم تفعل ذلك، فسيتم إنهاؤها بلا رحمة بواسطة نظام iOS نفسه.
الآن أنت تعرف الفرق بين تعدد المهام "الجوّال" و"سطح المكتب". في حين أن السلاسة وسرعة التبديل بين التطبيقات مهمة بالنسبة للكمبيوتر، فإن عمر البطارية هو دائمًا أهم شيء بالنسبة للأجهزة المحمولة. وكان لا بد أيضًا من تكييف المهام المتعددة مع هذه الحقيقة. لذلك، بعد قراءة هذه المقالة، إذا قمت بالضغط على زر الصفحة الرئيسية مرتين، فلن ترى بعد الآن "شريط التطبيقات التي تعمل في الخلفية"، ولكن في الأساس فقط "قائمة التطبيقات المستخدمة مؤخرًا".
المؤلف: دانيال هروشكامصدر: onemoretap.com
حسنًا، مثير للاهتمام :) اعتقدت دائمًا أن الأمر مشابه دائمًا لكيفية القيام بذلك على نظام Unix. نظرًا لأن التطبيق لم يتم تخصيص أي وقت لوحدة المعالجة المركزية فيه وأن العملية موجودة فقط في الذاكرة، فقد تم تخصيص كافة الموارد. لذلك اضطررت إلى الضغط على الصفحة الرئيسية مرتين وإيقاف التطبيق على الفور لحذفه. فهل هذا يعني أنه حتى لو كان هناك رمز تطبيق في الورقة المخفية السفلية، فإن التطبيق لا يزال مغلقًا منذ فترة طويلة (بعد 10 دقائق)؟
في القائمة السفلية، توجد ببساطة التطبيقات التي تم فتحها مؤخرًا، حيث لا يزال من الممكن تشغيل بعضها، وبعضها معلق، وبعضها يتم إنهاؤه تمامًا. إن إزالة التطبيق يدويًا من القائمة له "أثر جانبي" وهو أنه إذا كان قيد التشغيل (أو تم تعليقه) فسيتم إنهاؤه.
يجب أن يخبر التطبيق نفسه عن تلك الدقائق العشر الإضافية، وليس من المضمون أنه سيحصل عليها.
حسنًا، هذا لم يتخلص من هوسي بإغلاق التطبيق من القائمة (ماذا لو أنه أكل الموارد عن طريق الخطأ، أليس كذلك؟ :-D)
ما أفهمه هو أن الدقائق العشر مخصصة للتطبيقات التي تحتاج إلى العمل في الخلفية ولا تندرج ضمن فئة "Skype وGPS وتشغيل الموسيقى". تتحول التطبيقات الأخرى إلى الوضع المرحلي وتبقى في الذاكرة حتى تكون الذاكرة مطلوبة لأشياء أخرى.
يتمتع الوضع المعلق بميزة أنه إذا كنت بحاجة إلى إيقاف التطبيق، فلن تفقد بياناته، وسيتم حفظ كل شيء في لحظة التبديل إلى الوضع المعلق.
أو، في حالة التشغيل على سبيل المثال، ما يعادل الأمر bg / fg
وماذا عن المشغل أو التطبيقات الأخرى التي تعمل في الخلفية لأي فترة من الوقت؟ أعني، هل يحق لي "الاختيار" كمطور، أم أن هذا يجب أن تتم الموافقة عليه من قبل شركة Apple بطريقة أو بأخرى؟
لكي يعمل التطبيق فعليًا في الخلفية لفترة غير محدودة، يجب عليه القيام (التسجيل) بأحد الإجراءات التالية:
– استخدام خدمات الموقع (GPS)
- تشغيل الموسيقى في الخلفية
- استخدم VOIP (الصوت عبر IP)
وفقًا للعنوان (نظرة تحت الغطاء)، كنت أتوقع أن تحتوي المقالة على شرح أكثر شمولاً إلى حد ما مع تفاصيل فنية. هذا يبدو أشبه ببيركس لهذه المادة. إذا كان بيركس، متى تتمة؟ هل يمكنك الحصول على استرداد؟ :-)
وماذا تريد أن تعرف بمزيد من التفصيل؟
من مقالة تحتوي على "تحت الغطاء" في العنوان، أتوقع وصفًا تقنيًا مفصلاً (يمكن للمؤلف تحليل، على سبيل المثال، النفقات العامة عند تبديل التطبيقات، أو كيفية التعامل مع الوصول المتزامن إلى موارد النظام)، ومقارنة مع النماذج الأخرى (على سبيل المثال، مع جهاز iPhone مكسور الحماية). إنه مثالي لدعمه ببعض القياسات. لقد توقعت ببساطة أكثر بكثير من مقال يحتوي عنوانه على "تحت الغطاء" أكثر من هذا الوصف السطحي للغاية.
هل هناك أي عميل ICQ يعمل بشكل مستمر في الخلفية مثل Skype ولا ينقطع الاتصال؟
التطبيق لديه 10 ثوانٍ للدخول في وضع التوقف المرحلي، وليس 10 دقائق... وأثناء هذه العملية، قد "تعلق" بعض الأجزاء أو لا "تعلق" على الخدمات الخلفية، وقد تم بالفعل إدراج بعضها أعلاه - وهذا ما تسميه Apple "الذكية" "تعدد المهام .... ثم أطلق النظام النار عليها
قد يتطلب التطبيق وقتًا إضافيًا في حالة تنزيل شيء ما أو تحميله أو معالجته. لا علاقة له بنظام تحديد المواقع العالمي (GPS) أو VoIP أو تشغيل الموسيقى، والتي تعمل في الوضع البسيط لفترة غير محدودة.