مدیریت پردازشها در اندروید چگونه صورت میپذیرد؟
سلسله مراتب پردازش در اندروید
یک پردازش در اندروید، در هر زمان خاصی ممکن است در یکی از ۵ وضعیت زیر قرار داشته باشد که به ترتیب مهمترین وضعیتها هستند:
۱- پردازش پیشزمینه (Foreground process): نرمافزاری که شما مشغول استفاده از آن هستید، از جمله پردازشهای پیشزمینه است، دیگر پردازشهای وابسته به یک پردازش پیشزمینه هم جزء پردازشهای پیشزمینه هستند. توجه کنید که همواره تنها چند پردازش در پیشزمینه قرار دارد.
۲- پردازشهای مرئی (Visible process): یک پردازش مرئی در پیشزمینه نیست ولیکن در آنچه شما روی صفحه میبینید، مؤثر است. بهعنوان مثال یک پردازش پیشزمینه را در نظر بگیرید که به شکل یک دایلاگباکس نمایان شده و از شما سؤال میکند که آیا میخواهید نرمافزار مربوطه را ببینید یا نه و نرمافرازی که در پسزمینه در حالت آماده باش قرار دارد، دارای یک پردازش مرئی است.
۳- پردازش مربوط به سرویس (Service process): یک پردازش سرویس با هیچ یک از نرمافزارهای مرئی رابطه ندارد اما در پسزمینه مشغول انجام وظیفهی خاصی است. پخش موسیقی یا دانلود اطلاعات در پسزمینه از جمله پردازشهای سرویس به حساب میآیند. اگر آهنگی را پلی کنید و سپس به نرمافزار دیگری سوییچ کنید، ادامهی پخش موسیقی توسط یک پردازش سرویس دنبال میشود.
۴- پردازش پسزمینه (Background process): پردازشهای پسزمینه در لحظهی اجرا توسط کاربر قابل مشاهده نیستند و اثری روی استفادهی کاربر و کارکرد تلفن ندارند. همیشه تعداد زیادی پردازش در پسزمینه در حال اجراست و شما میتوان اینطور تصور کرد که چنین پردازشهایی متوقف شدهاند. این پردازشها در حافظه نگهداری میشوند تا در صورت نیاز به سرعت به کار خود ادامه دهند، اما توجه کنید که از منابع با ارزشی مثل پردازندهی اصلی استفاده نمیکنند.
۵- پردازشهای خالی (Empty process): یک پردازش خالی اطلاعات هیچ نرمافزار را در خود نگه نمیداند. ممکن است علت ادامهی اجرای آن، استفاده جهت کش نرمافزارها باشد تا در اجرای مجدد، سرعت عملکرد سختافزار بیشتر شود. در صورت نیاز، سیستم عامل چنین پردازشهایی را از بین میبرد.
اما به یک مثال توجه کنید. فرض کنید که شما گوشی اندرویدی خود را روشن و یک نرمافزار پخش موسیقی را اجرا کردهاید. تا زمانی که مشغول استفاده از نرمافزار مذکور باشید، پردازش آن یکی از پردازشهای پیشزمینه محسوب میشود. اگر بدون توقف پخش موسیقی از نرمافزار مورد نظر خارج شوید، ادامهی پخش موسیقی ازطریق یکی از پردازشهای سرویس صورت میگیرد.
به یک مثال دیگر در مورد بازی پرندگان خشمگین توجه کنید. وقتی مشغول بازی هستید، پرندگان خشمگین یکی از پردازشهای پیشزمینه است. اگر پرندگان خشمیگن را کنار گذاشته و به نرمافزار جیمیل سری بزنید، این بازی تبدیل به یکی از پردازشهای پسزمینه میشود چراکه مثل سایر نرمافزارهای پسزمینه، کار خاصی انجام نمیدهد. به محض اینکه دوباره به پرندگان خشمگین بازگردید، پردازش آن در پیشزمینهی سیستم عامل اجرا میشود و به سرعت میتوان به ادامهی بازی پرداخت. وقتی پرندگان خشمگین در پسزمینه مشغول به کار است، هیچ فعالیت خاصی نمیکند، تنها مشکل این است که بخشی از حافظهی رم را به خود اختصاص میدهد تا اطلاعات مربوط به آن کش شده و ادامهی استفاده از آن با سرعتی بالا میسر باشد.
مدیریت خودکار پردازشها
اندروید در مدیریت پردازشها عملکرد خوبی دارد و به همین علت است که نیازی به استفاده از نرمافزارهایی جهت بستن پردازشها ندارید.
اولین کاری که اندروید در مواجهه با کمبود منابع انجام میدهد این است که پردازشهایی با اهمیت کمتر را میبندد، بنابراین پردازشهای خالی و پسزمینه در اولویت هستند و با بستن این دسته از پردازشها، حافظهی دردسترس تا حدی افزایش مییابد. اگر مشکل فراتر از این باشد، اندروید سراغ پردازشهای سرویس میرود. بهعنوان مثال اگر یک بازی سنگین را روی وسیلهای با رم پایین اجرا کنید، اندروید پس از بستن پردازشهای پسزمینه و خالی، سراغ پردازشهای سرویس میرود و آنها را میبندد. لذا ممکن است پخش موسیقی یا دانلود فایل قطع شود.
در بیشتر موارد اندروید به صورت خودکار اعمال ذکر شده را انجام میدهد و نیازی به نگرانی شما نیست. در مدیریت حافظهی رم نیز رفتار اندروید هوشمندانه است بدین ترتیب که همیشه سعی میکند از حافظه برای کش کردن اطلاعات و درنتیجه افزایش سرعت اجرای نرمافزارهای بهره ببرد. توجه کنید که نیازی به خالی گذاشتن حافظهی رم نیست و بهتر است از تمام آن برای افزایش بهرهوری استفاده شود.
قطعاً اندروید هم گاهی اشتباه میکند، به این معنی که درمقابل برخی نرمافزارها به قدری انعطاف به خرج میدهد که نرمافزار موردنظر، عملکرد کلی سیستم را زیر سؤال میبرد. بهعنوان مثال ممکن است یک نرمافزار که کدهای آن به خوبی نوشته نشده، یک پردازش سرویس را اجرا کند و این پردازش برای همیشه در پسزمینه مشغول فعالیت باقی بماند. در این صورت بخشی از پردازنده مشغول خواهد بود و عمر باتری هم کاهش مییابد.
یکی از موارد جالبی که در آنتیویروسها و از جمله Avast میبینیم این است که نرمافزار میخواهد از آیکان خاصی جهت اطلاعرسانی استفاده کند. اگر بخواهید آیکان مربوطه را غیرفعال کنید، آنتی ویروس Avast مخالفت میکند. در واقع اگر آنتی ویروس Avast قادر به نمایش آیکان اطلاعرسانی خود باشد، بهعنوان یک پردازش مهم تلقی شده و لذا اندروید نمیتواند آن را بهعنوان یک پردازش پسزمینه، متوقف کند.
شروع به کار نرمافزارها در پاسخ به رخدادهای خاص
به یک مثال توجه کنید. یک سازندهی نرمافزار ممکن است نرمافزار خود را طوری بنویسد که همزمان با شروع به کار سیستم عامل، اجرا شود و یک سرویس را در پسزمینه اجرا کند. شروع به کار نرمافزار ممکن است در پاسخ به انواع اتفاقات و رویدادها باشد، گرفتن یک عکس، تغییر ارتباط اینترنتی و غیره از جمله رویدادهای ممکن هستند. در این روش نرمافزار قادر است در پاسخ به رویدادهای خاص عملکرد مناسب نشان دهد و دیگر نیازی به اجرای همیشگی آن در پسزمینه نیست.
مدیریت پردازشها
در اندروید نیاز به مدیریت دستی پردازشها نیست اما اگر بخواهید این کار را خودتان انجام دهید، چند راه مختلف پیش روی شما است. در اندروید ۴.۰ به بعد میتوانید به منوی مالتیتسکینگ مراجعه کنید تا با امکانات سادهی مدیریتی روبهرو شوید. برای دسترسی به این قابلیتها دکمهی مالتیتسکینگ خاصی که در نکسوسها (گوشیها و تبلتهایی که گوگل جهت استفاده از آخرین نسخههای اندروید معرفی میکند) دیده میشود را فشار دهید. در دیگر محصولات اندرویدی احتمالاً باید دکمهی خانه را ۲ بار پشت سر هم لمس کنید یا آن را با مکث طولانی لمس نمائید.
نرمافزارهایی که نامشان در منو نمایش داده میشود، به احتمال زیاد پردازشهای پسزمینه هستند. با پرتاب هر یک از پردازشها به سمت راست یا چپ، میتوان آن را بست و از حافظهی دستگاه خارج کرد. انجام چنین کاری ضروری نیست اما ممکن است یک نرمافزار رفتار درستی نداشته باشد و جز بستن آن، راه دیگری نداشته باشید.
بهتر است به صفحهی تنظیمات اندروید هم مراجعه کنید، نام نرمافزار دلخواه را لمس کنید و با استفاده از دکمهی بستن اجباری یا Force Stop آن را به اختیار ببندید.
در نهایت به این مسئله توجه داشته باشید که اندروید سیستم عاملی مبتنی بر لینوکس است و هر یک از نرمافزارهای اجرا شده به یکی از شناسههای کاربری یا حسابهای کاربری لینوکس مرتبط هستند و درنتیجه از یکدیگر جدا میشوند. اگر ابزار اندرویدی خود را روت کنید، نرمافزارها از محیط حفاظتی خود خارج شده و با دسترسی به روت اجرا میشوند که چیزی شبیه به Administrator در سیستم عامل ویندوز است و به نوعی امنیت اندروید را تحتالشعاع قرار میدهد.
نظرات