أداة تجميد التطبيقات المخزَّنة مؤقتًا

يتوافق نظام التشغيل Android 11 QPR3 أو الإصدارات الأحدث مع أداة "تجميد" التطبيقات التي تم تخزينها مؤقتًا. تعمل هذه الميزة على إيقاف تنفيذ العمليات المخزَّنة مؤقتًا وتقليل استخدام موارد التطبيقات التي تُظهر سلوكًا غير مرغوب فيه والتي قد تحاول العمل أثناء الاحتفاظ بها في ذاكرة التخزين المؤقت. يُجمِّد الإطار التطبيقات المخزّنة مؤقتًا عن طريق نقل عملياتها إلى مجموعة cgroup مجمّدة، ويؤدي ذلك إلى تقليل استهلاك وحدة المعالجة المركزية (CPU) النشطة وغير النشطة في حال توفّر تطبيقات نشطة مخزّنة مؤقتًا. يمكن تفعيل أداة تجميد التطبيقات باستخدام علامة إعدادات النظام أو خيار المطوِّر.

استخدام أداة تجميد التطبيقات

يستفيد برنامج تجميد التطبيقات المخزّنة مؤقتًا من أداة تجميد cgroup v2 للنواة. يمكن للأجهزة التي يتم شحنها مزوّدة بنظام تشغيل متوافق تفعيل هذه الميزة (اختياريًا). لإجراء ذلك، فعِّل خيار المطوّر "تعليق تنفيذ التطبيقات المخزّنة مؤقتًا" أو اضبط علامة إعدادات الجهاز activity_manager_native_boot use_freezer على true. مثلاً:

adb shell device_config put activity_manager_native_boot use_freezer true && adb reboot

يتم إيقاف وضع "التجميد" عند ضبط العلامة use_freezer على "خطأ" أو عند إيقاف خيار المطوّر. يمكنك تفعيل هذا الإعداد أو إيقافه من خلال تغيير أحد إعدادات الجهاز في إصدار أو تحديث للبرامج.

لا يعرِض "مجمِّد التطبيقات" واجهات برمجة التطبيقات الرسمية (ولا يتضمّن مرجعًا لتطبيق العميل)، ولكنه يستخدم واجهات برمجة تطبيقات النظام المخفية setProcessFrozen وenableFreezer. لمعرفة تفاصيل عن واجهات برمجة التطبيقات هذه، يُرجى الرجوع إلى ActivityManager Process.java وActivityManagerService API. يمكن للمطوّرين أيضًا الرجوع إلى رمز العميل في ActivityManager للاطّلاع على التجارب.

التعامل مع الميزات المخصّصة

لا يُتوقّع عادةً أن تُجري العمليات أي عمل عند تخزينها مؤقتًا، ولكن قد تتضمّن بعض التطبيقات ميزات مخصّصة تتطلّب عمليات يُتوقّع أن يتم تشغيلها أثناء التخزين المؤقت. عند تفعيل أداة تجميد التطبيقات على جهاز يعمل بتطبيق من هذا النوع، يتم تجميد العمليات التي تم تخزينها مؤقتًا وقد يؤدي ذلك إلى إيقاف الميزات المخصّصة.

كحل بديل، إذا كان التطبيق يتضمّن عملية تحتاج إلى تنفيذ أنشطة أثناء ملفها الشخصي في ذاكرة التخزين المؤقت، يمكنك تغيير حالة العملية إلى "غير محفوظة في ذاكرة التخزين المؤقت" (مثل Bound ForeGround Service (BFGS) أو المقدّمة) قبل أن تحتاج العملية إلى تنفيذ أي عمل للسماح للتطبيق بالبقاء نشطًا.

اختبار أداة تجميد التطبيقات

للتأكّد من أنّ أداة تجميد التطبيقات تعمل على النحو المطلوب، يمكنك استخدام المراجع التالية:

  • ابحث عن قائمة بالعمليات المتوقفة باستخدام الأمر adb shell dumpsys activity وgrep للبحث عن Apps frozen:.

  • تحقّق من توفّر ملف /sys/fs/cgroup/uid_0/cgroup.freeze.

  • يمكنك عرض logcat الذي يعرض الإدخالات المجمّدة وغير المجمّدة في كل مرة تتم فيها نقل عملية إلى أو من "المجمّر". مثلاً:

    adb logcat | grep -i "\(freezing\|froze\)"