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

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

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

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

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

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

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

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

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

  • تتكون المجموعة 0 من وحدة المعالجة المركزية 0-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 مللي أمبير -
الشاشة مفتوحة يتم استخدام طاقة إضافية عند تشغيل الشاشة عند الحد الأدنى من السطوع. 200 مللي أمبير يتضمن وحدة تحكم تعمل باللمس وإضاءة خلفية للشاشة. عند سطوع 0، ليس الحد الأدنى لنظام Android الذي يميل إلى أن يكون 10 أو 20%.
شاشة كاملة يتم استخدام طاقة إضافية عندما تكون الشاشة في أقصى سطوع، مقارنة بالشاشة في الحد الأدنى من السطوع. 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 مللي أمبير -
radio.active طاقة إضافية تستخدم عند إرسال/استقبال الراديو الخلوي. 100 مللي أمبير-300 مللي أمبير -
radio.scanning يتم استخدام طاقة إضافية عندما يقوم الراديو الخلوي باستدعاء البرج. 1.2 مللي أمبير -
راديو.على يتم استخدام طاقة إضافية عند تشغيل الراديو الخلوي. هذا إدخال متعدد القيم، واحد لكل قوة إشارة (لا توجد إشارة، ضعيفة، متوسطة، قوية). 1.2 مللي أمبير تقوم بعض أجهزة الراديو بتعزيز الطاقة عندما تبحث عن برج خلوي ولا تكتشف إشارة. يمكن أن تكون القيم هي نفسها أو تنخفض مع زيادة قوة الإشارة. إذا قمت بتوفير قيمة واحدة فقط، فسيتم استخدام نفس القيمة لجميع نقاط القوة. إذا قمت بتوفير قيمتين، فسيتم استخدام القيمة الأولى لعدم وجود إشارة، ويتم استخدام القيمة الثانية لجميع نقاط القوة الأخرى، وهكذا.
bluetooth.controller.idle متوسط ​​السحب الحالي (mA) لوحدة تحكم Bluetooth عندما تكون في وضع الخمول. - هذه القيم ليست تقديرية، ولكنها مأخوذة من ورقة بيانات وحدة التحكم. إذا كانت هناك حالات استقبال أو إرسال متعددة، يتم أخذ متوسط ​​تلك الحالات. بالإضافة إلى ذلك، يقوم النظام الآن بجمع البيانات لعمليات المسح منخفضة الطاقة (LE) والبلوتوث .

لم يعد نظام التشغيل Android 7.0 والإصدارات الأحدث يستخدم قيم طاقة Bluetooth لـ bluetooth.active (المستخدم عند تشغيل الصوت عبر Bluetooth A2DP) وBluetooth.on (يستخدم عندما يكون Bluetooth قيد التشغيل ولكنه خامل).
bluetooth.controller.rx متوسط ​​السحب الحالي (mA) لوحدة تحكم Bluetooth عند الاستلام. -
bluetooth.controller.tx متوسط ​​السحب الحالي (mA) لوحدة تحكم Bluetooth عند الإرسال. -
بلوتوث. تحكم. الجهد متوسط ​​جهد التشغيل (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) لوحدة تحكم Wi-Fi عندما تكون في وضع الخمول. - هذه القيم ليست تقديرية، ولكنها مأخوذة من ورقة بيانات وحدة التحكم. إذا كانت هناك حالات استقبال أو إرسال متعددة، يتم أخذ متوسط ​​تلك الحالات.
wifi.controller.rx متوسط ​​السحب الحالي (mA) لوحدة تحكم Wi-Fi عند الاستقبال. -
wifi.controller.tx متوسط ​​السحب الحالي (mA) لوحدة تحكم Wi-Fi عند الإرسال. -
wifi.controller.voltage متوسط ​​جهد التشغيل (mV) لوحدة تحكم Wi-Fi. -
cpu.speeds هذا إدخال متعدد القيم يسرد كل سرعة وحدة المعالجة المركزية المحتملة بالكيلو هرتز. 125000 كيلو هرتز، 250000 كيلو هرتز، 500000 كيلو هرتز، 1000000 كيلو هرتز، 1500000 كيلو هرتز يجب أن يتوافق عدد الإدخالات وترتيبها مع إدخالات mA في cpu.active.
cpu.idle إجمالي الطاقة التي يسحبها النظام عندما تكون وحدات المعالجة المركزية (و SoC) في حالة تعليق النظام. 3 مللي أمبير -
cpu.awake طاقة إضافية تستخدم عندما تكون وحدات المعالجة المركزية (CPU) في جدولة حالة الخمول (حلقة خمول kernel)؛ النظام ليس في حالة تعليق النظام. 50 مللي أمبير قد يكون للنظام الأساسي الخاص بك أكثر من حالة خمول واحدة قيد الاستخدام مع مستويات مختلفة من استهلاك الطاقة؛ اختر حالة خمول تمثيلية لفترات أطول من خمول المجدول (عدة ميلي ثانية). افحص الرسم البياني للطاقة على معدات القياس الخاصة بك واختر العينات التي تكون فيها وحدة المعالجة المركزية في أدنى مستويات استهلاكها، وتجاهل العينات الأعلى التي خرجت فيها وحدة المعالجة المركزية في وضع الخمول.
cpu.active الطاقة الإضافية التي تستخدمها وحدات المعالجة المركزية (CPU) عند التشغيل بسرعات مختلفة. 100 مللي أمبير، 120 مللي أمبير، 140 مللي أمبير، 160 مللي أمبير، 200 مللي أمبير تمثل القيمة الطاقة التي تستخدمها قضبان وحدة المعالجة المركزية عند التشغيل بسرعات مختلفة. اضبط السرعة القصوى في النواة على كل من السرعات المسموح بها واربط وحدة المعالجة المركزية بهذه السرعة. يتوافق عدد الإدخالات وترتيبها مع عدد الإدخالات وترتيبها في cpu.speeds.
cpu.clusters.cores عدد النوى التي تحتوي عليها كل مجموعة وحدة المعالجة المركزية. 4، 2 مطلوب فقط للأجهزة ذات بنيات وحدة المعالجة المركزية غير المتجانسة . يجب أن يتطابق عدد الإدخالات والترتيب مع عدد إدخالات المجموعة الخاصة بـ cpu.active وcpu.speeds. يمثل الإدخال الأول عدد مراكز وحدة المعالجة المركزية في المجموعة 0، ويمثل الإدخال الثاني عدد مراكز وحدة المعالجة المركزية في المجموعة 1، وهكذا.
قدرة البطارية إجمالي سعة البطارية بـ mAh. 3000 مللي أمبير -

عمليات مسح منخفضة الطاقة (LE) والبلوتوث

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