วัดค่ากำลังไฟฟ้า

ผู้ผลิตอุปกรณ์ต้องระบุโปรไฟล์พลังงานของคอมโพเนนต์ใน /frameworks/base/core/res/res/xml/power_profile.xml

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

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

อุปกรณ์ที่มีบลูทูธ โมเด็ม และตัวควบคุม Wi-Fi ที่ใช้ Android 7.0 และ ที่สูงกว่าจะให้ค่ากำลังไฟเพิ่มเติมที่ได้จากข้อมูลชิปเซ็ต

อุปกรณ์ที่มี CPU หลายประเภท

โปรไฟล์พลังงานสำหรับอุปกรณ์ที่มีแกน CPU ของสถาปัตยกรรมที่หลากหลาย ต้องมีฟิลด์เพิ่มเติมต่อไปนี้:

  • จำนวน CPU ทั้งหมดสำหรับแต่ละคลัสเตอร์ (แสดงใน cpu.clusters.cores)
  • ความเร็วของ CPU ที่แต่ละคลัสเตอร์รองรับ
  • การใช้พลังงานของ CPU ที่ใช้งานอยู่สำหรับแต่ละคลัสเตอร์

เพื่อแยกความแตกต่างระหว่างการใช้พลังงานของ CPU ที่ใช้งานอยู่และ CPU ที่รองรับ สำหรับคลัสเตอร์ ให้เพิ่มหมายเลขคลัสเตอร์ต่อท้ายชื่อของอาร์เรย์ ระบบจะกำหนดหมายเลขคลัสเตอร์ตามลําดับของแกน CPU ในต้นไม้อุปกรณ์เคอร์เนล ตัวอย่างเช่น ในสถาปัตยกรรมแบบผสมที่มีคลัสเตอร์ 2 คลัสเตอร์ที่มี 4 แกนประมวลผล

  • คลัสเตอร์0 ประกอบด้วย cpu0-3
  • cluster1 ประกอบด้วย cpu4-7

เฟรมเวิร์ก Android ใช้จำนวนแกน CPU เหล่านี้เมื่ออ่านสถิติจากไฟล์ sysfs ใน /sys/devices/system/cpu/cpu<number>/cpufreq/stats

ตัวอย่าง CPU และความเร็วของคลัสเตอร์

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

ค่ากำลังไฟฟ้า

ตารางต่อไปนี้อธิบายการตั้งค่าค่าพลังงานที่ใช้ได้ หากต้องการดูไฟล์ตัวอย่างใน AOSP โปรดดู power_profile.xml

ชื่อ คำอธิบาย ค่าตัวอย่าง หมายเหตุ
ambient.on พลังงานเพิ่มเติมที่ใช้เมื่อหน้าจออยู่ในโหมดสลีป/โหมดแอมเบียนท์/โหมดเปิดอยู่เสมอแทนที่จะปิดอยู่ ประมาณ 100 mA -
Screen.on ใช้พลังงานมากขึ้นเมื่อหน้าจอเปิดอยู่ที่ความสว่างขั้นต่ำ 200 mA มีตัวควบคุมระบบสัมผัสและไฟแบ็คไลท์ของจอแสดงผล ในความสว่าง 0 ไม่ใช่ความสว่างขั้นต่ำของ Android ซึ่งมักจะอยู่ที่ 10 หรือ 20%
screen.full ใช้พลังงานเพิ่มเติมเมื่อหน้าจอมีความสว่างสูงสุด เมื่อเทียบกับ ที่ความสว่างต่ำสุดของหน้าจอ 100 mA-300 mA ระบบจะเพิ่มเศษส่วนของค่านี้ (อิงตามความสว่างของหน้าจอ) ลงในค่า screen.on เพื่อคํานวณการใช้พลังงานของหน้าจอ
wifi.on มีการใช้ไฟเพิ่มเติมเมื่อเปิด Wi-Fi แต่ไม่ได้รับสัญญาณ การส่งหรือการสแกน 2 mA -
Wi-Fi แอ็กทีฟ พลังงานเพิ่มเติมที่ใช้เมื่อส่งหรือรับผ่าน Wi-Fi 31 mA -
wifi.scan กำลังใช้พลังงานเพิ่มเติมเมื่อ Wi-Fi กำลังสแกนหาจุดเข้าใช้งาน 100 mA -
เสียง พลังงานเพิ่มเติมที่ใช้เมื่อถอดรหัส/เข้ารหัสเสียงผ่าน DSP ประมาณ 10 mA ใช้สำหรับเสียง DSP
วิดีโอ พลังงานเพิ่มเติมที่ใช้เมื่อถอดรหัสวิดีโอผ่าน DSP ประมาณ 50 mA ใช้สำหรับวิดีโอ DSP
กล้องโดยเฉลี่ย การใช้พลังงานโดยเฉลี่ยของระบบย่อยของกล้องสำหรับกล้องทั่วไป แอป 600 mA ข้อมูลนี้เป็นค่าประมาณคร่าวๆ สำหรับแอปที่แสดงตัวอย่างและจับภาพความละเอียดเต็มประมาณ 10 ภาพต่อนาที
กล้องและไฟฉาย กำลังไฟเฉลี่ยที่โมดูลแฟลชของกล้องใช้เมื่อเปิดอยู่ 200 mA -
gps.signalqualitybased GPS จะใช้พลังงานเพิ่มเติมตามความแรงของสัญญาณ รายการนี้เป็นรายการแบบหลายค่า โดยจะมี 1 รายการต่อความแรงสัญญาณ 1 ระดับ ตั้งแต่อ่อนที่สุดไปจนถึงแรงที่สุด 30 mA, 10 mA -
gps.on พลังงานเพิ่มเติมที่ใช้เมื่อ GPS กำลังรับสัญญาณ 50 mA -
radio.active พลังงานเพิ่มเติมที่ใช้เมื่อสัญญาณโทรศัพท์มือถือส่ง/รับ 100 mA-300 mA -
Radioscanning พลังงานเพิ่มเติมที่ใช้เมื่อสัญญาณโทรศัพท์มือถือส่งข้อความแจ้งไปยังหอคอย 1.2 mA -
radio.on พลังงานเพิ่มเติมที่ใช้เมื่อสัญญาณโทรศัพท์มือถือเปิดอยู่ รายการนี้เป็นรายการแบบหลายค่า โดยจะมี 1 รายการต่อความแรงสัญญาณ (ไม่มีสัญญาณ สัญญาณอ่อน ปานกลาง แรง) 1.2 mA วิทยุบางรุ่นจะเพิ่มกำลังไฟเมื่อค้นหาเสาสัญญาณแต่ไม่พบสัญญาณ ค่าอาจเท่าเดิมหรือลดลงเมื่อสัญญาณเพิ่มขึ้น ความแข็งแกร่ง หากระบุเพียงค่าเดียว ระบบจะใช้ค่าเดียวกันทั้งหมด จุดแข็ง หากคุณระบุ 2 ค่า ระบบจะใช้ค่าแรกสำหรับสัญญาณที่ขาดหายไป ค่าที่ 2 สำหรับสัญญาณความแรงอื่นๆ ทั้งหมด และอื่นๆ
Bluetooth.controller.idle ปริมาณกระแสไฟฟ้าที่ใช้โดยเฉลี่ย (mA) ของตัวควบคุมบลูทูธเมื่อไม่มีการใช้งาน - ค่าเหล่านี้ไม่ใช่ค่าประมาณ แต่นำมาจากแผ่นข้อมูลของ คอนโทรลเลอร์ หากมีสถานะการรับหรือส่งหลายรายการ ค่าเฉลี่ย ของรัฐเหล่านั้น นอกจากนี้ ตอนนี้ระบบยังรวบรวมข้อมูลสำหรับการสแกนบลูทูธและบลูทูธพลังงานต่ำ (LE) ด้วย

Android 7.0 ขึ้นไปจะไม่ใช้ค่าพลังงานบลูทูธสำหรับ bluetooth.active (ใช้เมื่อเล่นเสียงผ่านบลูทูธ A2DP) และ bluetooth.on (ใช้เมื่อบลูทูธเปิดอยู่แต่ไม่มีการใช้งาน) อีกต่อไป
bluetooth.controller.rx ปริมาณกระแสไฟฟ้าเฉลี่ย (mA) ของตัวควบคุมบลูทูธเมื่อรับข้อมูล -
Bluetooth.controller.tx ปริมาณกระแสไฟฟ้าที่ใช้โดยเฉลี่ย (mA) ของตัวควบคุมบลูทูธเมื่อส่งข้อมูล -
bluetooth.controller.voltage แรงดันไฟฟ้าที่ทำงานโดยเฉลี่ย (mV) ของตัวควบคุมบลูทูธ -
Modem.controller.sleep การวาดปัจจุบันโดยเฉลี่ย (mA) ของตัวควบคุมโมเด็มเมื่ออยู่ในโหมดสลีป 0 มิลลิแอมป์ ค่าเหล่านี้ไม่ใช่ค่าประมาณ แต่นำมาจากชีตข้อมูลของตัวควบคุม หากมีสถานะการรับหลายรายการ ระบบจะนําค่าเฉลี่ยของสถานะเหล่านั้น หากมีสถานะการส่งหลายรายการ ระบบจะรองรับการระบุค่าสำหรับสถานะการส่งแต่ละรายการโดยเริ่มตั้งแต่ Android 9
Modem.controller.idle การวาดปัจจุบันโดยเฉลี่ย (mA) ของตัวควบคุมโมเด็มเมื่อไม่มีการใช้งาน -
modem.controller.rx ปริมาณกระแสไฟฟ้าเฉลี่ย (mA) ของตัวควบคุมโมเด็มเมื่อรับ -
Modem.controller.tx ปริมาณกระแสไฟฟ้าที่ใช้โดยเฉลี่ย (mA) ของตัวควบคุมโมเด็มเมื่อส่งสัญญาณที่ระดับกำลัง RF ต่างๆ รายการนี้เป็นรายการแบบหลายค่าที่มี 1 ค่าต่อระดับกำลังส่ง 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage แรงดันไฟฟ้าที่ทำงานโดยเฉลี่ย (mV) ของตัวควบคุมโมเด็ม -
wifi.controller.idle การวาดปัจจุบันโดยเฉลี่ย (mA) ของตัวควบคุม Wi-Fi เมื่อไม่มีการใช้งาน - ค่าเหล่านี้ไม่ใช่ค่าประมาณ แต่นำมาจากชีตข้อมูลของตัวควบคุม หากมีสถานะการรับหรือส่งหลายรายการ ระบบจะนําค่าเฉลี่ยของสถานะเหล่านั้น
Wi-Fi.controller.rx การวาดปัจจุบันเฉลี่ย (mA) ของตัวควบคุม Wi-Fi เมื่อรับสัญญาณ -
wifi.controller.tx ปริมาณกระแสไฟฟ้าที่ใช้โดยเฉลี่ย (mA) ของตัวควบคุม Wi-Fi เมื่อส่งข้อมูล -
wifi.controller.voltage แรงดันไฟฟ้าที่ทำงานโดยเฉลี่ย (mV) ของตัวควบคุม Wi-Fi -
ความเร็ว CPU นี่คือรายการแบบหลายค่าที่แสดงความเร็ว CPU ที่เป็นไปได้แต่ละรายการเป็น KHz 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz จำนวนและลำดับของรายการต้องสอดคล้องกับรายการ mA ใน cpu.active
cpu.idle กำลังไฟฟ้าทั้งหมดที่ระบบใช้เมื่อ CPU (และ SoC) อยู่ในสถานะ "ระบบหยุดทำงานชั่วคราว" 3 mA -
cpu.awake พลังงานเพิ่มเติมที่ใช้เมื่อ CPU อยู่ในสถานะไม่ได้ทำงานตามกำหนดเวลา (เคอร์เนลไม่ได้ทำงานอยู่) ระบบไม่ได้อยู่ในสถานะระงับระบบ 50 mA แพลตฟอร์มของคุณอาจมีสถานะ "ไม่มีการใช้งาน" มากกว่า 1 สถานะที่ระดับการสิ้นเปลืองพลังงานแตกต่างกัน ให้เลือกสถานะ "ไม่มีการใช้งาน" ที่แสดงถึงสถานะ "ไม่มีการใช้งาน" ของเครื่องมือจัดตารางเวลาในระยะเวลาที่นานขึ้น (หลายมิลลิวินาที) ตรวจสอบกราฟพลังงานในอุปกรณ์วัดและเลือกตัวอย่างที่ CPU ใช้พลังงานต่ำที่สุด โดยทิ้งตัวอย่างที่สูงกว่าซึ่ง CPU ไม่ได้อยู่ในสถานะ "ไม่มีการใช้งาน"
cpu.active พลังงานเพิ่มเติมที่ซีพียูใช้เมื่อทำงานด้วยความเร็วที่ต่างกัน 100 mA, 120 mA, 140 mA, 160 mA, 200 mA ค่าแสดงถึงกำลังไฟที่ใช้โดยราง CPU เมื่อทำงานด้วยความเร็วที่แตกต่างกัน ตั้งค่าความเร็วสูงสุดในเคอร์เนลเป็นแต่ละความเร็วและเพ็กที่อนุญาต CPU ที่ความเร็วนั้น จำนวนและลำดับของรายการสอดคล้องกับ จำนวนและลำดับการป้อนใน cpu.speeds
cpu.clusters.cores จำนวนแกนที่คลัสเตอร์ CPU แต่ละคลัสเตอร์มี 4, 2 จำเป็นสำหรับอุปกรณ์ที่มีสถาปัตยกรรม CPU แบบผสมเท่านั้น จํานวนรายการและลําดับควรตรงกับจํานวนรายการคลัสเตอร์สําหรับ cpu.active และ cpu.speeds รายการแรกจะแสดง จำนวนแกน CPU ในคลัสเตอร์0 รายการที่สองแสดงจำนวนแกนของ CPU CPU Core ในคลัสเตอร์ 1 และอื่นๆ
ความจุแบตเตอรี่ ความจุแบตเตอรี่ทั้งหมดเป็น mAh 3,000 mAh -

การสแกนพลังงานต่ำ (LE) และบลูทูธ

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