חסימות חלקיות של מצב השינה הן מנגנון ב-API של PowerManager
שמאפשר למפתחים להשאיר את המעבד פועל אחרי שהמסך של המכשיר נכבה (בין אם בגלל זמן קצוב לתפוגה של המערכת או בגלל שהמשתמש לחץ על לחצן ההפעלה). כדי לקבל נעילת התעוררות חלקית, האפליקציה צריכה לקרוא ל-acquire()
עם הדגל PARTIAL_WAKE_LOCK
, או להשתמש בממשקי API אחרים שמקבלים נעילת התעוררות.
אם נעילת ההתעוררות חלקית נמשכת זמן רב בזמן שהאפליקציה פועלת ברקע (אף חלק מהאפליקציה לא גלוי למשתמש), היא נתקעת. המצב הזה גורם לריקון הסוללה של המכשיר כי הוא מונע מהמכשיר לעבור למצבי צריכת אנרגיה נמוכים יותר. יש להשתמש בנעילות מצב פעילות חלקיות רק במקרה הצורך, ולשחרר אותן ברגע שהן לא נחוצות יותר.
אם באפליקציה שלכם יש נעילת התעוררות חלקית תקועה, תוכלו להיעזר בהנחיות שבדף הזה כדי לאבחן ולפתור את הבעיה.
זיהוי הבעיה
יכול להיות שלא תמיד תדעו שהחסמויות החלקיות של מצב שינה באפליקציה תקועות. אם כבר פרסמתם את האפליקציה, תפקוד האפליקציה ב-Android יכול לעזור לכם לזהות את הבעיה.
תפקוד האפליקציה
נתוני תפקוד האפליקציה יכולים לעזור לכם לשפר את הביצועים של האפליקציה. הם מאפשרים לקבל התראות דרך Play Console כשיש באפליקציה חסימות חלקיות תקועות של מצב ההפעלה. מדד תפקוד האפליקציה ב-Android מדווח על חסימות חלקיות של מצב שינה כחסימות ממושכות אם מתרחשת לפחות חסימה אחת של שעה בזמן שהאפליקציה פועלת ברקע, בתקופה של 24 שעות.
מספר סשני הסוללה שמוצגים הוא סכום של כל המשתמשים שנמדדו באפליקציה. מידע על האופן שבו Google Play אוספת נתוני תפקוד האפליקציה ב-Android זמין במסמכי העזרה של Play Console.
אחרי שמזהים באפליקציה חסימות חלקיות של מצב ההפעלה, השלב הבא הוא לטפל בבעיה.
תיקון הבעיה
מכיוון שנעילות ההתעוררות עלולות לרוקן את הסוללה של המכשיר, לא מומלץ להשתמש בהן אם יש חלופה. המאמר בחירת ה-API הנכון כדי לשמור על המכשיר פעיל יכול לעזור לכם למצוא את הפתרון הטוב ביותר לאפליקציה שלכם.
אם אתם צריכים להשתמש במנעול הפעלה, פועלים לפי השיטות המומלצות למנעול הפעלה כדי לוודא שמנעולי ההפעלה לא פוגעים ביעילות המכשיר. חשוב במיוחד לוודא שכל מכשיר שאתם רוכשים משוחרר, ולפתוח את הנעילה בהקדם האפשרי.
אחרי שתתקנו את הבעיה בקוד, תוכלו לאמת את התיקונים באמצעות כלים מקומיים לניפוי באגים של נעילת ההתעוררות.
למידע נוסף
מומלץ עבורך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- פריימים קפואים
- הרצת נקודות השוואה באינטגרציה רציפה (CI)
- יצירה ומדידה של פרופילים בסיסיים בלי Macrobenchmark