ניהול כוח בפלטפורמה

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

לְנַמְנֵם

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

מכשירי סרק ב-Doze נכנסים מעת לעת לחלון תחזוקה, שבמהלכו אפליקציות יכולות להשלים עבודה ממתינה (סנכרון, עבודות וכו'). לאחר מכן נמנם מחדש את השינה לפרק זמן ארוך יותר, ולאחר מכן חלון תחזוקה נוסף. הפלטפורמה ממשיכה את רצף השינה/תחזוקה של Doze, ומגדילה את משך הסרק בכל פעם, עד שמגיעים לכל היותר כמה שעות שינה. בכל עת, מכשיר בדוז נשאר מודע לתנועה ועוזב מיד את דוז אם מזוהה תנועה.

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

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

דרישות לנמנם

תמיכה ב-Doze דורשת שלמכשיר יהיה שירות הודעות ענן, כגון Firebase Cloud Messaging (FCM) . אירועי טריגר חיצוניים, כגון הודעות ענן, יכולים להעיר אפליקציות באופן זמני לעבודה בזמן שהמכשיר נשאר במצב Doze.

תמיכה מלאה ב-Doze דורשת גם גלאי תנועה משמעותי (SMD) במכשיר; עם זאת, מצב Doze קל משקל באנדרואיד 7.0 ומעלה אינו דורש SMD. אם Doze מופעל במכשיר ש:

  • בעל SMD, מתרחשות אופטימיזציות מלאות של Doze (כולל אופטימיזציות קלות משקל).
  • אין לו SMD, רק האופטימיזציות הקלות של Doze מתרחשות.

מחזור החיים של נמנם

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

איתור

הפלטפורמה מזהה שמכשיר לא פעיל כאשר:

  • המכשיר נייח (באמצעות SMD).
  • מסך המכשיר כבוי למשך זמן מסוים.

מצב הנמנום אינו מתחבר כאשר מכשיר המופעל באמצעות סוללה מחובר למטען מתח.

במהלך דוז

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

  • לאפליקציות אין גישה לרשת.
  • התעלמו מ-Wakelocks של האפליקציה.
  • אזעקות נדחות. לא כולל אזעקות שעון מעורר והתראות שהוגדרו באמצעות setAndAllowWhileIdle() (מוגבל ל-1 לכל 15 דקות לכל אפליקציה ב-Doze). הפטור הזה מיועד לאפליקציות (כגון יומן) שחייבות להציג התראות על תזכורת לאירועים.
  • סריקות Wi-Fi אינן מבוצעות.
  • SyncAdapter מסנכרן ועבודות JobScheduler נדחות עד לחלון התחזוקה הבא.
  • אפליקציות שמקבלות הודעות SMS ו-MMS מוכנסות לרשימת היתרים זמנית כדי שהן יוכלו להשלים את העיבוד שלהן.

יְצִיאָה

הפלטפורמה יוצאת מהמכשיר מ-Doze כשהיא מזהה:

  • אינטראקציה של משתמש עם מכשיר
  • תנועת המכשיר
  • מסך המכשיר נדלק
  • אזעקת שעון מעורר קרובה

הודעות אינן גורמות ליציאה מהמכשיר מ-Doze.

אנדרואיד 7.0 ומעלה מרחיב את Doze על ידי הפעלת מצב שינה קל במהלך כיבוי המסך, לפני שהמכשיר אינו פעיל.

איור 1. מצבי נמנום עבור התקנים לא נייחים ונייחים
פעולה לְנַמְנֵם דוז קל משקל
הדק מסך כבוי, על סוללה, נייח מסך כבוי, על סוללה (מנותק)
תִזמוּן מגדילים ברציפות את התקופות עם תחזוקה תקופות חוזרות של N דקות עם חלונות תחזוקה
הגבלות אין גישה לרשת, נעילת השכמה או סריקת GPS/Wi-Fi; אזעקות ועבודות/סנכרון נדחו אין גישה לרשת; עבודות/סנכרון נדחו למעט במהלך חלונות תחזוקה
התנהגות רק הודעות דחיפה בעדיפות גבוהה התקבלו כל ההודעות בזמן אמת (הודעות מיידיות, שיחות וכו') שהתקבלו; הודעת דחיפה בעדיפות גבוהה מאפשרת גישה זמנית לרשת
יְצִיאָה אזעקת תנועה, הפעלת מסך או שעון מעורר מסך דולק

אינטראקציה עם המתנה לאפליקציה

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

שילוב של דוז

כאשר Doze מופעל, מכשירים התומכים ב- SENSOR_TYPE_SIGNIFICANT_MOTION מבצעים אופטימיזציות מלאות של Doze (כולל אופטימיזציות קלות משקל); מכשירים ללא SMD מבצעים רק אופטימיזציות קלות משקל של Doze. אנדרואיד בוחרת אוטומטית את האופטימיזציות המתאימות של Doze ואין צורך בתצורת הספק.

כדי להפעיל Doze עבור מכשיר:

  1. אשר שלמכשיר מותקן שירות הודעות ענן.
  2. בתצורת קובץ שכבת-העל של ההתקן overlay overlay/frameworks/base/core/res/res/values/config.xml , הגדר את config_enableAutoPowerModes ל- true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    ב-AOSP, פרמטר זה מוגדר כ- false (נמנם מושבת) כברירת מחדל.
  3. אשר שאפליקציות ושירותים שנטענו מראש:
  4. אשר שהשירותים הדרושים פטורים מ-Doze.

טיפים

בדיקה ואופטימיזציה של אפליקציות

בדוק את כל האפליקציות (במיוחד אפליקציות טעונות מראש) במצב Doze. לפרטים, עיין בבדיקה עם Doze ו-App Standby .