ข้อมูลการใช้แบตเตอรี่ได้มาจากสถิติการใช้แบตเตอรี่และค่าโปรไฟล์พลังงาน
สถิติการใช้แบตเตอรี่
เฟรมเวิร์กจะกำหนดสถิติการใช้แบตเตอรี่โดยอัตโนมัติโดยติดตามว่าส่วนประกอบอุปกรณ์ใช้เวลานานเท่าใดในสถานะต่างๆ เนื่องจากส่วนประกอบต่างๆ (ชิปเซ็ต Wi-Fi, วิทยุมือถือ, บลูทูธ, GPS, จอแสดงผล, CPU) เปลี่ยนสถานะ (ปิด/เปิด ไม่ได้ใช้งาน/กำลังเต็ม ความสว่างต่ำ/สูง ฯลฯ) บริการควบคุมจะรายงานไปยังบริการ BatteryStats ของเฟรมเวิร์ก BatteryStats รวบรวมข้อมูลในช่วงเวลาหนึ่งและจัดเก็บเพื่อใช้ระหว่างการรีบูต บริการนี้ไม่ได้ติดตามการดึงกระแสแบตเตอรี่โดยตรง แต่จะรวบรวมข้อมูลจังหวะที่สามารถใช้เพื่อประมาณการใช้แบตเตอรี่ตามส่วนประกอบต่างๆ
กรอบงานรวบรวมสถิติโดยใช้วิธีการต่อไปนี้:
- ดัน . บริการที่ตระหนักถึงการเปลี่ยนแปลงส่วนประกอบจะผลักดันการเปลี่ยนแปลงสถานะไปยังบริการ BatteryStats
- ดึง . สำหรับส่วนประกอบต่างๆ เช่น CPU ที่แอปใช้ เฟรมเวิร์กจะดึงข้อมูลที่จุดเปลี่ยนโดยอัตโนมัติ (เช่น การเริ่มต้นหรือการหยุดกิจกรรม) เพื่อถ่ายภาพสแน็ปช็อต
การใช้ทรัพยากรเชื่อมโยงกับแอปพลิเคชันที่ใช้ทรัพยากร เมื่อแอปพลิเคชันหลายรายการใช้ทรัพยากรพร้อมกัน (เช่น wakelocks ที่ป้องกันไม่ให้ระบบหยุดชั่วคราว) เฟรมเวิร์กจะกระจายปริมาณการใช้ไปยังแอปพลิเคชันเหล่านั้น แม้ว่าจะไม่จำเป็นต้องเท่ากันก็ตาม
เพื่อหลีกเลี่ยงการสูญเสียสถิติการใช้งานสำหรับเหตุการณ์การปิดระบบ ซึ่งอาจบ่งบอกถึงปัญหาการใช้พลังงานแบตเตอรี่ (เช่น การปิดเครื่องเกิดขึ้นเนื่องจากความจุแบตเตอรี่เหลือเป็นศูนย์) กรอบงานจะกะพริบสถิติทุกๆ 30 นาทีโดยประมาณ
สถิติการใช้แบตเตอรี่ได้รับการจัดการโดยเฟรมเวิร์กทั้งหมด และไม่จำเป็นต้องมีการปรับเปลี่ยนจาก OEM
ค่าโปรไฟล์กำลัง
ข้อควรระวัง: ผู้ผลิตอุปกรณ์ต้องจัดเตรียมโปรไฟล์พลังงานของส่วนประกอบที่กำหนดค่าการใช้กระแสไฟสำหรับส่วนประกอบและการสิ้นเปลืองแบตเตอรี่โดยประมาณที่เกิดจากส่วนประกอบเมื่อเวลาผ่านไป โปรไฟล์นี้ถูกกำหนดไว้ใน platform/frameworks/base/core/res/res/xml/power_profile.xml สำหรับคำแนะนำเกี่ยวกับการตั้งค่าเหล่านี้ โปรดดูที่ ค่าพลังงาน
ภายในโปรไฟล์กำลังไฟ ปริมาณการใช้พลังงานจะระบุเป็นมิลลิแอมป์ (mA) ของกระแสที่ดึงออกมาที่แรงดันไฟฟ้าระบุ และสามารถเป็นค่าเศษส่วนที่ระบุในไมโครแอมป์ (uA) ค่าควรเป็น mA ที่ใช้จากแบตเตอรี่ และไม่ใช่ค่าที่ใช้กับรางจ่ายไฟที่ไม่สอดคล้องกับกระแสที่ใช้จากแบตเตอรี่
ตัวอย่างเช่น โปรไฟล์พลังงานจอแสดงผลจะระบุ mA ของกระแสไฟฟ้าที่จำเป็นเพื่อให้จอแสดงผลเปิดอยู่ที่ความสว่างขั้นต่ำและที่ความสว่างสูงสุด ในการพิจารณาต้นทุนพลังงาน (เช่น แบตเตอรี่ที่สิ้นเปลืองโดยส่วนประกอบจอแสดงผล) ในการรักษาจอแสดงผลไว้ เฟรมเวิร์กจะติดตามเวลาที่ใช้ในแต่ละระดับความสว่าง จากนั้นคูณช่วงเวลาเหล่านั้นด้วยต้นทุนความสว่างของจอแสดงผลแบบประมาณค่า
เฟรมเวิร์กยังคูณเวลา CPU สำหรับแต่ละแอปพลิเคชันด้วย mA ที่จำเป็นในการรัน CPU ที่ความเร็วเฉพาะ การคำนวณนี้กำหนดการจัดอันดับเชิงเปรียบเทียบว่าแอปพลิเคชันใช้แบตเตอรี่เท่าใดโดยการรันโค้ด CPU (เวลาที่แอปเบื้องหน้าและเวลาทั้งหมดรวมถึงกิจกรรมในเบื้องหลังจะถูกรายงานแยกกัน)