การวัดค่ากำลัง

ผู้ผลิตอุปกรณ์ต้องจัดเตรียมโปรไฟล์พลังงานส่วนประกอบใน /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

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

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

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

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