מדידה של ערכי עוצמה

יצרני המכשירים צריכים לספק פרופיל כוח של רכיב /frameworks/base/core/res/res/xml/power_profile.xml

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

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

מכשירים עם בקרי Bluetooth, מודם ו-Wi-Fi שפועלת בהם גרסת Android 7.0 ערך גבוה יותר יכול לספק ערכי עוצמה נוספים שהתקבלו מנתוני ערכת השבבים.

מכשירים עם מעבדים הטרוגניים

פרופיל הכוח למכשירים עם ליבות של מעבד (CPU) בארכיטקטורה הטרוגנית חייב לכלול את השדות הנוספים הבאים:

  • המספר הכולל של יחידות המעבד (CPU) לכל אשכול (מבוטא ב-cpu.clusters.cores).
  • מהירויות המעבד (CPU) שנתמכות על ידי כל אשכול.
  • צריכת החשמל של המעבד (CPU) הפעיל לכל אשכול.

כדי להבחין בין צריכת החשמל של המעבד (CPU) הפעיל לבין מעבד (CPU) נתמך של אשכולות, מוסיפים את מספר האשכול לשם המערך. אשכול המספרים מוקצים לפי סדר ליבות המעבד (CPU) בעץ מכשיר הליבה. עבור בארכיטקטורה הטרוגנית שיש בה שני (2) אשכולות עם ארבעה (4) ליבות:

  • אשכול 0 מורכב מ-cpu0-3
  • cluster1 מורכב מ-cpu4-7

ה-framework של Android משתמש במספרי הליבה של המעבד (CPU) כשקוראים נתונים סטטיסטיים מ-sysfs הקבצים ב: /sys/devices/system/cpu/cpu<number>/cpufreq/stats.

דוגמה למעבדי CPU ומהירויות של אשכולות:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

ערכי עוצמה

בטבלה הבאה מתוארות ההגדרות הזמינות של ערך אספקת החשמל. כדי להציג את קובץ לדוגמה ב-AOSP: power_profile.xml.

שם תיאור ערך לדוגמה הערות
Ambia.on צריכת חשמל נוספת כשהמסך במצב 'נמנום'/'סביבה'/'פועל כל הזמן' במקום במצב 'כבוי'. כ-100 מיליאמפר לשעה -
screen.on צריכת חשמל נוספת כשהמסך מופעל, ברמת בהירות מינימלית. 200 מיליאמפר לשעה כולל בקר מגע ותאורה אחורית במסך. כשרמת הבהירות 0, לא הסף המינימלי הוא 10 או 20%, בדרך כלל ב-Android.
screen.full. צריכת חשמל נוספת כשהמסך מגיע לרמת בהירות מקסימלית, בהשוואה ל- במסך בבהירות המינימלית. 100 מיליאמפר לשעה-300 מיליאמפר לשעה חלק מהערך הזה (על סמך בהירות המסך) יתווסף screen.on כדי לחשב את צריכת החשמל של המסך.
wifi.on חשמל נוסף בשימוש כשה-Wi-Fi מופעל אבל לא מקבל, בשידור או בסריקה. 2 מיליאמפר לשעה -
wifi.active חשמל נוסף בשימוש בשידור או בקבלה באמצעות Wi-Fi. 31 מיליאמפר לשעה -
wifi.scan צריכת חשמל נוספת בזמן סריקת Wi-Fi לאיתור נקודות גישה. 100 מיליאמפר לשעה -
אודיו חשמל נוסף בשימוש במהלך פענוח/קידוד של אודיו דרך DSP. כ-10 מיליאמפר לשעה משמש לאודיו DSP.
סרטון מתח נוסף שנעשה בו שימוש במהלך פענוח וידאו דרך DSP. כ-50 מיליאמפר לשעה משמש לווידאו DSP.
מצלמה.ממוצע צריכת החשמל הממוצעת של מערכת המשנה של המצלמה במצלמה רגילה אפליקציה. 600 מיליאמפר לשעה מיועד כאומדן גס לאפליקציה שמריצה תצוגה מקדימה ולצלם כ-10 תמונות ברזולוציה מלאה בדקה.
מצלמה.פנס הספק הממוצע של מודול הפלאש של המצלמה כשהוא מופעל. 200 מיליאמפר לשעה -
gps.signalqualitybased אספקת חשמל נוספת על ידי ה-GPS, בהתאם לעוצמת האות. זוהי רשומה מרובת ערכים, אחת לכל עוצמת אות, מהחלשה לחזקה. 30 מיליאמפר לשעה, 10 מיליאמפר לשעה -
gps.on צריכת חשמל נוספת כשה-GPS מקבל אות. 50 מיליאמפר לשעה -
רדיו.אקטיבי חשמל נוסף שנעשה בו שימוש כאשר משדר/קולט רדיו סלולרי. 100 מיליאמפר לשעה-300 מיליאמפר לשעה -
רדיו.scanning צריכת חשמל נוספת כשהרדיו הסלולרי עובר למגדל. 1.2 מיליאמפר לשעה -
רדיו.on צריכת חשמל נוספת כשהרדיו הסלולרי מופעל. זוהי רשומה מרובת ערכים, אחת לכל עוצמת אות (אין אות, חלש, בינוני, חזק). 1.2 מיליאמפר לשעה מכשירי רדיו מסוימים מגבירות את אספקת החשמל כשהם מחפשים מגדל תקשורת, לזיהוי אות. הערכים יכולים להיות זהים או נמוכים עם אות גדל העוצמה. אם מציינים רק ערך אחד, אותו ערך משמש לכל נקודות החוזקה. אם מציינים שני ערכים, הראשון משמש לייצוג ללא אות, הערך השני משמש לכל שאר החוזקות, וכן הלאה.
Bluetooth.controller.idle, ערך ממוצע של צריכת הסוללה (mA) הנוכחית של בקר ה-Bluetooth כשהוא לא פעיל. - הערכים האלה אינם משוערים, אבל נלקחים מתוך גיליון הנתונים של בקר. אם יש מספר מצבי קבלה או שידור, הערך הממוצע לוקח את המדינות האלה. בנוסף, המערכת אוספת עכשיו נתונים עבור סריקות עם צריכת אנרגיה נמוכה (LE) ו-Bluetooth.

Android גרסה 7.0 ואילך לא משתמשת יותר בערכי העוצמה של Bluetooth עבור Bluetooth.active (בשימוש בזמן הפעלת אודיו באמצעות Bluetooth A2DP) ו-Bluetooth.on (בשימוש כאשר ה-Bluetooth מופעל אבל לא פעיל).
Bluetooth.controller.rx, ערך ממוצע של רצף נוכחי (mA) של בקר ה-Bluetooth בזמן הקבלה. -
Bluetooth.controller.tx רמת הטעינה הנוכחית הממוצעת (mA) של בקר ה-Bluetooth במהלך השידור. -
Bluetooth.controller.voltage, מתח הפעלה ממוצע (mV) של בקר ה-Bluetooth. -
modem.controller.sleep ערך ממוצע של זרם (mA) של בקר המודם במצב שינה. 0 מיליאמפר לשעה הערכים האלה אינם משוערים, אבל הם נלקחים מגיליון הנתונים של נאמן המידע. אם יש כמה מדינות בארה"ב, המערכת מחשבת את הממוצע של המדינות האלה. אם יש מספר מצבי שידור, כולל תמיכה בציון ערך לכל מצב שידור החל מ-Android 9.
modem.controller.idle ערך ממוצע של רצף (mA) של בקר המודם כשהוא לא פעיל. -
modem.controller.rx ערך ממוצע של זרם (mA) של בקר המודם בעת הקבלה. -
modem.controller.tx ערך ממוצע של זרם (mA) של בקר המודם כאשר משדר בעוצמה שונה של תדרי רדיו הרמות. זוהי רשומה מרובת ערכים עם ערך אחד לכל רמת עוצמת שידור. 100 מיליאמפר לשעה, 200 מיליאמפר לשעה, 300 מיליאמפר לשעה, 400 מיליאמפר לשעה, 500 מיליאמפר לשעה
modem.controller.voltage מתח הפעלה ממוצע (mV) של בקר המודם. -
wifi.controller.idle ערך ממוצע של mA (mA) של בקר ה-Wi-Fi במצב ללא פעילות. - הערכים האלה אינם משוערים, אבל נלקחים מתוך גיליון הנתונים של בקר. אם יש מספר מצבי קבלה או שידור, הערך הממוצע לוקח את המדינות האלה.
wifi.controller.rx, ערך ממוצע של זרם (mA) של בקר ה-Wi-Fi בזמן הקבלה. -
wifi.controller.tx רמת הטעינה הנוכחית הממוצעת (mA) של בקר ה-Wi-Fi במהלך השידור. -
wifi.controller.voltage, מתח הפעלה ממוצע (mV) של בקר ה-Wi-Fi. -
cpu.speeds זו רשומה מרובת ערכים שבה מפורטים כל מהירות אפשרית של המעבד (CPU) ב-KHz. 125,000 KHz, 250,000 KHz, 500,000 KHz, 1000,00 KHz, 1500,000 KHz המספר והסדר של הרשומות חייבים להתאים לרשומות ה-mA ב- cpu.active.
cpu.idle ההספק הכולל שנובע מהמערכת כשהמעבדים (CPU) וה-SoC נמצאים במערכת מצב השעיה. 3 מיליאמפר לשעה -
cpu.awake צריכת חשמל נוספת כשהמעבדים (CPU) נמצאים בתזמון של מצב לא פעיל (לולאה לא פעילה של ליבה); המערכת לא במצב השעיית מערכת. 50 מיליאמפר לשעה יכול להיות שבפלטפורמה יש יותר ממצב אחד של חוסר פעילות שנמצא בשימוש עם הבדלים רמות של צריכת חשמל; בחירת מצב לא פעיל מייצג למשך זמן ארוך יותר פרקי זמן של חוסר פעילות במתזמן הבקשות (כמה אלפיות שנייה). בדקו את תרשים הכוח על את ציוד המדידה ולבחור דגימות שבהן המעבד (CPU) נמצא ברמה הנמוכה ביותר צריכה, תוך התעלמות מדגימות גבוהות יותר שבהן המעבד יצא ללא פעילות.
cpu.active תוספת כוח שמשמשת את המעבדים כשהם פועלים במהירויות שונות. 100 מיליאמפר לשעה, 120 מיליאמפר לשעה, 140 מיליאמפר לשעה, 160 מיליאמפר לשעה, 200 מיליאמפר לשעה הערך מייצג את ההספק שמשמש את מסילות המעבד (CPU) לפעול במיקומים שונים מהירויות גבוהות. יש להגדיר את המהירות המקסימלית בליבה (kernel) לכל אחת מהמהירויות והאטב המותרים של המעבד במהירות הזאת. המספר והסדר של הרשומות תואמים את המספר והסדר של הרשומות ב-cpu.speeds.
cpu.clusters.cores מספר הליבות שיש בכל אשכול מעבד (CPU). 4, 2 נדרש רק במכשירים עם מעבד הטרוגני של הארכיטקטורות. מספר הרשומות והסדר צריכים להתאים למספר של אשכולות עבור cpu.active ו-cpu.speeds. הרשומה הראשונה מייצגת מספר ליבות המעבד (CPU) באשכול 0, הרשומה השנייה מייצגת את מספר ליבות המעבד (CPU) ליבות של המעבד (CPU) באשכול 1, וכן הלאה.
train.capacity קיבולת הסוללה הכוללת במיליאמפר לשעה. 3,000 מיליאמפר לשעה -

סריקות עם צריכת אנרגיה נמוכה (LE) ו-Bluetooth

במכשירים עם Android 7.0, המערכת אוספת נתונים עבור צריכת אנרגיה נמוכה (LE) סריקות ותנועה ברשת Bluetooth (כגון RFCOMM ו-L2CAP) ושיוכים הפעילויות האלה באמצעות האפליקציה שמתחילה את התהליך. סריקות Bluetooth משויכות באפליקציה שביצעה את הסריקה, אבל סריקות בכמות גדולה לא מתבצעות (וגם משויכים לאפליקציית ה-Bluetooth). באפליקציה N אלפיות השנייה, עלות הסריקה היא N אלפיות השנייה של זמן rx ו-N אלפיות השנייה של זמן tx; כל הזמן שנותר לבקר הוקצה ל- תנועה ברשת או אפליקציית Bluetooth.