Android คำนวณการใช้พลังงานแบตเตอรี่โดยแอพอย่างไร


24

Android วัดพลังงานที่ใช้โดยส่วนประกอบฮาร์ดแวร์แต่ละตัวอย่างไร Android วัดพลังงานที่ใช้ในแต่ละกระบวนการอย่างไร


ฉันเดาว่าจะมีคำแนะนำกี่วิธีใน 1 วินาที
AZ_

6
@ อัลโก: มันจะทำให้เข้าใจผิดโดยสิ้นเชิงในการสมมติว่าแอปพลิเคชั่นพื้นหลังที่ใช้ CPU จำนวนมากนั้นหิวมากขึ้นกว่าแอพพลิเคชั่นอื่นที่ใช้ CPU น้อย แต่มี Wifi และ GPS และจอแสดงผลจำนวนมาก
Lie Ryan

ถ้าเป็นเช่นนั้นคุณจะได้รับคำใบ้จากจำนวนสิทธิ์ที่แอปพลิเคชันได้มา .. เพียงแค่ความคิด
AZ_

@ LiRyan ในสถิติแบตเตอรี่ไม่ใช่ wifi, gps, bluetooth และอื่น ๆ คำนวณว่าเป็น "ผู้บริโภค" ของแบตเตอรี่หรือไม่
Ryan Conrad

คำตอบ:


11

Android ติดตามกิจกรรมที่มีผลต่อการใช้แบตเตอรี่และจัดเก็บข้อมูลนี้ในไฟล์ batterystats.bin ตัวอย่างบางส่วน:

  • หน้าจอความยาวของเวลาเปิดอยู่พร้อมการตั้งค่าความเปราะบาง
  • แอปพลิเคชันใด (หรือไม่ใช่กระบวนการแอป Android) และล็อคล็อคปลุกไว้นานเท่าใด (ป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดสลีป)
  • การใช้ CPU ต่อกระบวนการ (แอพ Android หรือกระบวนการอื่น)
  • ความแรงของสัญญาณโทรศัพท์
  • การใช้งาน GPS
  • เป็นต้น

Android คำนวณจำนวนพลังงานที่แอปพลิเคชันหรือส่วนประกอบ (เช่นหน้าจอ) ใช้ตามข้อมูลการกำหนดค่าที่รวมอยู่ในอุปกรณ์โดยผู้ผลิต

ไม่ใช่ทุกอย่างที่วัดดังนั้นสถิติอาจทำให้เข้าใจผิดได้ในบางครั้ง แต่จะดีขึ้นเมื่อใช้แพลตฟอร์ม Android ทุกรุ่น

สามารถทิ้งสถิติแบตเตอรี่จากอุปกรณ์โดยใช้:

adb shell dumpsys batterystats

นี่คือส่วนที่น่าสนใจของโพสต์โดย Diane Hackbornพร้อมรายละเอียดเพิ่มเติมเกี่ยวกับการใช้พลังงานล็อคปลุก:

มีสองวิธีในการคำนวณพลังงานจากการล็อคปลุก

  1. ในชิปเซ็ตบางตัวเพียงแค่ถือล็อคการล็อคเพื่อป้องกันไม่ให้ CPU เข้าสู่โหมดสลีปเต็ม ในการใช้งานแบตเตอรี่ที่รายงานการใช้พลังงานพิเศษนี้จะกระจายไปทั่วทุกแอพที่มีล็อคการปลุก

  2. แม้ว่าตัวล็อคการปลุกจะไม่ทำให้เกิดการใช้พลังงาน แต่การล็อคตัวล็อคปลุกในแอพหนึ่งสามารถอนุญาตให้แอพพลิเคชั่นอื่นทำงานและ CPU เมื่อไม่ได้ใช้งาน (ตัวอย่างเช่นแอปบางตัวอาจมี {sleep (1); some something;} loop ที่จะไม่ทำงานหากไม่มีการล็อคการปลุก) เมื่อต้องการแก้ไขปัญหานี้ครึ่งหนึ่งของการใช้งาน CPU ของแอพพลิเคชั่นจะถูกตำหนิ สิ่งที่ถือล็อคปลุก


คุณสามารถให้แหล่งที่มา / การอ้างอิงที่พิสูจน์คำตอบของคุณได้หรือไม่?
diimdeep

ข้อมูลทั้งหมดมาจากลิงก์ที่ระบุไปยัง google + thread โดยผู้พัฒนา Google ที่คุ้นเคยกับพื้นที่
Paweł Nadolski

1
คำสั่งที่ถูกต้องสำหรับอุปกรณ์ใหม่ (ไม่แน่ใจว่าควรใช้ API ใด): adb shell dumpsys batterystats หรือ (ในกรณีที่คุณต้องการภายในไฟล์): adb shell dumpsys batterystats> batterystats.txt
นักพัฒนา Android
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.