انواع العمليات (Processes)
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في الدرس السابق رأينا طبقة الـ Android Runtime والعمليات التي بداخلها وخاصة عملية تطبيقنا في هذا الدرس سنرى انواع العمليات التي يستند عليها نظام الاندرويد لتصنيف عملية تطبيقنا.
عند تشغيل اي تطبيق يتم صناعة عملية خاصة به (Linux process) ليعمل بداخلها منفصلاً عن الاخرين. وستضل هذه العملية نشطه الإ في حالة احتياج نظام الاندرويد موارد كالذاكرة (memory) لإستخدامها للتطبيقات الاخرى. والا سوف يقوم النظام بانهاء عمل هذه العملية وذلك يؤدي الى انهاء تطبيقك. فهذا يعني اذا كان تطبيقك سيئ"(مثلاً استخدام خاطئ وقاسي لمكونات مثل: Activity او Service او BroadcastReceiver او يقوم باستخدام الكثير من الموارد) سيقوم نظام الاندرويد بقتل عمليته وهذا يؤدي الى انهاءه.
ترتيب العمليات بحسب الاهمية
عندما يقرر نظام الاندرويد بانهاء عمليه ما فانه يبدء بتصنيفهم بالانواع التاليه, ومن ثم يقرر اي العمليه يجب اغلاقها والاصناف هي:
Foreground Process
وهي العمليات التي تكون في الطليعة.
مثال:
- كـ Activity في تطبيقك يراها المستخدم ويتفاعل معها.
- او ان تطبيقك يستخدم BroadcastReceiver حالياً.
- او ان تطبيقك به Service تقوم بعمل شئ ما حالياً.
في هذه الحاله سيحاول نظام الاندرويد بعدم انهاء هذه العمليه لتطبيقك قدر المستطاع. اي تطبيقك في هذه الحاله لن ينهى في وجه المستخدم.
Visible Process
العمليات الظاهرة, اي ان العمليه تقوم بانجاز شئ ما والمستخدم على علم به.
مثال:
- انشئت تطبيق يحتوي على Activity و Dialog عندما يعرض الـ Dialog للمستخدم وكانت الـ Activity تقوم بعمل ما, فانها في هذه الحاله ظاهرة للمستخدم.
- او ان تطبيقك يحتوي على Service تقوم بعمل مهمه في الخلفيه.
- او ان تطبيقك يحتوي على Service ملتصقه (Bound) بمهمه تقوم على تشغيل خلفيه حيه (live wallpaper).
فهذا النوع يتفاعل معه المستخدم كذلك, ومن سوء الخلق ان يقوم نظام الاندرويد بانهاء العمليه التي تؤدي الى اغلاق تطبيقك في وجه المستخدم.
Service Process
عمليات الخدمات, تطبيقك يحتوي على خدمة (Service).
مثال:
- تقوم بتحميل البيانات من الانترنت.
- او اخد نسخة احتياطيه لقاعدة البيانات.
- او تشغيل موسيقى.
نظام الاندرويد لن ينهي هذا النوع من العلميات, الإ اذا كان يحتاج المزيد من المصادر الذاكرة لتشغيل تطبيقات اخرى و كانت عمليتك تأخد وقت طويل (كتحميل ملفات لمدة 30 دقيقة متواصله). هنا سيقوم بإغلاقها.
Cached Process
العمليات المحفوظة.
مثال:
- قام المستخدم بتصغير تطبيقك فهنا عمليته ستكون محفوظة مؤقتاً.
سيحاول نظام الاندرويد عدم اغلاقها بل سيحاول كذلك عدم اغلاق اي عملية لتطبيقات اخرى محفوظة مؤقتاً! لماذا؟ حتى يكون الوضع سلس للمستخدم عند التنقل من تطبيق الى اخر. ولكن عند حاجة النظام لمزيد من الذاكرة سيقوم باغلاقها فوراً. لذلك نرى بعض الاحيان عند تصغير تطبيق ما لفترة طويله وفتحه مره اخرى فانه يحدث نفسه (اي انه تم انهاءه من قبل النظام وتم تشغيله مره اخرى من قبل المستخدم).
في النهاية لاتقلق من هذه الاشياء, الا اذا رأيت تطبيقك يغلق بشكل تلقائي في وجه المستخدم عند فتحه لمده واستخدامه.
في هذا الدرس تعرفنا على انواع العمليات وعلى ماذا يستند نظام الاندرويد لتصنيف عملية تطبيقنا. في الدروس القادمه سنتعمق في العلميات (الـ Process) وسنرى الخيوط الحاسوبية (الـ Threads) التي تعيش بداخل العمليات.
المصادر والمراجع
- Platform Architecture | Android Developers.
- Process | Android Developers.
- Processes and threads overview | Android Developers.
- Processes and Application Lifecycle | Android Developers.
نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.
محتوى الدورة
الكلمات الدليلية
عن الدرس
1 إعجاب |
1 متابع |
0 مشاركة |
3422 مشاهدات |
منذ 5 سنوات |
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !