שימוש מוגזם בחסימה חלקית של מצב השינה

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

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

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

שליחת משוב

זיהוי הבעיה

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

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

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

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

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

אם יש חסימות חלקיות מוגזמות של מצב השינה ביותר מ-5% מהסשנים באפליקציה בכל המכשירים במהלך תקופה של 28 ימים, הדבר עלול להשפיע על החשיפה של האפליקציה ב-Play אחרי שהמדד יצא מגרסת בטא.

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

תיקון הבעיה

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

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

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

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

למידע נוסף