يمنح النظام الأولوية لطلبات التطبيقات للحصول على الموارد استنادًا إلى حالة الجهاز وحالة التطبيق ومجموعة التطبيقات في وضع الاستعداد.
يمكن لنظام Android فرض حدود الموارد بطريقتَين مختلفتَين. تتمثل إحدى طرق تحسين استخدام الموارد في تأجيل تنفيذ المهام إلى أن يخرج الجهاز من حالة انخفاض الطاقة، مثل وضع الهدوء. على سبيل المثال، يتم تأجيل المهام العادية والتنبيهات غير الدقيقة حتى يتم تنفيذها بعد خروج الجهاز من وضع التوقّف العميق.
وهناك طريقة أخرى وهي تقليل عدد المرات التي يمكن للتطبيق فيها تنشيط الجهاز وتنفيذ المهام، استنادًا إلى مجموعة وضع الاستعداد الحالية للتطبيق. يمكن للنظام تقليل كل من الوتيرة (عدد المرات التي يوقِظ فيها التطبيق الجهاز) والمدة الإجمالية (المدة التي يبقى فيها الجهاز مفعّلاً). على سبيل المثال، إذا كان التطبيق في حزمة الاستعداد النادرة، يمكن للتطبيق تنفيذ المهام المُجدوَلة لمدة إجمالية تبلغ 10 دقائق في فترة متغيّرة تبلغ 24 ساعة.
يُرجى العِلم أنّ WorkManager يستخدم JobScheduler لجدولة المهام عندما يكون التطبيق غير مرئي، وبالتالي يتأثر العمال بحدود موارد المهام.
يمكنك الاطّلاع على مزيد من المعلومات عن القيود من خلال قراءة:
- حدود الموارد استنادًا إلى حالة الجهاز
- حدود الموارد استنادًا إلى حالة التطبيق
- حدود الموارد استنادًا إلى حزمة التطبيقات في وضع الاستعداد
يُرجى العِلم أنّ حالة الجهاز وحالة التطبيق يمكن أن تحلّ محل حدود حزمة التطبيقات في وضع الاستعداد. على سبيل المثال، إذا كان الجهاز قيد الشحن، يسمح النظام للتطبيقات في مجموعة وضع الاستعداد المتوقّف بتنفيذ المهام لأكثر من 10 دقائق في فترة متجدّدة تبلغ 24 ساعة.
حدثت تغييرات في السلوك أثّرت أيضًا في حدود الموارد. اطّلِع على التغييرات في سلوك Android التي تؤثّر في حدود موارده لمعرفة المزيد من المعلومات.
حدود الموارد استنادًا إلى حالة الجهاز
يمكن للنظام أيضًا فرض حدود الموارد أو استثناؤها استنادًا إلى حالة الجهاز. على سبيل المثال، يتم منح الجهاز في حالة الشحن إذن وصول غير محدود إلى الموارد بغض النظر عن حزمة التطبيقات في وضع الاستعداد.
حالة الجهاز |
الوظائف |
المنبّهات |
الوصول إلى الشبكة |
Firebase Cloud Messaging |
جارٍ الشحن |
ما مِن حدود تنفيذ باستثناء حزمة الحجز المحدود |
لا توجد حدود تنفيذ لجميع حِزم وضع الاستعداد وحالات العمليات، إلا إذا قيّد المستخدم يدويًا استخدام البطارية للتطبيق. |
ما مِن قيود. |
ما مِن قيود. |
الشاشة قيد التفعيل |
يتم فرض حدود التنفيذ استنادًا إلى الحزمة الاحتياطية. |
يتم فرض حدود التنفيذ استنادًا إلى عملية التطبيق ومجموعة التطبيقات في وضع الاستعداد. |
يعتمد الوصول على حزمة "الانتظار" أو حالة عملية التطبيق. |
ما مِن قيود. |
الشاشة مطفأة وميزة "الوضع المنخفض الطاقة" مفعَّلة |
يتم فرض حدود التنفيذ استنادًا إلى حزمة الاستراحة، ويُؤجَّل التنفيذ إلى نافذة الصيانة في وضع السكون. |
يتم فرض حدود التنفيذ استنادًا إلى الحزمة الاحتياطية. المنبّهات العادية: يتم تأجيلها إلى نافذة الصيانة الخاصة بوضع "الاستراحة" المنبّهات أثناء التوقف: لا يُسمح بأكثر من 7 تنبيهات في الساعة |
محظور أثناء وضع "الاستراحة" |
الأولوية العالية: لا حدود لعدد عمليات التنفيذ الأولوية العادية: تأخير نافذة الصيانة إلى وضع السكون |
حدود الموارد استنادًا إلى حالة التطبيق
يعتمد ما إذا كان النظام سيفرض حدود الموارد في حزمة التطبيق في وضع الاستعداد أم لا
على أهمية عملية التطبيق. اطّلِع على
ActivityManager.RunningAppProcessInfo.importance
لفهم المستويات المختلفة لأهمية العملية.
يمكن لمستخدم الجهاز أيضًا اختيار تجاوز تحسينات إدارة الطاقة للتطبيقات يدويًا، ما يؤدي إلى إلغاء حدود حِزم التطبيقات في وضع الاستعداد.
حالة التطبيق |
الوظائف |
المنبّهات |
الشبكة |
عملية التطبيق مرئية أو في المقدّمة |
ما مِن حدود لعدد عمليات التنفيذ |
ما مِن حدود لعدد مرّات الظهور |
ما مِن قيود. |
عملية التطبيق تعمل خدمة تعمل في المقدّمة |
يتم فرض حدود التنفيذ استنادًا إلى الحزمة الاحتياطية*** |
يتم فرض حدود معدّل التكرار استنادًا إلى الحزمة الاحتياطية. |
ما مِن قيود. |
حظر المستخدم يدويًا لاستهلاك التطبيق للبطارية |
التنفيذ محظور |
التنفيذ محظور |
يعتمد الوصول على سلوك الحزمة الاحتياطية. |
ألغي المستخدم يدويًا القيود المفروضة على استخدام التطبيق للبطارية. |
الحد الأقصى لتنفيذ الطلبات كبير*** |
ما مِن حدود لعدد عمليات التنفيذ |
غير محدود ما لم يكن الجهاز في وضع "توفير البيانات" |
*** تغيّر سلوك حصة التنفيذ للمهام في Android 16. قبل الإصدار 16 من Android، لم يكن هناك حدود القصوى للتنفيذ عندما كان التطبيق يشغّل خدمة تعمل في المقدّمة أو عندما لم يفرض المستخدم أي قيود على استخدام التطبيق للبطارية.
حدود الموارد استنادًا إلى حزمة التطبيقات في وضع الاستعداد
ملاحظة: لا تضمن القيم الواردة في هذا الجدول مدد التنفيذ، لأنّ حالات الجهاز الأخرى أو تغييرات الحِزم يمكن أن تؤثّر في قيود الموارد. وقد تتغيّر القيم أيضًا في إصدارات Android المستقبلية.
يمكن تقييد المهام العادية والمهام المُسرَّعة وأجهزة التنبيه وإمكانية الوصول إلى الشبكة استنادًا إلى حزمة التطبيقات في وضع الاستعداد. تعرَّف على كيفية تأثير مجموعات التطبيقات في وضع الاستعداد في تطبيقك باستخدام هذه الحدود التقريبية لإدارة الطاقة كدليل إرشادي. للحصول على أفضل أداء، يجب اتّباع أفضل ممارسات وضع الاستعداد للتطبيقات وتحسين استخدام البطارية لواجهات برمجة التطبيقات لجدولة المهام.
يُرجى العِلم أنّه اعتبارًا من Android 13، لم تعُد مجموعة التطبيقات التي تعمل في وضع الاستعداد تحدد عدد إشعارات FCM ذات الأولوية العالية التي يمكن للتطبيق استخدامها.
حزمة التطبيقات في وضع الاستعداد |
الوظائف العادية* |
المهام المُعجَّلة** |
المنبّهات |
الشبكة |
المراجع النشطة: |
ما يصل إلى 20 دقيقة في فترة متغيّرة تبلغ 60 دقيقة*** |
ما يصل إلى 30 دقيقة خلال فترة 24 ساعة متجدّدة*** |
ما مِن حدود لعدد عمليات التنفيذ |
ما مِن قيود. |
المجموعة العاملة: |
ما يصل إلى 10 دقائق خلال فترة متغيّرة تبلغ 4 ساعات |
ما يصل إلى 15 دقيقة خلال فترة متغيّرة تبلغ 24 ساعة |
ما يصل إلى 10 في الساعة |
ما مِن قيود. |
المتكرّرة: |
ما يصل إلى 10 دقائق خلال فترة متغيّرة تبلغ 12 ساعة |
ما يصل إلى 10 دقائق خلال فترة متغيرة تبلغ 24 ساعة |
ما يصل إلى 2 في الساعة |
ما مِن قيود. |
نادرة: |
ما يصل إلى 10 دقائق خلال فترة متغيرة تبلغ 24 ساعة |
ما يصل إلى 10 دقائق خلال فترة متغيرة تبلغ 24 ساعة |
يمكن إجراء طلب واحد فقط في الساعة. |
غير مفعَّل |
محظور: |
مرة واحدة في اليوم لمدة تصل إلى 10 دقائق |
ما يصل إلى 5 دقائق في فترة زمنية متغيرة تبلغ 24 ساعة |
منبّه واحد في اليوم، إما منبّه محدّد الوقت أو منبّه غير محدّد الوقت |
غير مفعَّل |
* تصف المهام العادية المهام التي لا تستخدم علامتَي setUserInitiated(true)
أو setExpedited(true)
في JobScheduler أو العمال المُسرَّعون
في WorkManager.
** تفرض المهام المُسرَّعة حدًا أقصى منفصلاً للتنفيذ مقارنةً بالمهام العادية، ويمكن ضبطها في WorkManager لمواصلة التنفيذ باستخدام حدود تنفيذ المهام العادية بعد استنفاد الحدود المُسرَّعة.
*** تغيّر سلوك حصة التنفيذ للمهام في Android 16. قبل الإصدار 16 من Android، لم يكن هناك حدّ أقصى لتنفيذ العمليات عندما يكون التطبيق في حزمة الاستعداد النشط.
تغييرات في سلوك Android تؤثّر في حدود الموارد
أجرت تحديثات Android التالية تغييرات على حدود موارد التطبيقات.
Android 16
تغيير في سلوك تحسينات حصة JobScheduler
عدّل نظام التشغيل Android حصة وقت التشغيل العادي والمُسرَّع لتنفيذ المهام استنادًا إلى العوامل التالية:
- حزمة التطبيقات الاحتياطية التي يندرج التطبيق ضمنها
- إذا بدأت المهمة التنفيذ عندما يكون التطبيق في حالة "أهم التطبيقات"
- إذا كانت المهمة قيد التنفيذ أثناء تشغيل "خدمة تعمل في المقدّمة"
Android 13
تغيير في سلوك حصص "المراسلة عبر السحابة الإلكترونية من Firebase" (FCM) ذات الأولوية العالية
- لم تعُد مجموعات التطبيقات في وضع الاستعداد تحدِّد عدد رسائل المراسلة عبر السحابة الإلكترونية من Firebase ذات الأولوية العالية التي يمكن للتطبيق استخدامها.
- يُخفض النظام الآن أولوية الرسائل ذات الأولوية العالية إذا رصد تطبيقًا يُرسِل باستمرار رسائل ذات أولوية عالية لا تؤدي إلى إرسال إشعار.
- للحصول على الإرشادات الحالية حول الرسائل ذات الأولوية العالية، يُرجى الرجوع إلى مستندات Firebase المتعلقة بضبط أولوية الرسائل وإدارتها.
Android 9
تم طرح ميزة "مجموعات تطبيقات وضع الاستعداد"
يقدّم نظام التشغيل Android 9 ميزة جديدة لإدارة البطارية، وهي "مجموعات التطبيقات في وضع الاستعداد". تساعد "مجموعات التطبيقات في وضع الاستعداد" النظام في منح الأولوية لطلبات التطبيقات للحصول على الموارد استنادًا إلى معدل استخدام التطبيقات ووقت استخدامها مؤخرًا. استنادًا إلى أنماط استخدام التطبيقات، يتم وضع كل تطبيق في إحدى مجموعات الأولويات الخمس. يحدّ النظام من موارد الجهاز المتاحة لكل تطبيق استنادًا إلى الحزمة التي يندرج تحتها التطبيق.