توفر أداة Battery Historrian إحصاءات حول استهلاك بطارية الجهاز بمرور الوقت. على مستوى النظام، تعرض الأداة الأحداث ذات الصلة بالطاقة من سجلات النظام في تمثيل HTML. على المستوى الخاص بالتطبيق، توفر الأداة مجموعة متنوعة من البيانات التي يمكن أن تساعدك في تحديد سلوك التطبيقات التي تستنفد طاقة البطارية.
يوضح هذا المستند بعض الطرق التي يمكنك من خلالها استخدام Battery Historian للتعرف على أنماط استهلاك البطارية. تبدأ الوثيقة بشرح كيفية قراءة البيانات على مستوى النظام التي تقاريرها Battery Historian. بعد ذلك، تقدم طرقًا يمكنك من خلالها استخدام Battery Historian لتشخيص سلوك تطبيقك في ما يتعلق باستهلاك البطارية واستكشافه وإصلاحها. وأخيرًا، يقدم العديد من النصائح حول السيناريوهات التي قد يكون فيها Battery Historian مفيدًا بشكل خاص.
استخدام العرض على مستوى النظام
تقدم أداة Battery Historian تصورًا على مستوى النظام لمختلف سلوكيات التطبيقات والأنظمة، إلى جانب ارتباطها باستهلاك البطارية مع مرور الوقت. يمكن أن تساعدك طريقة العرض هذه، التي تظهر في الشكل 1، في تشخيص مشاكل استخدام الطاقة في تطبيقك وتحديدها.
![عرض Battery Historian للأحداث على مستوى النظام التي تؤثر في استهلاك الطاقة.](https://developer.android.google.cn/static/topic/performance/images/generic-timeline.png?authuser=8&hl=ar)
من المهم بشكل خاص في هذا الشكل خط الاتجاه الأسود الأفقي والهازلي الذي يمثل مستوى البطارية الذي تم قياسه على المحور y. على سبيل المثال، في بداية خط مستوى البطارية، في حوالي 6:50 صباحًا، يُظهر التصور انخفاضًا حادًا نسبيًا في مستوى البطارية.
يقدم الشكل 2 لقطة مقرّبة لذلك الجزء من الشاشة.
![لقطة مقرّبة للمخطط الزمني لتاريخ البطارية من الساعة 6:50 صباحًا إلى الساعة 7:20 صباحًا تقريبًا.](https://developer.android.google.cn/static/topic/performance/images/s-generic-closeup.png?authuser=8&hl=ar)
في بداية سطر مستوى البطارية، وبينما يتراجع مستوى شحن البطارية بشكل كبير، تظهر الشاشة ثلاثة أشياء: تعمل وحدة المعالجة المركزية (CPU)، وأُعيد تفعيل أحد التطبيقات تنشيطها، والشاشة قيد التشغيل. بهذه الطريقة، يساعدك تطبيق Battery Historian في فهم الأحداث التي تحدث عندما يكون استهلاك البطارية مرتفعًا. يمكنك بعد ذلك استهداف هذه السلوكيات في تطبيقك والتحقق ممّا إذا كانت هناك تحسينات ذات صلة يمكنك إجراؤها أم لا.
يمكن أن يوفر التصور على مستوى النظام أدلة أخرى أيضًا. على سبيل المثال، إذا تبيّن لك أنّ الراديو على الأجهزة الجوّالة يتم إيقافه وتشغيله بشكل متكرر، قد تتوفّر لك فرصة لتحسين هذا السلوك من خلال واجهات برمجة التطبيقات الذكية للجدولة، مثل JobScheduler أو Firebase Job Dispatcher (أداة إرسال المهام من Firebase).
يوضح القسم التالي كيفية التحقيق في السلوك والأحداث الخاصة بتطبيقك.
عرض البيانات الخاصة بالتطبيق
بالإضافة إلى البيانات على مستوى الماكرو التي يوفّرها العرض على مستوى النظام، يوفّر Battery Historian أيضًا جداول وبعض البيانات المرئية الخاصة بكل تطبيق يتم تشغيله على جهازك. تشمل البيانات الجدولية ما يلي:
- يشير هذا المصطلح إلى استخدام التطبيق المقدَّر للطاقة على الجهاز.
- معلومات الشبكة
- قفل التنشيط:
- الخدمات.
- معلومات العملية.
يوفر الجدولان بُعدين من البيانات المتعلقة بتطبيقك. أولاً، يمكنك البحث عن ترتيب استخدام تطبيقك للطاقة مقارنةً بالتطبيقات الأخرى. لإجراء ذلك، انقر على جدول تقديرات طاقة الجهاز ضمن الجداول. يتناول هذا المثال تطبيقًا خياليًا يسمى Pug Power.
![جارٍ التحقيق في التطبيقات التي تستهلك أكبر قدر من الطاقة.](https://developer.android.google.cn/static/topic/performance/images/app-rankings.png?authuser=8&hl=ar)
يكشف الجدول في الشكل 3 أن Pug Power هو تاسع أكبر مستهلك لطاقة البطارية على هذا الجهاز، وثالث أكبر تطبيق ليس جزءًا من نظام التشغيل. تشير هذه البيانات إلى أنّ هذا التطبيق يجري تحقيقًا أعمق.
للبحث عن بيانات تطبيق معيّن، أدخِل اسم الحزمة الخاصة به في أسفل القائمتين المنسدلتين ضمن اختيار التطبيق، أسفل الجانب الأيسر من العرض المرئي.
![إدخال تطبيق معين لعرض بياناته.](https://developer.android.google.cn/static/topic/performance/images/dropdown.png?authuser=8&hl=ar)
عند اختيار تطبيق معيّن، تتغير فئات مؤثرات عرض البيانات التالية لعرض بيانات خاصة بالتطبيق بدلاً من البيانات على مستوى النظام:
- SyncManager.
- العملية التي تعمل في المقدّمة.
- القفل النشط لمساحة المستخدم.
- أفضل تطبيق
- JobScheduler.
- إجراء مدير النشاط
وتوضّح تصورات SyncManager وJobScheduler على الفور ما إذا كان تطبيقك ينفذ عمليات مزامنة وينفذ المهام بشكل متكرر أكثر من اللازم. وعند إجراء ذلك، يمكن أن تظهر لهم بسرعة فرصة لتحسين سلوك التطبيق بهدف تحسين أداء البطارية.
يمكنك أيضًا الحصول على جزء آخر من بيانات العرض المرئي الخاصة بالتطبيق، Userspace Wakelock. لتضمين هذه المعلومات في تقرير الخطأ، أدخل الأمر التالي في نافذة المحطة الطرفية:
$ adb shell dumpsys batterystats --enable full-wake-history
يوضح الشكلان 5 و6 بيانات لـ Pug Power: يوضح الشكل 5 تصور البيانات الخاصة بالتطبيق، ويوضح الشكل 6 البيانات الجدولية المقابلة.
![عرض بيانات التطبيق الخيالي Pug Power.](https://developer.android.google.cn/static/topic/performance/images/pug-visualization.png?authuser=8&hl=ar)
![بيانات جدولية لتطبيق Pug Power الخيالي.](https://developer.android.google.cn/static/topic/performance/images/pugspecificdata.png?authuser=8&hl=ar)
لا تُظهر النظرة على التصور أي شيء واضح على الفور. يُظهر سطر JobScheduler أن التطبيق لا يتضمن أي مهام مجدولة. يُظهر سطر SyncManager أن التطبيق لم يُجر أي عمليات مزامنة.
ومع ذلك، يكشف فحص شريحة القفل النشط من البيانات الجدولية أنّ قدرة Pug Power تكتسب عمليات قفل تنشيطية يصل مجموعها إلى أكثر من ساعة. يمكن أن يمثل هذا السلوك غير المعتاد والمكلف المستوى العالي لاستهلاك التطبيق للطاقة. تساعد هذه المعلومات المطور في استهداف منطقة من المرجح أن يساعد التحسين فيها بشكل كبير. في هذه الحالة، لماذا يكتسب التطبيق الكثير من وقت قفل التنشيط، وكيف يمكن للمطور تحسين هذا السلوك؟
الحالات الأخرى التي يمكن أن يساعد فيها تطبيق Battery Historian
هناك العديد من الحالات الأخرى التي يمكن أن يساعدك فيها Battery Historian في تشخيص فرص تحسين سلوك البطارية. على سبيل المثال، يمكن أن يخبرك تطبيق Battery Historian بما إذا كان تطبيقك:
- تنشيط منبّهات الاستيقاظ كثيرًا بشكلٍ متكرّر (كل 10 ثوانٍ أو أقل)
- الضغط المستمر على قفل نظام تحديد المواقع العالمي (GPS).
- جدولة المهام كل 30 ثانية أو أقل.
- تتم مزامنة الجدول الزمني كل 30 ثانية أو أقل.
- استخدام الراديو الخلوي بشكل متكرر أكثر مما تتوقع.