โปรไฟล์พลังงานสำหรับ Android

ข้อมูลการใช้แบตเตอรี่ได้มาจากสถิติการใช้แบตเตอรี่และค่าโปรไฟล์พลังงาน

สถิติการใช้แบตเตอรี่

เฟรมเวิร์กจะกำหนดสถิติการใช้แบตเตอรี่โดยอัตโนมัติโดยติดตามว่าส่วนประกอบอุปกรณ์ใช้เวลานานเท่าใดในสถานะต่างๆ เนื่องจากส่วนประกอบต่างๆ (ชิปเซ็ต 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 (เวลาที่แอปเบื้องหน้าและเวลาทั้งหมดรวมถึงกิจกรรมในเบื้องหลังจะถูกรายงานแยกกัน)