ניהול צריכת החשמל של הפלטפורמה באמצעות Doze

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

מידע על 'נמנום'

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

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

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

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

דרישות לגבי נמנום

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

לתמיכה מלאה של 'נמנום' נדרשת גם משמעותי גלאי תנועה (SMD) במכשיר; אבל במצב 'נמנום קל' ב-Android 7.0 ואילך אין צורך ב-SMD. אם האפשרות 'נמנום' מופעלת במכשיר ש:

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

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

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

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

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

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

במהלך הנמנום

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

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

יציאה

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

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

ההתראות לא גורמות למכשיר לצאת ממצב 'נמנום'.

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

איור 1. מעבר למצב 'נמנום' במכשירים לא נייחים או נייחים.

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

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

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

שילוב Doze

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

כדי להפעיל את 'נמנום' במכשיר:

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

טיפים

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

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