מדידת ערכי כוח

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

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

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

מכשירים עם בקרי בלוטות', מודם ובקרי Wi-Fi המריצים אנדרואיד 7.0 ואילך יכולים לספק ערכי כוח נוספים המתקבלים מנתוני ערכת שבבים.

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

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

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

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

  • cluster0 מורכב מ-cpu0-3
  • cluster1 מורכב מ-cpu4-7

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

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

<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 .

שֵׁם תיאור ערך לדוגמה הערות
ambient.on שימוש נוסף בכוח כאשר המסך נמצא במצב נמנום/סביבתי/פועל תמיד במקום כבוי. סביב 100 mA -
מסך דולק שימוש נוסף בכוח כאשר המסך מופעל בבהירות מינימלית. 200 mA כולל בקר מגע ותאורת תצוגה אחורית. בבהירות 0, לא המינימום של אנדרואיד שנוטה להיות 10 או 20%.
מסך.מלא כוח נוסף בשימוש כאשר המסך בבהירות מקסימלית, בהשוואה למסך בבהירות מינימלית. 100 mA-300 mA חלק מהערך הזה (בהתבסס על בהירות המסך) מתווסף לערך screen.on כדי לחשב את צריכת החשמל של המסך.
wifi.on כוח נוסף בשימוש כאשר Wi-Fi מופעל אך אינו מקבל, משדר או סורק. 2 mA -
wifi.active כוח נוסף בשימוש בעת שידור או קבלה דרך Wi-Fi. 31 mA -
wifi.scan כוח נוסף בשימוש כאשר Wi-Fi סורק אחר נקודות גישה. 100 mA -
שֶׁמַע כוח נוסף בשימוש בעת פענוח/קידוד אודיו באמצעות DSP. בסביבות 10 mA משמש לאודיו DSP.
וִידֵאוֹ כוח נוסף בשימוש בעת פענוח וידאו באמצעות DSP. בסביבות 50 mA משמש לווידאו DSP.
camera.avg צריכת חשמל ממוצעת של תת-מערכת המצלמה עבור יישום מצלמה טיפוסי. 600 mA מיועדת כהערכה גסה לאפליקציה שמפעילה תצוגה מקדימה ומצלמת כ-10 תמונות ברזולוציה מלאה לדקה.
מצלמה.פנס הספק ממוצע המשמש את מודול הפלאש של המצלמה כשהוא פועל. 200 mA -
gps.signalqualitybased כוח נוסף בשימוש ב-GPS מבוסס על עוצמת האות. זוהי ערך רב-ערכים, אחד לכל עוצמת האות, מהחלש ביותר לחזק ביותר. 30 mA, 10 mA -
gps.on כוח נוסף בשימוש כאשר GPS רוכש אות. 50 mA -
רַדִיוֹאַקטִיבִי כוח נוסף בשימוש כאשר רדיו סלולרי משדר/קולט. 100 mA-300 mA -
רדיו.סריקה כוח נוסף בשימוש כאשר רדיו סלולרי מדפד את המגדל. 1.2 mA -
רדיו.מופעל מתח נוסף בשימוש כאשר הרדיו הסלולרי פועל. זוהי ערך רב ערכים, אחד לכל עוצמת האות (ללא אות, חלש, בינוני, חזק). 1.2 mA מכשירי רדיו מסוימים מגבירים את הכוח כשהם מחפשים מגדל סלולרי ואינם מזהים אות. הערכים יכולים להיות זהים או לרדת עם עלייה בעוצמת האות. אם אתה מספק רק ערך אחד, אותו ערך ישמש עבור כל החוזקות. אם אתה מספק שני ערכים, הראשון משמש לחוסר אות, הערך השני משמש לכל שאר החוזקות, וכן הלאה.
bluetooth.controller.idle צריכת זרם ממוצעת (mA) של בקר ה-Bluetooth במצב סרק. - ערכים אלו אינם מוערכים, אלא לקוחים מגיליון הנתונים של הבקר. אם יש מצבי קליטה או שידור מרובים, נלקח הממוצע של אותם מצבים. בנוסף, המערכת אוספת כעת נתונים עבור סריקות Low Energy (LE) ו-Bluetooth .

אנדרואיד 7.0 ואילך כבר לא משתמש בערכי עוצמת ה-Bluetooth עבור bluetooth.active (בשימוש בעת השמעת אודיו באמצעות Bluetooth A2DP) ו-Bluetooth.on (בשימוש כאשר ה-Bluetooth פועל אך לא פעיל).
bluetooth.controller.rx צריכת זרם ממוצעת (mA) של בקר ה-Bluetooth בעת הקבלה. -
bluetooth.controller.tx צריכת זרם ממוצעת (mA) של בקר ה-Bluetooth בעת שידור. -
מתח. Bluetooth.בקר מתח הפעלה ממוצע (mV) של בקר ה-Bluetooth. -
מודם.בקר.שינה זרם ממוצע (mA) של בקר המודם בזמן שינה. 0 mA ערכים אלו אינם מוערכים, אלא לקוחים מגיליון הנתונים של הבקר. אם יש מספר מצבי קבלה, נלקח הממוצע של אותם מצבים. אם יש מצבי שידור מרובים, ציון ערך עבור כל מצב שידור נתמך החל ב-Android 9.
בקר.מודם צריכת זרם ממוצעת (mA) של בקר המודם במצב סרק. -
modem.controller.rx משיכת זרם ממוצעת (mA) של בקר המודם בעת קבלה. -
modem.controller.tx צריכת זרם ממוצעת (mA) של בקר המודם בעת שידור ברמות הספק RF שונות. זהו ערך רב ערכים עם ערך אחד לכל רמת הספק שידור. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
מתח.בקר מודם מתח הפעלה ממוצע (mV) של בקר המודם. -
wifi.controller.בטל צריכת זרם ממוצעת (mA) של בקר ה-Wi-Fi במצב סרק. - ערכים אלו אינם מוערכים, אלא לקוחים מגיליון הנתונים של הבקר. אם יש מצבי קליטה או שידור מרובים, נלקח הממוצע של אותם מצבים.
wifi.controller.rx צריכת זרם ממוצעת (mA) של בקר ה-Wi-Fi בעת הקבלה. -
wifi.controller.tx צריכת זרם ממוצעת (mA) של בקר ה-Wi-Fi בעת שידור. -
בקר. wifi.מתח מתח הפעלה ממוצע (mV) של בקר ה-Wi-Fi. -
cpu.speeds זהו ערך רב-ערכים המפרט כל מהירות מעבד אפשרית ב-KHz. 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz מספר וסדר הערכים חייבים להתאים לערכים של mA ב-cpu.active.
cpu.idle הספק הכולל הנצרך על ידי המערכת כאשר המעבדים (וה-SoC) נמצאים במצב השעיית המערכת. 3 mA -
cpu.wake כוח נוסף בשימוש כאשר מעבדים נמצאים במצב סרק תזמון (לולאה סרק ליבה); המערכת אינה במצב השעיית מערכת. 50 mA לפלטפורמה שלך עשוי להיות יותר ממצב סרק אחד בשימוש עם רמות שונות של צריכת חשמל; בחר מצב סרק מייצג לתקופות ארוכות יותר של סרק מתזמן (מספר אלפיות שניות). בדוק את גרף ההספק בציוד המדידה שלך ובחר דגימות שבהן ה-CPU נמצא בצריכה הנמוכה ביותר שלו, תוך השלכת דגימות גבוהות יותר שבהן ה-CPU יצא במצב סרק.
cpu.active כוח נוסף המשמש את המעבדים בעת ריצה במהירויות שונות. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA הערך מייצג את ההספק המשמש את מסילות ה-CPU כאשר הם פועלים במהירויות שונות. הגדר את המהירות המקסימלית בקרנל לכל אחת מהמהירויות המותרות והצמד את המעבד במהירות זו. מספר וסדר הכניסות תואמים למספר ולסדר הערכים ב-cpu.speeds.
cpu.clusters.cores מספר הליבות שכל אשכול מעבד מכיל. 4, 2 נדרש רק עבור מכשירים עם ארכיטקטורות CPU הטרוגניות . מספר הערכים והסדר צריכים להתאים למספר כניסות האשכולות עבור ה-cpu.active ו-cpu.speeds. הערך הראשון מייצג את מספר ליבות ה-CPU ב-Cluster0, הערך השני מייצג את מספר ליבות ה-CPU ב-Cluster1, וכן הלאה.
קיבולת סוללה קיבולת סוללה כוללת ב-mAh. 3000 מיליאמפר/שעה -

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

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