ويمكنك تحديد استهلاك الطاقة المكون من مكونات فردية من خلال مقارنة الرسم الحالي المرسوم بواسطة الجهاز عندما يكون المكوِّن في الحالة المطلوبة (مثل قيد التشغيل، نشط، الفحص)، وعندما المكون من إيقاف تشغيل. تقيس متوسط التيار اللحظي المرسوم على الجهاز على الجهد الاسمي باستخدام شاشة عرض طاقة خارجية، مثل مصدر الطاقة المخصص للمقاعد أو أدوات مراقبة البطارية (مثل برنامج Monsoon Solution Inc. Power Monitor وبرنامج Power Tool).
غالبًا ما تقدم الشركات المصنِّعة معلومات عن القيمة الحالية التي يستهلكها مكوّن فردي. استخدِم هذه المعلومات إذا كانت تمثّل بدقة الطاقة الحالية التي يتم سحبها من بطارية الجهاز في التدريب. ومع ذلك، يجب التحقّق من صحة القيم التي توفّرها الشركة المصنّعة قبل استخدام هذه القيم في جهازك. ملف تعريف القوة.
التحكّم في استهلاك الطاقة
عند القياس، يُرجى التأكّد من أنّ الجهاز غير متصل بمصدر شحن خارجي، مثل: كاتصال USB بمضيف تطوير يتم استخدامه عند تشغيل Android Debug Bridge (adb). الجهاز قيد الاختبار قد يسحب تيارًا من المضيف، مما يؤدي إلى خفض القياسات في البطارية. تجنب USB اتصالات "أثناء التنقل" (OTG)، حيث قد يسحب جهاز OTG التيار من الجهاز قيد الاختبار.
باستثناء المكون الذي يتم قياسه، يجب أن يعمل النظام عند مستوى طاقة ثابت استهلاكها لتجنب القياسات غير الدقيقة الناتجة عن التغييرات في المكونات الأخرى. النظام الأنشطة التي يمكن أن تؤدي إلى تغييرات غير مرغوب فيها على قياسات الطاقة ما يلي:
- نشاط عمليات استقبال البيانات أو نقلها أو البحث عنها باستخدام شبكة الجوّال وشبكة Wi-Fi والبلوتوث: فعندما بدون قياس طاقة الراديو الخلوي، فاضبط الجهاز على "وضع الطيران" وفعِّل شبكة Wi-Fi أو البلوتوث على مناسبًا.
- تشغيل الشاشة أو إيقافها يمكن أن تؤثر الألوان التي تظهر أثناء تشغيل الشاشة في رسم الطاقة في بعض تقنيات الشاشات. أطفئ الشاشة عند قياس قيم المكونات التي ليست على الشاشة.
- تعليق/استئناف النظام يمكن أن تؤدي حالة إيقاف الشاشة إلى تعليق النظام، وضع أجزاء من الجهاز في حالة منخفضة الطاقة أو مطفأة. وقد يؤثر ذلك على استهلاك الطاقة الذي يتم قياسه وإدخال تباينات كبيرة في قراءات القوة كما هو النظام بشكل دوري استئناف لإرسال التنبيهات وما إلى ذلك. للحصول على التفاصيل، راجع التحكم في النظام التعليق.
- تغيّر وحدات المعالجة المركزية السرعة وتدخل/تخرج في حالة عدم نشاط أداة الجدولة منخفضة الطاقة.
أثناء التشغيل العادي، يُجري النظام تعديلات متكررة على سرعات وحدة المعالجة المركزية (CPU)، وعدد
نوى وحدة المعالجة المركزية (CPU) والحالات الأساسية الأخرى للنظام، مثل سرعة ناقل الذاكرة والفولتية لخطوط الكهرباء
المرتبطة بوحدات المعالجة المركزية (CPU) والذاكرة. أثناء الاختبار، تؤثر التعديلات التالية في قياسات الطاقة:
- يمكن أن تؤدي عمليات قياس سرعة وحدة المعالجة المركزية (CPU) إلى تقليل مقدار الساعة وقياس الجهد الكهربائي في ناقلات الذاكرة. والمكونات الأساسية الأخرى للنظام
- يمكن أن تؤثر جدولة النشاط في النسبة المئوية للوقت الذي تقضيه وحدات المعالجة المركزية (CPU) في حالات عدم النشاط عند انخفاض استهلاك الطاقة. لمزيد من التفاصيل عن منع حدوث هذه التعديلات أثناء الاختبار، يُرجى الاطّلاع على التحكّم في سرعات وحدة المعالجة المركزية (CPU)
على سبيل المثال، يريد Joe Droid احتساب قيمة screen.on
لأحد الأجهزة. هو
يمكّن وضع الطيران على الجهاز، ويشغل الجهاز في حالة حالية مستقرة، ويحتفظ بوحدة المعالجة المركزية (CPU)
ثابت السرعة، ويستخدم قفل التنشيط الجزئي لمنع تعليق النظام. ثم يحوّل يوسف الجهاز
إطفائه وأخذ قياس (200 مللي أمبير). بعد ذلك، يشغّل جو شاشة الجهاز على الأقل
مستوى السطوع ويأخذ قياسًا آخر (300 مللي أمبير). قيمة screen.on
هي
100 ملّي أمبير (من 300 إلى 200).
ملاحظة: للمكوّنات التي ليس لها شكل موجي ثابت للاستهلاك الحالي عندما نشط (مثل الراديو الخلوي أو Wi-Fi)، يمكنك قياس متوسط التيار بمرور الوقت باستخدام طاقة للمراقبة.
عند استخدام مصدر طاقة خارجي بدلاً من بطارية الجهاز، قد يواجه النظام حدوث مشاكل بسبب عدم توصيل الثرموست للبطارية أو دبابيس مقياس الوقود المدمجة (أي يمكن أن تؤدي قراءة درجة حرارة البطارية أو السعة المتبقية للبطارية إلى إيقاف تشغيل النواة أو إيقاف تشغيل Android النظام). يمكن أن توفّر البطاريات المزيفة إشارات على الثرموستور أو دبابيس مقياس الوقود التي تحاكي درجة الحرارة. وقراءات حالة الشحن في النظام العادي، وقد توفر أيضًا عملاء محتملين مناسبين بالاتصال بمصادر الطاقة الخارجية. بدلاً من ذلك، يمكنك تعديل النظام لتجاهل بيانات غير صالحة من البطارية المفقودة.
تعليق نظام التحكم
يصف هذا القسم كيفية تجنُّب حالة تعليق النظام عندما لا تريد أن تتداخل مع القياسات الأخرى، وكيفية قياس سحب الطاقة لحالة تعليق النظام عند إجراء نريد قياسها.
منع تعليق النظام
يمكن أن يؤدي تعليق النظام إلى حدوث تباين غير مرغوب فيه في قياسات الطاقة ووضع مكونات النظام في الحالات المنخفضة الطاقة غير مناسبة لقياس الاستخدام النشط للطاقة. لمنع النظام من التعليق أثناء إطفاء الشاشة، استخدِم قفل التنشيط الجزئي المؤقت. باستخدام كابل USB، وصِّل ساعتك الجهاز إلى مضيف تطوير، ثم أصدر الأمر التالي:
adb shell "echo temporary > /sys/power/wake_lock"
عندما يكون wake_lock
، لا تؤدي حالة إيقاف الشاشة إلى تعليق النظام.
(تذكر فصل كابل USB من الجهاز قبل قياس استهلاك الطاقة).
لإزالة تنشيط التنشيط:
adb shell "echo temporary > /sys/power/wake_unlock"
قياس تعليق النظام
لقياس سحب الطاقة أثناء حالة تعليق النظام، قِس قيمة
cpu.idle
في الملف الشخصي للطاقة. قبل القياس:
- أزِل عمليات قفل التنشيط الحالية (كما هو موضَّح أعلاه).
- ضع الجهاز في وضع الطيران لتجنب النشاط المتزامن من خلال الراديو الخلوي، قد يتم تشغيله على معالج منفصل عن أجزاء المنظومة على الرقاقة (SoC) التي يتحكّم فيها نظام التعليق.
- يمكنك التأكُّد من أن النظام في حالة التعليق من خلال:
- تأكيد استقرار القراءات الحالية على قيمة ثابتة يجب أن تكون القراءات ضمن المعدل المتوقع نطاق استهلاك الطاقة في حالة تعليق المنظومة على الرقاقة (SoC) بالإضافة إلى استهلاك الطاقة للنظام المكونات التي تظل تعمل (مثل USB PHY).
- جارٍ التحقّق من إخراج وحدة تحكّم النظام.
- مراقبة المؤشرات الخارجية لحالة النظام (مثل انطفاء مصباح LED عند عدم تشغيله) التعليق).
التحكّم في سرعات وحدة المعالجة المركزية (CPU)
يمكن تشغيل وحدات المعالجة المركزية (CPU) النشطة على الإنترنت أو عدم الاتصال بالإنترنت، مع تحديد سرعات الساعة الخاصة بها وربطها. تغيير الجهد الكهربائي (قد يؤثر ذلك أيضًا على سرعات ناقل الذاكرة وحالات الطاقة الأساسية للنظام) وإمكانية دخول حالات عدم نشاط ذات طاقة منخفضة أثناء فترة عدم النشاط في النواة. عند قياس وحدة معالجة مركزية (CPU) مختلفة حالات الطاقة لملف تعريف الطاقة، تجنب تباين سحب الطاقة عند قياس المعلمات الأخرى. ويفترض ملف الطاقة أن جميع وحدات المعالجة المركزية (CPU) لها نفس السرعات وخصائص الطاقة المتاحة.
أثناء قياس طاقة وحدة المعالجة المركزية (CPU) أو أثناء الحفاظ على ثابت طاقة وحدة المعالجة المركزية (CPU) لإجراء قياسات أخرى، يُرجى
زيادة عدد وحدات المعالجة المركزية (CPU) التي تدوم إلى الإنترنت بشكل ثابت (مثل استخدام وحدة معالجة مركزية واحدة على الإنترنت والباقي
غير متصل بالإنترنت أو غير متصل بالإنترنت). قد يكون المنتج مقبولاً في حال عدم استخدام أي وحدة من وحدات المعالجة المركزية (CPU) باستثناء واحدة.
نتائجك. يمكن أن يؤدي إيقاف إطار عمل Android باستخدام adb shell stop
إلى تقليل حجم النظام.
نشاط جدولة المهام.
يجب تحديد سرعات وحدة المعالجة المركزية المتاحة لجهازك في ملف الطاقة
إدخال واحد (cpu.speeds
) للحصول على قائمة بسرعات وحدة المعالجة المركزية المتاحة، يمكنك تشغيل:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
تتطابق هذه السرعات مع قياسات الطاقة المقابلة في القيمة cpu.active
.
بالنسبة إلى المنصات التي يؤثر فيها عدد النوى الاتصال بالإنترنت بشكل كبير في استهلاك الطاقة، يجب إلى تعديل برنامج تشغيل أو محافظ cpufreq للنظام الأساسي. تتوافق معظم الأنظمة الأساسية مع التحكم في سرعة وحدة المعالجة المركزية باستخدام محافظ مساحة المستخدم cpufreq واستخدام واجهات sysfs لتحديد السرعة. على سبيل المثال، لضبط السرعة لـ 200 ميغاهرتز على نظام يتضمن وحدة معالجة مركزية واحدة فقط أو جميع وحدات المعالجة المركزية التي تشارك سياسة cpufreq الشائعة، استخدم وحدة تحكم النظام أو هيكل adb لتشغيل الأوامر التالية:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
ملاحظة: تختلف الأوامر الدقيقة وفقًا لتنفيذ النظام الأساسي cpufreq.
تضمن هذه الأوامر أن السرعة الجديدة لا تتجاوز الحدود المسموح بها، وتضبط السرعة الجديدة، ثم طباعة السرعة التي تعمل بها وحدة المعالجة المركزية (CPU) فعليًا (للتحقق). إذا كانت قيمة كان الحد الأدنى للسرعة قبل التنفيذ أعلى من 200000، فقد تحتاج إلى عكس الترتيب أول سطرين، أو نفذ السطر الأول مرة أخرى لتقليل الحد الأدنى للسرعة قبل ضبط الحد الأقصى للسرعة.
لقياس التيار الذي تستهلكه وحدة معالجة مركزية (CPU) تعمل بسرعات مختلفة، استخدم وحدة تحكم النظام لوضع وحدة المعالجة المركزية في حلقة مرتبطة بوحدة المعالجة المركزية (CPU) باستخدام الأمر:
# while true; do true; done
يمكنك إجراء القياس أثناء تنفيذ التكرار الحلقي.
يمكن لبعض الأجهزة تقييد الحد الأقصى لسرعة وحدة المعالجة المركزية (CPU) أثناء إجراء تقييد حراري بسبب ارتفاع قياس درجة الحرارة (أي بعد تشغيل وحدات المعالجة المركزية (CPU) بسرعات عالية لفترات مستمرة) المشاهدة لمدة هذا القيد، إما باستخدام مخرجات وحدة تحكم النظام عند إجراء القياسات أو بالتحقق سجل النواة بعد القياس.
بالنسبة إلى قيمة cpu.awake
، يمكنك قياس الطاقة المستهلكة عندما لا يكون النظام قيد التشغيل.
تعليق المهام وعدم تنفيذها. يجب أن تكون وحدة المعالجة المركزية (CPU) في حلقة غير نشِطة مع برنامج جدولة المهام منخفض الطاقة
، ربما تنفيذ تعليمات انتظار الأحداث من ARM أو في حالة منخفضة الطاقة خاصة بمنظومة المنظومة على الرقاقة (SoC)
بوقت استجابة سريع يتناسب مع الاستخدام في وضع عدم النشاط.
بالنسبة إلى القيمة cpu.active
، يجب قياس الطاقة عندما لا يكون النظام في وضع التعليق.
عدم تنفيذ المهام. وينبغي أن تقوم وحدة معالجة مركزية (CPU) واحدة (عادةً ما تكون وحدة المعالجة المركزية الأساسية) بتشغيل هذه المهمة، بينما ينبغي أن تقوم جميع وحدات المعالجة المركزية الأخرى
في حالة عدم نشاط.
قياس طاقة الشاشة
عند قياس الشاشة عندما تكون قيد التشغيل، تأكَّد من أنّ الأجهزة الأخرى تعمل بشكل طبيعي عندما تكون الشاشة مقفلة. المفعَّلة مفعّلة أيضًا. على سبيل المثال، إذا كانت الشاشة التي تعمل باللمس وإضاءة الشاشة قيد التشغيل عادةً عندما تكون الشاشة قيد التشغيل، تأكد من تشغيل هذه الأجهزة عند إجراء القياس للحصول على مثال واقعي الشاشة حول استخدام الطاقة.
تختلف بعض تقنيات العرض في استهلاك الطاقة وفقًا للألوان المعروضة، مما يؤدي إلى تختلف قياسات الطاقة اختلافًا كبيرًا اعتمادًا على ما يتم عرضه على الشاشة في وقت القياس. عند القياس، تأكّد من أنّ الشاشة تعرض جهازًا متصلاً بمصدر طاقة. خصائص الشاشة الواقعية. صوِّب بين أطراف الشاشة السوداء بالكامل (والتي أقل طاقة لبعض التقنيات) وشاشة بيضاء بالكامل. والخيار الشائع هو عرض جدول زمني في تطبيق التقويم، والذي يحتوي على مزيج من خلفية بيضاء وعناصر غير بيضاء.
عليك قياس مستوى سطوع الشاشة عند الحدّ الأدنى والحدّ الأقصى لسطوع الشاشة/الإضاءة الخلفية. لضبط الحدّ الأدنى للسطوع:
- استخدام واجهة مستخدم Android (لا ننصح بهذا الخيار) ضبط الإعدادات > سطوع الشاشة شريط التمرير إلى الحد الأدنى لسطوع الشاشة. ومع ذلك، تسمح واجهة مستخدم Android بضبط السطوع فقط على ما لا يقل عن 10 إلى 20% من درجة سطوع اللوحة أو الإضاءة الخلفية الممكنة، ولا يسمح بضبط الإعدادات سطوع منخفض لدرجة أن الشاشة قد لا تكون مرئية بدون بذل مجهود كبير.
- استخدام ملف sysfs (يُنصح به) استخدِم ملف sysfs، إن توفّر، للتحكّم وصولاً إلى الحد الأدنى لسطوع اللوحة الذي يعتمده الجهاز.
بالإضافة إلى ذلك، إذا كان ملف sysfs للنظام الأساسي يتيح تحويل لوحة LCD والإضاءة الخلفية تشغيل الشاشة التي تعمل باللمس وإيقافها، واستخدام الملف لإجراء القياسات أثناء تشغيل الشاشة وإيقافها. وإلا، ضبط قفل التنشيط الجزئي حتى لا يعلق النظام، ثم قم بتشغيل الشاشة باستخدام زر التشغيل.
قياس طاقة Wi-Fi
أجرِ قياسات Wi-Fi على شبكة هادئة نسبيًا. تجنُّب تقديم عمل إضافي معالجة كميات كبيرة من حركة بيانات البث غير المرتبطة بالنشاط الذي يتم قياسه.
تقيس القيمة wifi.on
الطاقة المستهلكة عند تفعيل Wi-Fi، ولكن لا يتم استخدامها.
بالإرسال أو الاستقبال بشكل نشط. ويتم قياس هذا غالبًا على أنه الدلتا بين الرسم الحالي
حالة تعليق (السكون) في النظام مع تفعيل Wi-Fi مقابل الإيقاف.
تقيس قيمة wifi.scan
الطاقة المستهلكة أثناء البحث عن شبكة Wi-Fi من أجل الوصول إلى البيانات.
نقاط. يمكن للتطبيقات إجراء عمليات البحث عن شبكات Wi-Fi باستخدام فئة WifiManager.
startScan()
واجهة برمجة التطبيقات. يمكنك أيضًا فتح الإعدادات >. شبكة Wi-Fi التي تعمل على تنفيذ نقطة الوصول
تمسح ضوئيًا كل بضع ثوانٍ مع زيادة واضحة في استهلاك الطاقة، ولكن يجب طرح الشاشة
القوة من هذه القياسات.
ملاحظة: يمكنك استخدام إعداد منظَّم (مثل iperf) لإنشاء استقبال الشبكات ونقلها حركة المرور.