تحسين إعدادات القيلولة ووضع الاستعداد

يتضمّن Android ميزتين لتوفير الطاقة تساعدان على إطالة عمر البطارية للمستخدمين عن طريق إدارة طريقة عمل التطبيقات عندما يكون الجهاز غير متصل بمصدر طاقة: القيلولة وتطبيقات وضع الاستعداد. القيلولة تقلل استهلاك البطارية عن طريق التأجيل نشاط الشبكة ووحدة المعالجة المركزية (CPU) في الخلفية للتطبيقات عند عدم استخدام الجهاز لفترة طويلة فترات زمنية. يؤجِّل وضع الاستعداد للتطبيقات نشاط الشبكة في الخلفية تطبيقات بدون نشاط حديث للمستخدم.

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

يعمل تطبيق "القيلولة" و"تطبيقات وضع الاستعداد" على إدارة سلوك جميع التطبيقات التي تعمل بنظام التشغيل Android 6.0 أو أعلى، بغض النظر عما إذا كانت تستهدف المستوى 23 من واجهة برمجة التطبيقات على وجه التحديد. للمساعدة في ضمان تقديم أفضل تجربة للمستخدمين، اختبِر تطبيقك في ميزتَي "القيلولة" و"التطبيق" أوضاع الاستعداد وإجراء أي تعديلات ضرورية على الرمز ما يلي: الأقسام التفاصيل.

التعرّف على القيلولة

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

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

الشكل 1. يوفر القيلولة نافذة صيانة متكررة التطبيقات استخدام الشبكة والتعامل مع الأنشطة المعلّقة.

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

عندما يوقظ المستخدم الجهاز من خلال تحريكه أو تشغيل الشاشة عند توصيل الشاحن، يخرج النظام من القيلولة، وتستأنف جميع التطبيقات الوضع الطبيعي الأخرى.

قيود القيلولة

يطبّق النظام القيود التالية على تطبيقاتك أثناء استخدام "القيلولة":

  • يعلّق الوصول إلى الشبكة.
  • يتجاهل الاستيقاظ والأقفال.
  • تأجيل عادي AlarmManager المنبّهات، بما في ذلك setExact() أو setWindow(), إلى نافذة الصيانة التالية.
    • إذا كنت بحاجة إلى ضبط منبّهات تصدر أثناء استخدام وضع "القيلولة"، استخدِم setAndAllowWhileIdle() أو setExactAndAllowWhileIdle()
    • تم ضبط المنبّهات مع setAlarmClock() ويستمر في إطلاق النار بشكل طبيعي. يخرج النظام من "القيلولة" قبل وقت قصير من ذلك تطلق أجهزة إنذار.
  • لا يتم إجراء عمليات بحث عن شبكات Wi-Fi.
  • عدم السماح بتشغيل محوّلات المزامنة.
  • عدم السماح JobScheduler الجري.

قائمة التحقّق الخاصة بالقيلولة

ضبط تطبيقك على ميزة "القيلولة"

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

للمساعدة في جدولة المنبّهات، يمكنك استخدام اثنين من "AlarmManager" الطريقتان: setAndAllowWhileIdle() setExactAndAllowWhileIdle() يمكنك ضبط المنبّهات بهذه الطرق. تطلق النار حتى إذا كان الجهاز في وضع القيلولة.

من المحتمل أيضًا أن تؤثر قيود "القيلولة" المفروضة على الوصول إلى الشبكة في تطبيقك، خاصةً إذا كان التطبيق يعتمد على رسائل الوقت الفعلي مثل الدردات أو الإشعارات. إذا كان تطبيقك يتطلب اتصالاً مستمرًا بالشبكة تلقّي الرسائل، استخدِم المراسلة عبر السحابة الإلكترونية من Firebase (FCM) في حال ممكن.

للتأكّد من أنّ تطبيقك يعمل على النحو المتوقَّع مع ميزة "القيلولة"، يمكنك استخدام أوامر adb لإجبار النظام على الدخول والخروج من ميزة "القيلولة" ومراقبة سلوك تطبيقك. للحصول على التفاصيل، يمكنك مراجعة الاختبار باستخدام ميزة القيلولة وتطبيقات وضع الاستعداد

التعرّف على وضع الاستعداد للتطبيقات

يتيح وضع "تطبيقات الاستعداد" للنظام إمكانية تحديد أنّ أحد التطبيقات في وضع عدم النشاط عندما يكون المستخدم غير نشِط لفترة قصيرة. تستخدمه بنشاط. ويحدد النظام هذا عندما لا لمس التطبيق لفترة زمنية معينة بدون أي من الشروط التالية تنطبق:

  • يقوم المستخدم بتشغيل التطبيق بشكل صريح.
  • يتضمّن التطبيق عملية في المقدّمة حاليًا، إمّا كنشاط أو خدمة تعمل في المقدّمة أو قيد الاستخدام في نشاط آخر أو خدمة تعمل في المقدّمة.
  • يُنشئ التطبيق إشعارًا يظهر للمستخدمين على شاشة القفل أو في قائمة الإشعارات.

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

استخدام خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" للتفاعل مع تطبيقك عندما يكون الجهاز غير نشِط لفترة قصيرة

Firebase Cloud المراسلة (FCM) هي خدمة يتم توصيلها من السحابة الإلكترونية إلى الجهاز وتتيح لك تقديم الدعم في الوقت الفعلي. الرسائل المتنقلة بين خدمات الخلفية والتطبيقات على أجهزة Android. المراسلة عبر السحابة الإلكترونية من Firebase توفّر اتصالاً واحدًا مستمرًا بالسحابة الإلكترونية. جميع التطبيقات بحاجة إلى يمكن لميزة المراسلة في الوقت الفعلي مشاركة هذا الاتصال. عملية الربط هذه المشترَكة يحسن استهلاك البطارية بشكل كبير من خلال جعله غير ضروري تطبيقات متعددة للحفاظ على اتصالاتها المستمرة والمنفصلة، والتي يمكنها استنزاف البطارية بسرعة. لهذا السبب، إذا كان تطبيقك يتطلب المراسلة مع خدمة الخلفية، ننصحك بشدة باستخدام ميزة "المراسلة عبر السحابة الإلكترونية من Firebase" بدلاً من الحفاظ على اتصالك المستمر بالشبكة.

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

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

كإحدى أفضل الممارسات العامة، إذا كان تطبيقك يتطلب المراسلة التي تظهر بعد استلام التطبيق، استخدِم المراسلة عبر السحابة الإلكترونية من Firebase إذا كان تطبيقك يستخدم ميزة "المراسلة عبر السحابة الإلكترونية من Firebase" حاليًا، تأكَّد من أنّه يستخدم الرسائل ذات الأولوية العالية. فقط للرسائل التي ينتج عنها إشعارات موجَّهة للمستخدم.

الدعم لحالات الاستخدام الأخرى

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

يمكن للتطبيق الذي تم استثناؤه جزئيًا استخدام الشبكة وإجراء تنشيط جزئي. القفل أثناء القيلولة وتطبيقات وضع الاستعداد. ومع ذلك، لا تزال قيود أخرى سارية. بالتطبيق، تمامًا كما تفعل مع التطبيقات الأخرى. على سبيل المثال، وظائف التطبيق ومزامنتها يتم تأجيلها إلى المستوى 23 من واجهة برمجة التطبيقات والمستويات الأدنى، لا يتم تنشيط AlarmManager إنذار. يمكن للتطبيق التحقق مما إذا كان الموجودة حاليًا على قائمة الإعفاءات من خلال الاتصال isIgnoringBatteryOptimizations()

يمكن للمستخدمين ضبط قائمة التطبيقات المستثناة يدويًا من خلال الإعدادات. > البطارية > تحسين البطارية بدلاً من ذلك، قد يتجاهل توفِّر التطبيقات طرقًا لتطلب من المستخدمين استثناءها:

يمكن للتطبيق التحقّق مما إذا كان مُدرَجًا حاليًا في قائمة الإعفاءات من خلال الاتصال isIgnoringBatteryOptimizations()

الاختبار باستخدام ميزة "القيلولة" و"وضع الاستعداد للتطبيقات"

للمساعدة في ضمان تقديم تجربة رائعة للمستخدمين، اختبِر تطبيقك بالكامل في Doze. وتطبيقات وضع الاستعداد.

اختبار تطبيقك باستخدام ميزة Doze

يمكنك اختبار وضع "القيلولة" من خلال تنفيذ الخطوات التالية:

  1. إعداد جهاز أو جهاز افتراضي باستخدام نظام التشغيل Android 6.0 (واجهة برمجة التطبيقات) المستوى 23) أو صورة نظام أعلى.
  2. عليك ربط الجهاز بجهاز التطوير وتثبيت تطبيقك.
  3. شغِّل تطبيقك وتركه نشطًا.
  4. يمكنك فرض تفعيل وضع عدم النشاط على النظام من خلال تنفيذ الأمر التالي:
        $ adb shell dumpsys deviceidle force-idle
        
  5. عندما تصبح جاهزًا، اخرج من وضع عدم النشاط من خلال تنفيذ الأمر التالي:
        $ adb shell dumpsys deviceidle unforce
        
  6. أعِد تفعيل الجهاز من خلال تنفيذ الأمر التالي:
        $ adb shell dumpsys battery reset
        
  7. عليك مراقبة سلوك تطبيقك بعد إعادة تفعيل الجهاز. الماركة التأكد من أن التطبيق يتعافى على نحو سلس عندما يخرج الجهاز من القيلولة.

اختبار تطبيقك باستخدام وضع الاستعداد للتطبيقات

لاختبار وضع الاستعداد للتطبيقات باستخدام تطبيقك، عليك اتّباع الخطوات التالية:

  1. إعداد جهاز أو جهاز افتراضي باستخدام نظام التشغيل Android 6.0 (واجهة برمجة التطبيقات) المستوى 23) أو صورة نظام أعلى.
  2. عليك ربط الجهاز بجهاز التطوير وتثبيت تطبيقك.
  3. شغِّل تطبيقك وتركه نشطًا.
  4. فرض التطبيق على وضع الاستعداد للتطبيقات من خلال تشغيل الأوامر التالية:
        $ adb shell dumpsys battery unplug
        $ adb shell am set-inactive <packageName> true
        
  5. يمكنك محاكاة تنشيط تطبيقك باستخدام الطلبات التالية:
        $ adb shell am set-inactive <packageName> false
        $ adb shell am get-inactive <packageName>
        
  6. مراقبة سلوك تطبيقك بعد تنشيطه. التأكد من أن التطبيق استرداده على نحو سلس من وضع الاستعداد. وعلى وجه التحديد، تحقق مما إذا كان تطبيقك تعمل الإشعارات والوظائف في الخلفية كما هو متوقع.

حالات الاستخدام المقبولة للإعفاء

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

لمزيد من المعلومات، راجع دعم حالات الاستخدام الأخرى.

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