عمليات قفل تفعيل جزئية متوقفة

قفل التنشيط الجزئي هو آلية في واجهة برمجة التطبيقات PowerManager تسمح للمطوّرين بإبقاء وحدة المعالجة المركزية (CPU) تعمل بعد إيقاف شاشة الجهاز (سواءً بسبب مهلة النظام أو الضغط على زر التشغيل من قِبل المستخدم). يحصل تطبيقك على قفل تنشيط جزئي من خلال استدعاء acquire() مع العلامة PARTIAL_WAKE_LOCK. يصبح قفل التنشيط الجزئي متوقفًا إذا تم الاحتفاظ به لفترة طويلة أثناء تشغيل تطبيقك في الخلفية (لا يظهر أي جزء من تطبيقك للمستخدم). يؤدي هذا الوضع إلى تفريغ بطارية الجهاز لأنّه يمنع الجهاز من الدخول إلى حالات استهلاك الطاقة الأقل. يجب عدم استخدام عمليات قفل التنشيط الجزئية إلا عند الضرورة، ويجب إلغاؤها بمجرد عدم الحاجة إليها.

إذا كان تطبيقك قد فرض قفلًا جزئيًا للتنشيط، يمكنك استخدام الإرشادات الواردة في هذه الصفحة لتشخيص المشكلة وحلّها.

رصد المشكلة

قد لا تعرف دائمًا أنّ عمليات قفل التنشيط الجزئية في تطبيقك متوقفة. إذا سبق لك نشر تطبيقك، يمكن أن تساعدك ميزة "مؤشرات Android الحيوية" في إعلامك بالمشكلة.

مؤشرات Android الحيوية

يمكن أن تساعدك "مؤشرات Android الحيوية" في تحسين أداء تطبيقك من خلال تنبيهك عبر Play Console عندما يُظهر تطبيقك عمليات قفل جزئي للتنشيط لا تنتهي. تسجِّل "مؤشرات Android الحيوية" عمليات قفل التنشيط الجزئية كعمليات متوقّفة عندما يحدث قفل تنشيط جزئي واحد على الأقل لمدة ساعة واحدة في جلسة البطارية أثناء نشاط التطبيق في الخلفية.

يعتمد تعريف جلسة البطارية على إصدار النظام الأساسي.

  • في Android 10، تكون فترة عمل البطارية هي تجميع لكل تقارير البطارية التي تم تلقّيها خلال فترة 24 ساعة معيّنة. يشير تقرير البطارية إلى الفاصل الزمني بين عمليتَي شحن للبطارية، إما من قيمة أقل من% 20 إلى أعلى من% 80 أو من أي مستوى شحن إلى %100.
  • في Android 11، تكون فترة عمل البطارية مدة ثابتة تبلغ 24 ساعة.

يُرجى العِلم أنّ عدد جلسات البطارية المعروضة هو مجموع جميع المستخدِمين الذين تم قياسهم للتطبيق. للحصول على معلومات عن كيفية جمع Google Play لبيانات "مؤشرات Android الحيوية"، يُرجى الاطّلاع على مستندات Play Console.

بعد معرفة أنّ تطبيقك يتضمّن عددًا كبيرًا من عمليات قفل التنشيط الجزئي المتوقفة، تتمثل خطوتك التالية في حلّ المشكلة.

حل المشكلة

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

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

بعد حلّ المشكلة في الرمز البرمجي، تأكَّد من أنّ تطبيقك يُبطل بشكل صحيح عمليات قفل التنشيط باستخدام الأدوات التالية:

  • dumpsys: أداة تقدّم معلومات عن حالة خدمات النظام على الجهاز. للاطّلاع على حالة خدمة الطاقة التي تتضمّن قائمة بعمليات بدء التشغيل المحظورة، يمكنك تشغيل adb shell dumpsys power.

  • Battery Historian: أداة لتحليل تقرير أخطاء Android وتحويله إلى تمثيل مرئي للأحداث المتعلّقة بالطاقة