wake locks חלקיים ממושכים

נעילות חלקיות של מצב השינה הן מנגנון ב-API של PowerManager שמאפשר למפתחים להשאיר את המעבד פועל אחרי שהמסך של המכשיר נכבה (בין אם עקב זמן קצוב לתפוגה של המערכת או עקב לחיצה של המשתמש על לחצן ההפעלה). כדי לקבל נעילת התעוררות חלקית, האפליקציה צריכה לבצע קריאה ל-acquire() עם הדגל PARTIAL_WAKE_LOCK. אם נעילת ההתעוררות חלקית נמשכת זמן רב בזמן שהאפליקציה פועלת ברקע (אף חלק מהאפליקציה לא גלוי למשתמש), היא נתקעת. המצב הזה גורם לריקון הסוללה של המכשיר כי הוא מונע מהמכשיר לעבור למצבי צריכת אנרגיה נמוכים יותר. יש להשתמש בנעילות מצב פעילות חלקיות רק במקרה הצורך, ולשחרר אותן ברגע שהן לא נחוצות יותר.

אם באפליקציה שלכם יש נעילת התעוררות חלקית תקועה, תוכלו להיעזר בהנחיות שבדף הזה כדי לאבחן ולפתור את הבעיה.

זיהוי הבעיה

יכול להיות שלא תמיד תדעו שהחסמויות החלקיות של מצב שינה באפליקציה תקועות. אם כבר פרסמתם את האפליקציה, תוכלו להיעזר בנתוני תפקוד האפליקציה ל-Android כדי לזהות את הבעיה.

תפקוד האפליקציה

נתוני תפקוד האפליקציה יכולים לעזור לכם לשפר את הביצועים של האפליקציה. הם מאפשרים לקבל התראות דרך Play Console כשיש באפליקציה חסימות חלקיות תקועות של מצב ההפעלה. בדוח 'מדדי תפקוד האפליקציה', חסימות חלקיות של מצב שינה נחשבות כ'חסימות תקועות' אם הן מתרחשות לפחות פעם אחת למשך שעה בזמן שהאפליקציה פועלת ברקע.

ההגדרה של סשן סוללה תלויה בגרסה של הפלטפורמה.

  • ב-Android 10, מחזור סוללה הוא צבירת כל דוחות הסוללה שהתקבלו בתקופה של 24 שעות נתונות. דוח סוללה מתייחס למרווח הזמן שבין שתי טעינות של הסוללה, מ-20% טעינה ומטה ל-80% טעינה ומעלה, או מכל רמת טעינה ל-100%.
  • ב-Android 11, מחזור טעינת סוללה הוא תקופה קבועה של 24 שעות.

מספר סשני הסוללה שמוצגים הוא סכום של כל המשתמשים שנמדדו באפליקציה. מידע על האופן שבו Google Play אוספת נתוני תפקוד האפליקציה ב-Android זמין במסמכי העזרה של Play Console.

אחרי שמזהים באפליקציה יותר מדי חסימות חלקיות תקועות של ההתעוררות, השלב הבא הוא לטפל בבעיה.

תיקון הבעיה

מכיוון שנעילות ההתעוררות עלולות לרוקן את הסוללה של המכשיר, לא מומלץ להשתמש בהן אם יש חלופה. המאמר בחירת ה-API הנכון כדי לשמור על המכשיר פעיל יכול לעזור לכם למצוא את הפתרון הטוב ביותר לאפליקציה שלכם.

אם אתם צריכים להשתמש במנעול ההתעוררות, פועלים לפי השיטות המומלצות לשימוש במנעול ההתעוררות כדי לוודא שמנעולי ההתעוררות לא פוגעים ביעילות המכשיר. חשוב במיוחד לוודא שכל מכשיר שרכשתם משוחרר, ולבטל את הנעילה בהקדם האפשרי.

אחרי שמתקנים את הבעיה בקוד, צריך לוודא שהאפליקציה משחררת את נעילת ההתעוררות בצורה נכונה באמצעות הכלים הבאים:

  • dumpsys – כלי שמספק מידע על סטטוס שירותי המערכת במכשיר. כדי לראות את הסטטוס של שירות ההפעלה, כולל רשימה של מנעולי ההפעלה, מריצים את הפקודה adb shell dumpsys power.

  • Battery Historian – כלי שמנתח את הפלט של דוח באג ב-Android ויוצר ייצוג חזותי של אירועים הקשורים לחשמל.