ผู้ผลิตอุปกรณ์ต้องระบุโปรไฟล์พลังงานของส่วนประกอบใน
/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
- คลัสเตอร์1 ประกอบด้วย 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
ชื่อ | คำอธิบาย | ค่าตัวอย่าง | หมายเหตุ |
---|---|---|---|
แอมเบียนท์ | ใช้พลังงานเพิ่มเติมเมื่อหน้าจออยู่ในโหมด Doze/แอมเบียนท์/เปิดตลอดเวลา แทนที่จะปิด | ประมาณ 100 mA | - |
Screen.on | ใช้พลังงานมากขึ้นเมื่อหน้าจอเปิดอยู่ที่ความสว่างขั้นต่ำ | 200 mA | รวมตัวควบคุมระบบสัมผัสและแบ็กไลต์ของจอแสดงผล ที่ความสว่าง 0 ไม่ใช่ค่า ขั้นต่ำของ Android ซึ่งมีแนวโน้มจะเท่ากับ 10 หรือ 20% |
เต็มหน้าจอ | พลังงานเพิ่มเติมที่ใช้เมื่อหน้าจอมีความสว่างสูงสุด เมื่อเทียบกับ ที่ความสว่างต่ำสุดของหน้าจอ | 100 mA-300 mA | ส่วนหนึ่งของค่านี้ (ขึ้นอยู่กับความสว่างของหน้าจอ) จะเพิ่มลงใน ค่า screen.on เพื่อคำนวณการใช้พลังงานของหน้าจอ |
Wi-Fi เปิด | มีการใช้ไฟเพิ่มเติมเมื่อเปิด 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 รายการต่อความแรงของสัญญาณ จากอ่อนที่สุดไปแรงที่สุด | 30 mA, 10 mA | - |
gps.on | ใช้พลังงานมากขึ้นเมื่อ GPS กำลังรับสัญญาณ | 50 mA | - |
กัมมันตรังสี | ใช้พลังงานเพิ่มเติมเมื่อมีการส่ง/รับสัญญาณวิทยุเครือข่ายมือถือ | 100 mA-300 mA | - |
Radioscanning | ใช้พลังงานมากขึ้นเมื่อวิทยุเครือข่ายมือถือบังคับเพจให้หอคอย | 1.2 mA | - |
Radio.on | ใช้พลังงานเพิ่มเติมเมื่อวิทยุเครือข่ายมือถือเปิดอยู่ ซึ่งเป็นรายการที่มีค่าหลายค่า 1 ครั้งต่อความแรงของสัญญาณ (ไม่มีสัญญาณ อ่อน ปานกลาง แรง) | 1.2 mA | วิทยุบางรุ่นจะกระตุ้นพลังงานเมื่อเขาค้นหาเสาสัญญาณมือถือและไม่ ตรวจพบสัญญาณ ค่าอาจเท่าเดิมหรือลดลงเมื่อสัญญาณเพิ่มขึ้น ความแข็งแกร่ง หากระบุเพียงค่าเดียว ระบบจะใช้ค่าเดียวกันทั้งหมด จุดแข็ง หากคุณระบุ 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 | พลังงานเพิ่มเติมที่ CPU ใช้เมื่อทำงานที่ความเร็วที่ต่างกัน | 100 mA, 120 mA, 140 mA, 160 mA, 200 mA | ค่าแสดงกำลังไฟฟ้าที่ราง CPU ใช้เมื่อทำงานที่ เร็ว ตั้งค่าความเร็วสูงสุดในเคอร์เนลเป็นแต่ละความเร็วและเพ็กที่อนุญาต CPU ที่ความเร็วนั้น จำนวนและลำดับของรายการสอดคล้องกับ จำนวนและลำดับการป้อนใน cpu.speeds |
cpu.clusters.cores | จำนวนแกนที่คลัสเตอร์ CPU แต่ละคลัสเตอร์มี | 4 2 | จำเป็นเฉพาะสำหรับอุปกรณ์ที่มี CPU ที่ไม่ซ้ำกันเท่านั้น สถาปัตยกรรม จำนวนรายการและลำดับควรตรงกับจำนวน รายการคลัสเตอร์สำหรับ cpu.active และ cpu.speed รายการแรกจะแสดง จำนวนแกน CPU ในคลัสเตอร์0 รายการที่สองแสดงจำนวนแกนของ CPU CPU Core ในคลัสเตอร์ 1 และอื่นๆ |
ความจุแบตเตอรี่ | ความจุแบตเตอรี่ทั้งหมดในหน่วย mAh | 3,000 mAh | - |
การสแกนหาบลูทูธและพลังงานต่ำ (LE)
สำหรับอุปกรณ์ที่ใช้ Android 7.0 ระบบจะเก็บรวบรวมข้อมูลสำหรับพลังงานต่ำ (LE) สแกนและการจราจรของข้อมูลในเครือข่ายบลูทูธ (เช่น RFCOMM และ L2CAP) และการเชื่อมโยง กิจกรรมเหล่านี้ด้วยแอปเริ่มต้น เชื่อมโยงการสแกนหาบลูทูธแล้ว กับแอปที่เริ่มการสแกน แต่การสแกนแบบกลุ่มไม่เป็นเช่นนั้น (และ เชื่อมโยงกับแอปบลูทูธแทน) สําหรับแอป การสแกนเป็นเวลา N มิลลิวินาที ค่าใช้จ่ายในการสแกนคือ N มิลลิวินาทีของเวลา rx และ N มิลลิวินาทีสำหรับเวลา TX ได้กำหนดเวลาเหลือของตัวควบคุมทั้งหมดให้กับ การจราจรของข้อมูลในเครือข่าย หรือแอปบลูทูธ