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

على المصنّعين تقديم ملف طاقة المكوّنات في /frameworks/base/core/res/res/xml/power_profile.xml.

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

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

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

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

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

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

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

  • تتألف المجموعة 0 من الوحدات cpu0-3.
  • تتألف المجموعة 1 من الوحدات cpu4 إلى 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 مللي أمبير تُستخدَم لمعالجة الصوت في وحدة المعالجة الرقمية (DSP).
فيديو الطاقة الإضافية المستخدَمة عند فك ترميز الفيديو عبر وحدة معالجة الإشارات الرقمية حوالي 50 مللي أمبير يُستخدَم لفيديو DSP.
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 هذا إدخال متعدد القيم يسرد كل سرعة محتملة لوحدة المعالجة المركزية (CPU) بالكيلوهرتز. ‫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) والبلوتوث

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