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

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

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

เฟรมเวิร์กจะกำหนดสถิติการใช้แบตเตอรี่โดยอัตโนมัติด้วยการติดตามระยะเวลาที่คอมโพเนนต์ของอุปกรณ์ อยู่ในสถานะต่างๆ เมื่อคอมโพเนนต์ (ชิปเซ็ต Wi-Fi, วิทยุเซลลูลาร์, บลูทูธ, GPS, จอแสดงผล, CPU) เปลี่ยนสถานะ (ปิด/เปิด, ว่าง/เต็มกำลัง, ความสว่างต่ำ/สูง ฯลฯ) บริการควบคุม จะรายงานไปยังบริการ BatteryStats ของเฟรมเวิร์ก BatteryStats จะรวบรวมข้อมูลเมื่อเวลาผ่านไป และจัดเก็บไว้เพื่อใช้ในการรีบูต บริการนี้ไม่ได้ติดตามการดึงกระแสไฟฟ้าของแบตเตอรี่โดยตรง แต่จะรวบรวมข้อมูลเวลาที่ใช้ในการประมาณการใช้แบตเตอรี่ ของคอมโพเนนต์ต่างๆ แทน

เฟรมเวิร์กจะรวบรวมสถิติโดยใช้วิธีการต่อไปนี้

  • ดัน บริการที่รับรู้ถึงการเปลี่ยนแปลงคอมโพเนนต์จะส่งการเปลี่ยนแปลงสถานะไปยังบริการ BatteryStats
  • ดึง สำหรับคอมโพเนนต์ต่างๆ เช่น การใช้งาน CPU โดยแอป เฟรมเวิร์กจะดึงข้อมูลโดยอัตโนมัติ ณ จุดเปลี่ยน (เช่น การเริ่มหรือหยุดกิจกรรม) เพื่อถ่ายภาพรวม

การใช้ทรัพยากรจะเชื่อมโยงกับแอปพลิเคชันที่ใช้ทรัพยากร เมื่อแอปพลิเคชันหลายรายการใช้ทรัพยากรพร้อมกัน (เช่น WakeLock ที่ป้องกันไม่ให้ระบบ ระงับ) เฟรมเวิร์กจะกระจายการใช้ทรัพยากรไปยังแอปพลิเคชันเหล่านั้น แม้ว่าจะไม่จำเป็นต้อง เท่ากันก็ตาม

เฟรมเวิร์กจะส่งสถิติทุกๆ 30 นาทีโดยประมาณเพื่อไม่ให้สูญเสียสถิติการใช้งานสำหรับเหตุการณ์การปิดระบบ ซึ่งอาจบ่งชี้ถึงปัญหาการใช้พลังงานแบตเตอรี่ (เช่น การปิดระบบเกิดขึ้นเนื่องจากแบตเตอรี่เหลือ 0%)

เฟรมเวิร์กจะจัดการสถิติการใช้แบตเตอรี่ทั้งหมด และไม่จำเป็นต้องมีการแก้ไข OEM

ค่าโปรไฟล์ประสิทธิภาพ

ข้อควรระวัง: ผู้ผลิตอุปกรณ์ต้องระบุโปรไฟล์การใช้พลังงานของคอมโพเนนต์ ซึ่งกำหนดค่าการใช้พลังงานปัจจุบันสำหรับคอมโพเนนต์และการใช้แบตเตอรี่โดยประมาณ ที่เกิดจากคอมโพเนนต์เมื่อเวลาผ่านไป โปรไฟล์นี้กำหนดไว้ใน platform/frameworks/base/core/res/res/xml/power_profile.xml ดูคำแนะนำเกี่ยวกับการตั้งค่าเหล่านี้ได้ที่ค่าพลังงาน

ภายในโปรไฟล์พลังงาน จะมีการระบุการใช้พลังงานเป็นมิลลิแอมป์ (mA) ของกระแสไฟฟ้าที่ แรงดันไฟฟ้าที่กำหนด และอาจเป็นค่าเศษส่วนที่ระบุเป็นไมโครแอมป์ (uA) ค่าควรเป็น mA ที่ใช้ในแบตเตอรี่ และไม่ใช่ค่าที่ใช้กับรางจ่ายไฟที่ไม่สอดคล้องกับ กระแสที่ใช้จากแบตเตอรี่

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

เฟรมเวิร์กยังคูณเวลา CPU สำหรับแต่ละแอปพลิเคชันด้วย mA ที่จำเป็นในการเรียกใช้ CPU ที่ความเร็วที่เฉพาะเจาะจง การคำนวณนี้จะสร้างการจัดอันดับเปรียบเทียบว่าแอปพลิเคชันใช้แบตเตอรี่มากน้อยเพียงใดโดยการเรียกใช้โค้ด CPU (เวลาที่แอปเป็นแอปที่ทำงานอยู่เบื้องหน้าและเวลาทั้งหมดรวมถึงกิจกรรมในเบื้องหลังจะรายงานแยกกัน)