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

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

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

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

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

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

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

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

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

ค่าโปรไฟล์พลังงาน

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

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

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

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