הכלי 'היסטוריית סוללה' מספק תובנות לגבי צריכת הסוללה של מכשיר לאורך זמן. ברמת המערכת, הכלי מציג באופן חזותי אירועים שקשורים לעוצמה יומני המערכת בייצוג HTML. ברמה ספציפית לאפליקציה, הכלי מספק מגוון של נתונים שיכולים לעזור לכם לזהות אפליקציה שמתרוקנת מהסוללה או התנהגות המשתמשים.
במסמך הזה מתוארות כמה מהדרכים שבהן אפשר להשתמש ב'היסטוריית הסוללה' כדי ללמוד על דפוסים של צריכת סוללה. המסמך מתחיל בהסבר לקרוא את הנתונים ברמת המערכת שעליהם מדווח היסטוריית הסוללה. לאחר מכן מוצגות דרכים שבה תוכלו להשתמש ב'היסטוריית הסוללה' כדי לאבחן ולפתור בעיות להתנהגות האפליקציה שקשורה לצריכת הסוללה. לבסוף, הוא מציע כמה טיפים תרחישים שבהם היסטוריית הסוללה יכולה להיות שימושית במיוחד.
שימוש בתצוגה ברמת המערכת
הכלי 'היסטוריית סוללה' מספק תצוגה חזותית ברמת המערכת של אפליקציות שונות והתנהגויות של המערכת, יחד עם הקשר שלהן לצריכת סוללה לאורך זמן. התצוגה הזו, שמוצגת באיור 1, יכולה לעזור לכם לאבחן ולזהות עם בעיות בצריכת החשמל של האפליקציה.
![התצוגה של היסטוריית הסוללה של אירועים ברמת המערכת שמשפיעים על החשמל
צריכה.](https://developer.android.com/static/topic/performance/images/generic-timeline.png?authuser=8&hl=he)
המגמה שמעניינת במיוחד את האיור הזה היא המגמה השחורה, האופקית והירידה קו שמייצג את רמת הסוללה, נמדד על ציר ה-Y. לדוגמה, בשקף בתחילת השורה של רמת הסוללה, בסביבות השעה 6:50 בבוקר, בתרשים להמחשה מוצגת ירידה תלולה יחסית ברמת הסוללה.
איור 2 מציג תקריב של החלק הזה במסך.
![תקריב של ציר הזמן של היסטוריית הסוללה בערך מהשעה 6:50 עד 7:20.](https://developer.android.com/static/topic/performance/images/s-generic-closeup.png?authuser=8&hl=he)
בתחילת השורה של רמת הסוללה, כשהסוללה פוחתת בהדרגה, רואים שלושה דברים: המעבד (CPU) פועל, אפליקציה רכשה במצב שינה, והמסך פועל. כך, שירות היסטוריית הסוללה עוזר לך להבין אילו אירועים מתרחשים כשצריכת הסוללה גבוהה. אפשר ואז לטרגט להתנהגויות האלה באפליקציה שלכם ולבחון אם יש ואופטימיזציות רלוונטיות שתוכלו לבצע.
גם התצוגה החזותית ברמת המערכת יכולה לספק סימנים נוספים. לדוגמה, אם רואים שהרדיו בנייד נכבה ומופעל לעיתים קרובות, הוא הזדמנות לבצע אופטימיזציה של ההתנהגות הזאת ממשקי API חכמים לתזמון חכם, כמו JobScheduler או Firebase Job Dispatcher.
בקטע הבא מוסבר כיצד לחקור התנהגות ואירועים שספציפיים ל את האפליקציה שלך.
הצגת נתונים ספציפיים לאפליקציה
בנוסף לנתונים ברמת המאקרו שמסופקים על ידי התצוגה ברמת המערכת, האפשרות 'סוללה' היסטורין גם מספק טבלאות ותצוגה חזותית מסוימת של נתונים שספציפיים לכל אחת מהן האפליקציה שפועלת במכשיר שלך. הנתונים בטבלה כוללים:
- הצריכה המשוערת של האפליקציה במכשיר.
- פרטי הרשת.
- מפתחות התעוררות (Wakelock).
- שירותים.
- פרטי העיבוד.
הטבלאות מספקות שני מאפיינים של נתונים לגבי האפליקציה שלכם. קודם כול, אפשר לחפש שבו צריכת החשמל של האפליקציה מדורגת בהשוואה לאפליקציות אחרות. כדי לעשות את זה, לוחצים על הטבלה הערכות כוח של מכשירים בקטע טבלאות. הדוגמה הזו בוחנת בשם Pug Power.
![חקירת האפליקציות שצורכות הכי הרבה חשמל](https://developer.android.com/static/topic/performance/images/app-rankings.png?authuser=8&hl=he)
הטבלה באיור 3 חושפת ש-Pug Power הוא הצרכן התשיעי בגודלו של בסוללה במכשיר הזה, והאפליקציה השלישית בגודלה שאינה חלק מערכת הפעלה. על פי הנתונים האלה, האפליקציה הזו מצריכה חקירה לעומק.
כדי לחפש את הנתונים של אפליקציה ספציפית, הזן את שם החבילה שלה בחלק התחתון של שני התפריטים הנפתחים בקטע בחירת אפליקציות, הממוקמים בצד ימין של תצוגה חזותית.
![כניסה לאפליקציה ספציפית שהנתונים שלה מוצגים.](https://developer.android.com/static/topic/performance/images/dropdown.png?authuser=8&hl=he)
כשבוחרים אפליקציה ספציפית, מוצגות הקטגוריות הבאות של תצוגה חזותית של נתונים כדי להציג נתונים ספציפיים לאפליקציה במקום נתונים ברמת המערכת:
- SyncManager.
- תהליך שפועל בחזית.
- Wakelock של מרחב המשתמשים.
- אפליקציה מובילה.
- מתזמן המשימות.
- Proc. מנהל פעילות
הרכיבים החזותיים של SyncManager ו-Job Scheduler מבהירים מיד אם האפליקציה מסנכרנת ומבצעת משימות בתדירות גבוהה יותר מהנדרש. לחשבון כך הם יכולים לחשוף במהירות הזדמנות לבצע אופטימיזציה להתנהגות האפליקציה לביצועי סוללה משופרים.
אפשר גם לקבל עוד נתונים של תצוגה חזותית שספציפית לאפליקציה, Userspace Wakelock. כדי לכלול את המידע הזה בדוח הבאג, מזינים את הפקודה הבאה בחלון הטרמינל:
$ adb shell dumpsys batterystats --enable full-wake-history
איורים 5 ו-6 מציגים נתונים של Pug Power: באיור 5 מוצגת ההמחשה של נתונים ספציפיים לאפליקציה, ואיור 6 מציג את הנתונים בטבלה המתאימים.
![תצוגה חזותית של נתונים עבור האפליקציה הפיקטיבית Pug Power.](https://developer.android.com/static/topic/performance/images/pug-visualization.png?authuser=8&hl=he)
![נתונים בטבלאות של אפליקציית Pug Power הפיקטיבית.](https://developer.android.com/static/topic/performance/images/pugspecificdata.png?authuser=8&hl=he)
בתצוגה החזותית לא רואים שום דבר ברור מיד. הקו JobScheduler מראה שבאפליקציה אין משימות מתוזמנות. הקו SyncManager מראה שהאפליקציה לא ביצעה סנכרון.
עם זאת, בדיקה של הפלח Wakelocks בנתונים בטבלה מראה ב-Pug Power יש חסימות מצב שינה בהיקף כולל של יותר משעה. החריג והיקר ההתנהגות יכולה לקחת בחשבון את הרמה הגבוהה של צריכת החשמל של האפליקציה. היצירה הזו עוזר למפתח למקד לאזור שבו סביר להניח שהאופטימיזציה כדי לעזור מאוד. במקרה הזה, למה האפליקציה צוברת כל כך הרבה זמן ממצב שינה, ואיך המפתח יכול לשפר את ההתנהגות הזו?
מקרים אחרים שבהם היסטוריית הסוללה יכולה לעזור
יש עוד הרבה מקרים אחרים שבהם 'היסטוריית הסוללה' יכולה לעזור לכם לאבחן את הבעיה. הזדמנויות לשיפור התנהגות הסוללה. לדוגמה, היסטוריית הסוללה יכולה מציין אם האפליקציה:
- ההתראות מופעלות בתדירות גבוהה מדי (כל 10 שניות או פחות).
- החזקת מנעול GPS ברציפות.
- תזמון משימות כל 30 שניות או פחות.
- התזמון מסתנכרן כל 30 שניות או פחות.
- שימוש ברדיו הסלולרי בתדירות גבוהה יותר מהצפוי.