قياس قيم الطاقة

على مصنّعي الأجهزة توفير ملف تعريف لاستهلاك الطاقة الخاص بالمكونات في /frameworks/base/core/res/res/xml/power_profile.xml.

لتحديد قيم ملفات الطاقة، استخدِم أجهزة تقيس الطاقة التي يستهلكها الجهاز ونفِّذ العمليات المختلفة التي تحتاج إلى معلومات بشأنها. قياس استهلاك الطاقة أثناء هذه العمليات واحتساب القيم (استخلاص الفروق من استخدامات الطاقة الأساسية الأخرى حسب الاقتضاء)

بما أنّ الهدف من ملف تعريف استهلاك الطاقة هو تقدير استنزاف البطارية بشكل مناسب، يتم تقديم قيم ملف تعريف استهلاك الطاقة بالتيار (أمبير). يضرب إطار عمل Android القيمة الحالية في الوقت الذي كان فيه النظام الفرعي نشطًا، ثم يحسب قيمة mAh، والتي تُستخدَم بعد ذلك لتقدير مقدار استنزاف البطارية بواسطة التطبيق أو النظام الفرعي.

يمكن للأجهزة التي تتضمّن وحدات تحكّم في البلوتوث والمودم وشبكة Wi-Fi وتعمل بالإصدار 7.0 من نظام التشغيل Android والإصدارات الأحدث أن تقدّم قيم طاقة إضافية يتم الحصول عليها من بيانات مجموعة الشرائح.

الأجهزة التي تتضمّن وحدات معالجة مركزية غير متجانسة

يجب أن يتضمّن ملف الطاقة للأجهزة التي تحتوي على نوى وحدة معالجة مركزية ذات بنية غير متجانسة الحقول الإضافية التالية:

  • عدد وحدات المعالجة المركزية الإجمالية لكل مجموعة (معبّر عنه في cpu.clusters.cores).
  • سرعات وحدة المعالجة المركزية المتوافقة مع كل مجموعة
  • استهلاك الطاقة النشط لوحدة المعالجة المركزية لكل مجموعة

للتفريق بين استهلاك طاقة وحدة المعالجة المركزية النشطة وسرعات وحدة المعالجة المركزية المتوافقة مع المجموعات، أضِف رقم المجموعة إلى اسم المصفوفة. يتم تخصيص أرقام المجموعات بالترتيب نفسه الذي تظهر به نوى وحدة المعالجة المركزية في شجرة أجهزة النواة. على سبيل المثال، في بنية غير متجانسة تحتوي على مجموعتين (2) مع أربع (4) نوى:

  • تتألف المجموعة 0 من وحدات المعالجة المركزية 0-3
  • يتألف cluster1 من وحدات المعالجة المركزية 4-7

يستخدم إطار عمل Android أرقام أنوية وحدة المعالجة المركزية هذه عند قراءة الإحصاءات من ملفات 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 ملّي أمبير -
screen.on الطاقة الإضافية المستخدَمة عند تشغيل الشاشة بأدنى مستوى سطوع 200 ملّي أمبير يتضمّن وحدة التحكّم باللمس والإضاءة الخلفية للشاشة. عند ضبط السطوع على 0، وليس على الحد الأدنى الذي يحدّده نظام التشغيل Android والذي يبلغ عادةً %10 أو %20
screen.full الطاقة الإضافية المستخدَمة عندما تكون الشاشة في الحد الأقصى للسطوع، مقارنةً بالشاشة في الحد الأدنى للسطوع من 100 مللي أمبير إلى 300 مللي أمبير يتم إضافة جزء من هذه القيمة (استنادًا إلى سطوع الشاشة) إلى قيمة screen.on لاحتساب استهلاك الطاقة للشاشة.
wifi.on تمثّل هذه السمة مقدار الطاقة الإضافية المستخدَمة عندما تكون شبكة Wi-Fi مفعّلة ولكن لا تستقبل أو ترسل أو تبحث عن شبكات. 2 ملّي أمبير -
wifi.active استهلاك طاقة إضافية عند الإرسال أو الاستلام عبر شبكة Wi-Fi 31 ملّي أمبير -
wifi.scan استهلاك طاقة إضافية عند بحث شبكة Wi-Fi عن نقاط وصول ‫100 ملّي أمبير -
بعدّة لغات" استهلاك طاقة إضافية عند فك ترميز الصوت أو ترميزه من خلال معالج الإشارات الرقمية حوالي 10 ملّي أمبير تُستخدَم لمعالجة الإشارات الرقمية الصوتية.
فيديو استهلاك طاقة إضافية عند فك ترميز الفيديو من خلال معالج الإشارات الرقمية حوالي 50 ملّي أمبير يُستخدم لفيديوهات منصات طلب الشراء.
camera.avg متوسط استهلاك الطاقة من قِبل النظام الفرعي للكاميرا في تطبيق نموذجي للكاميرا ‫600 ملّي أمبير يُقصد بها أن تكون تقديرًا تقريبيًا لتطبيق يعرض معاينة ويلتقط حوالي 10 صور كاملة الدقة في الدقيقة.
camera.flashlight متوسط الطاقة التي يستهلكها وحدة فلاش الكاميرا عند تشغيلها 200 ملّي أمبير -
gps.signalqualitybased الطاقة الإضافية التي يستخدمها نظام تحديد المواقع العالمي (GPS) استنادًا إلى قوة الإشارة هذا إدخال متعدد القيم، قيمة واحدة لكل قوة إشارة، من الأضعف إلى الأقوى. ‫30 ملّي أمبير، 10 ملّي أمبير -
gps.on استهلاك إضافي للطاقة عند حصول نظام تحديد المواقع العالمي (GPS) على إشارة ‫50 ملّي أمبير -
radio.active الطاقة الإضافية المستخدَمة عندما يرسل الراديو الخلوي البيانات أو يستقبلها من 100 مللي أمبير إلى 300 مللي أمبير -
radio.scanning الطاقة الإضافية المستخدَمة عندما يرسل الراديو الخلوي إشارات تنبيه إلى البرج ‫1.2 ملّي أمبير -
radio.on استهلاك طاقة إضافية عند تفعيل الراديو الخلوي هذا الحقل هو إدخال متعدد القيم، قيمة واحدة لكل قوة إشارة (لا توجد إشارة، إشارة ضعيفة، إشارة متوسطة، إشارة قوية). ‫1.2 ملّي أمبير تزيد بعض أجهزة الراديو من الطاقة عند البحث عن برج خلوي وعدم رصد إشارة. يمكن أن تكون القيم متطابقة أو تنخفض مع زيادة قوة الإشارة. إذا قدّمت قيمة واحدة فقط، سيتم استخدام القيمة نفسها لجميع مستويات القوة. إذا قدّمت قيمتَين، سيتم استخدام القيمة الأولى في حال عدم توفّر إشارة، وسيتم استخدام القيمة الثانية لجميع مستويات الإشارة الأخرى، وهكذا.
bluetooth.controller.idle متوسط استهلاك التيار (ملّي أمبير) لوحدة التحكّم في البلوتوث عندما تكون غير نشطة - هذه القيم ليست تقديرية، بل مأخوذة من ورقة بيانات وحدة التحكّم. إذا كانت هناك حالات استلام أو إرسال متعددة، يتم احتساب متوسط هذه الحالات. بالإضافة إلى ذلك، يجمع النظام الآن بيانات عمليات البحث عن الأجهزة التي تعمل بتقنية البلوتوث منخفض الطاقة (LE) والبلوتوث.

لم يعُد نظام التشغيل Android 7.0 والإصدارات الأحدث منه يستخدمان قيم طاقة البلوتوث في bluetooth.active (المستخدَمة عند تشغيل الصوت عبر Bluetooth A2DP) وbluetooth.on (المستخدَمة عندما يكون البلوتوث مفعّلاً ولكن في وضع الخمول).
bluetooth.controller.rx متوسط استهلاك التيار (ملّي أمبير) لوحدة التحكّم في البلوتوث عند الاستلام -
bluetooth.controller.tx متوسط استهلاك التيار (ملّي أمبير) لوحدة التحكّم عبر البلوتوث أثناء الإرسال -
bluetooth.controller.voltage متوسط جهد التشغيل (ملّي فولت) لوحدة التحكّم في البلوتوث -
modem.controller.sleep متوسط استهلاك الطاقة الحالي (ملّي أمبير) لوحدة التحكّم في المودم في وضع السكون 0 ملّي أمبير هذه القيم ليست تقديرية، ولكنها مأخوذة من ورقة بيانات وحدة التحكّم. في حال توفّر حالات استلام متعدّدة، يتم أخذ متوسط هذه الحالات. إذا كانت هناك حالات إرسال متعددة، يمكن تحديد قيمة لكل حالة إرسال بدءًا من نظام التشغيل Android 9.
modem.controller.idle متوسط استهلاك الطاقة (ملّي أمبير) لوحدة التحكّم في المودم عندما يكون غير نشط -
modem.controller.rx متوسط استهلاك الطاقة (ملّي أمبير) لوحدة التحكّم في المودم عند الاستلام -
modem.controller.tx متوسط استهلاك التيار (ملّي أمبير) لوحدة التحكّم في المودم عند الإرسال بمستويات مختلفة من طاقة التردد اللاسلكي هذه هي إدخالات متعددة القيم مع قيمة واحدة لكل مستوى من مستويات طاقة الإرسال. ‫100 ملّي أمبير، و200 ملّي أمبير، و300 ملّي أمبير، و400 ملّي أمبير، و500 ملّي أمبير
modem.controller.voltage متوسط جهد التشغيل (ملّي فولت) لوحدة التحكّم في المودم -
wifi.controller.idle متوسط استهلاك الطاقة (ملّي أمبير) لوحدة التحكّم في شبكة Wi-Fi عندما تكون غير نشطة - هذه القيم ليست تقديرية، بل مأخوذة من ورقة بيانات وحدة التحكّم. إذا كانت هناك حالات استلام أو إرسال متعددة، يتم احتساب متوسط هذه الحالات.
wifi.controller.rx متوسط استهلاك الطاقة (ملّي أمبير) لوحدة التحكّم في شبكة Wi-Fi عند الاستلام -
wifi.controller.tx متوسط سحب التيار (ملّي أمبير) لوحدة التحكّم في شبكة Wi-Fi أثناء الإرسال -
wifi.controller.voltage متوسط جهد التشغيل (ملّي فولت) لوحدة التحكّم في شبكة Wi-Fi -
cpu.speeds هذا إدخال متعدّد القيم يسرد كل سرعة محتملة لوحدة المعالجة المركزية بالكيلوهرتز. ‫125,000 كيلوهرتز، و250,000 كيلوهرتز، و500,000 كيلوهرتز، و1,000,000 كيلوهرتز، و1,500,000 كيلوهرتز يجب أن يتطابق عدد الإدخالات وترتيبها مع إدخالات mA في cpu.active.
cpu.idle إجمالي الطاقة التي يستهلكها النظام عندما تكون وحدات المعالجة المركزية (ونظام التشغيل على الشريحة) في حالة تعليق النظام ‫3 ملّي أمبير -
cpu.awake استهلاك الطاقة الإضافي عندما تكون وحدات المعالجة المركزية في حالة عدم النشاط المجدوَل (حلقة عدم النشاط في النواة)؛ لا يكون النظام في حالة تعليق النظام. ‫50 ملّي أمبير قد تستخدم منصتك أكثر من حالة واحدة من حالات عدم النشاط بمستويات مختلفة من استهلاك الطاقة، لذا اختَر حالة عدم نشاط تمثيلية لفترات أطول من عدم نشاط المجدول (عدة مللي ثانية). افحص الرسم البياني للطاقة على جهاز القياس، واختَر العيّنات التي يكون فيها استهلاك وحدة المعالجة المركزية في أدنى مستوياته، وتجاهَل العيّنات الأعلى التي خرجت فيها وحدة المعالجة المركزية من وضع الخمول.
cpu.active الطاقة الإضافية التي تستخدمها وحدات المعالجة المركزية عند التشغيل بسرعات مختلفة ‫100 ملّي أمبير، و120 ملّي أمبير، و140 ملّي أمبير، و160 ملّي أمبير، و200 ملّي أمبير تمثّل القيمة الطاقة التي تستخدمها مسارات وحدة المعالجة المركزية عند التشغيل بسرعات مختلفة. اضبط الحد الأقصى للسرعة في النواة على كل السرعات المسموح بها، وثبِّت وحدة المعالجة المركزية على هذه السرعة. يتوافق عدد الإدخالات وترتيبها مع عدد الإدخالات وترتيبها في cpu.speeds.
cpu.clusters.cores عدد النوى التي تحتوي عليها كل مجموعة من وحدات المعالجة المركزية 4, 2 مطلوب فقط للأجهزة التي تتضمّن بنية وحدات معالجة مركزية غير متجانسة. يجب أن يتطابق عدد الإدخالات وترتيبها مع عدد إدخالات المجموعات في cpu.active وcpu.speeds. يمثّل الإدخال الأول عدد نوى وحدة المعالجة المركزية في المجموعة 0، ويمثّل الإدخال الثاني عدد نوى وحدة المعالجة المركزية في المجموعة 1، وهكذا.
battery.capacity السعة الإجمالية للبطارية بوحدة مللي أمبير في الساعة ‫3,000 مللي أمبير في الساعة -

عمليات البحث عن الأجهزة القريبة باستخدام البلوتوث المنخفض الطاقة (LE) والبلوتوث

بالنسبة إلى الأجهزة التي تعمل بالإصدار 7.0 من نظام التشغيل Android، يجمع النظام بيانات عمليات البحث عن الأجهزة القريبة التي تعمل بالبلوتوث المنخفض الطاقة (LE) وحركة بيانات شبكة البلوتوث (مثل RFCOMM وL2CAP) ويربط هذه الأنشطة بالتطبيق الذي بدأها. يتم ربط عمليات البحث عن الأجهزة القريبة التي تعمل بالبلوتوث بالتطبيق الذي بدأ عملية البحث، ولكن لا يتم ربط عمليات البحث المجمّعة (بل يتم ربطها بتطبيق البلوتوث). بالنسبة إلى تطبيق يبحث عن N ملي ثانية، تبلغ تكلفة البحث N ملي ثانية من وقت الاستقبال وN ملي ثانية من وقت الإرسال، ويتم تخصيص كل وقت وحدة التحكّم المتبقّي لحركة بيانات الشبكة أو تطبيق البلوتوث.