Đo lường giá trị công suất

Nhà sản xuất thiết bị phải cung cấp một hồ sơ nguồn của thành phần trong /frameworks/base/core/res/res/xml/power_profile.xml.

Để xác định giá trị cho hồ sơ sử dụng điện, hãy sử dụng phần cứng đo lượng điện mà thiết bị đang dùng và thực hiện nhiều thao tác cần thông tin. Đo mức tiêu thụ điện trong các hoạt động đó và tính toán các giá trị (lấy mức chênh lệch từ các mức tiêu thụ điện cơ bản khác nếu thích hợp).

Vì mục tiêu của hồ sơ năng lượng là ước tính mức tiêu hao pin một cách thích hợp, nên các giá trị hồ sơ năng lượng được đưa ra bằng dòng điện (ampe). Khung Android nhân dòng hiện tại với thời gian mà hệ thống con hoạt động và tính toán giá trị mAh. Sau đó, giá trị này được dùng để ước tính lượng pin mà ứng dụng hoặc hệ thống con đã tiêu thụ.

Các thiết bị có bộ điều khiển Bluetooth, modem và Wi-Fi chạy Android 7.0 trở lên có thể cung cấp các giá trị năng lượng bổ sung thu được từ dữ liệu của chipset.

Thiết bị có CPU không đồng nhất

Hồ sơ sử dụng điện của các thiết bị có lõi CPU thuộc kiến trúc không đồng nhất phải có các trường bổ sung sau:

  • Tổng số CPU cho mỗi cụm (được biểu thị bằng cpu.clusters.cores).
  • Tốc độ CPU mà mỗi cụm hỗ trợ.
  • Mức tiêu thụ điện năng của CPU đang hoạt động cho mỗi cụm.

Để phân biệt giữa mức tiêu thụ điện năng của CPU đang hoạt động và tốc độ CPU được hỗ trợ cho các cụm, hãy thêm số cụm vào tên của mảng. Số lượng cụm được chỉ định theo thứ tự của các lõi CPU trong cây thiết bị của nhân. Ví dụ: trong một cấu trúc không đồng nhất có 2 cụm với 4 lõi:

  • cluster0 bao gồm cpu0-3
  • cluster1 bao gồm cpu4-7

Khung Android sử dụng các số lõi CPU này khi đọc số liệu thống kê từ các tệp sysfs trong: /sys/devices/system/cpu/cpu<number>/cpufreq/stats.

Ví dụ về CPU và tốc độ của cụm:

<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>

Giá trị công suất

Bảng sau đây mô tả các chế độ cài đặt giá trị công suất hiện có. Để xem tệp mẫu trong AOSP, hãy xem power_profile.xml.

Tên Mô tả Giá trị mẫu Ghi chú
ambient.on Năng lượng tiêu thụ thêm khi màn hình ở chế độ chờ/môi trường xung quanh/luôn bật thay vì tắt. khoảng 100 mA -
screen.on Lượng điện năng bổ sung được dùng khi màn hình bật ở độ sáng tối thiểu. 200 mA Bao gồm bộ điều khiển cảm ứng và đèn nền màn hình. Ở độ sáng 0, không phải độ sáng tối thiểu của Android thường là 10 hoặc 20%.
screen.full Lượng điện năng bổ sung được dùng khi màn hình ở độ sáng tối đa, so với màn hình ở độ sáng tối thiểu. 100 mA – 300 mA Một phần của giá trị này (dựa trên độ sáng màn hình) được thêm vào giá trị screen.on để tính mức sử dụng năng lượng của màn hình.
wifi.on Lượng điện năng tiêu thụ thêm khi Wi-Fi đang bật nhưng không nhận, truyền hoặc quét. 2 mA -
wifi.active Năng lượng bổ sung được dùng khi truyền hoặc nhận dữ liệu qua Wi-Fi. 31 mA -
wifi.scan Lượng điện năng tiêu thụ thêm khi Wi-Fi quét các điểm truy cập. 100 mA -
âm thanh Năng lượng bổ sung được dùng khi giải mã/mã hoá âm thanh thông qua DSP. khoảng 10 mA Dùng cho âm thanh DSP.
video Lượng điện năng tiêu thụ thêm khi giải mã video qua DSP. khoảng 50 mA Dùng cho video DSP.
camera.avg Mức sử dụng điện trung bình của hệ thống con camera cho một ứng dụng camera thông thường. 600 mA Dự kiến là mức ước tính sơ bộ cho một ứng dụng đang chạy bản xem trước và chụp khoảng 10 bức ảnh có độ phân giải đầy đủ mỗi phút.
camera.flashlight Công suất trung bình mà mô-đun đèn flash của camera sử dụng khi bật. 200 mA -
gps.signalqualitybased Lượng pin tiêu thụ thêm của GPS dựa trên cường độ tín hiệu. Đây là một mục nhập có nhiều giá trị, mỗi giá trị cho một cường độ tín hiệu, từ yếu nhất đến mạnh nhất. 30 mA, 10 mA -
gps.on Năng lượng bổ sung được dùng khi GPS đang thu nhận tín hiệu. 50 mA -
radio.active Năng lượng bổ sung được dùng khi đài vô tuyến di động đang truyền/nhận dữ liệu. 100 mA – 300 mA -
radio.scanning Nguồn điện bổ sung được dùng khi đài vô tuyến di động đang phân trang tháp. 1,2 mA -
radio.on Nguồn điện bổ sung được dùng khi đài vô tuyến di động ở trạng thái bật. Đây là một mục nhập có nhiều giá trị, mỗi giá trị cho một cường độ tín hiệu (không có tín hiệu, yếu, trung bình, mạnh). 1,2 mA Một số đài sẽ tăng công suất khi tìm kiếm trạm phát sóng và không phát hiện thấy tín hiệu. Các giá trị có thể giống nhau hoặc giảm khi cường độ tín hiệu tăng. Nếu bạn chỉ cung cấp một giá trị, thì giá trị đó sẽ được dùng cho tất cả các điểm mạnh. Nếu bạn cung cấp hai giá trị, giá trị đầu tiên sẽ được dùng cho trường hợp không có tín hiệu, giá trị thứ hai sẽ được dùng cho tất cả các cường độ khác, v.v.
bluetooth.controller.idle Mức tiêu thụ điện trung bình (mA) của bộ điều khiển Bluetooth khi ở trạng thái rảnh. - Các giá trị này không phải là giá trị ước tính mà được lấy từ bảng dữ liệu của bộ điều khiển. Nếu có nhiều trạng thái nhận hoặc truyền, hệ thống sẽ lấy giá trị trung bình của các trạng thái đó. Ngoài ra, hệ thống hiện thu thập dữ liệu cho các hoạt động quét Bluetooth và Năng lượng thấp (LE).

Android 7.0 trở lên không còn sử dụng các giá trị nguồn Bluetooth cho bluetooth.active (được dùng khi phát âm thanh qua Bluetooth A2DP) và bluetooth.on (được dùng khi Bluetooth đang bật nhưng ở trạng thái rảnh).
bluetooth.controller.rx Mức tiêu thụ điện trung bình (mA) của bộ điều khiển Bluetooth khi nhận. -
bluetooth.controller.tx Mức tiêu thụ điện năng trung bình (mA) của bộ điều khiển Bluetooth khi truyền dữ liệu. -
bluetooth.controller.voltage Điện áp hoạt động trung bình (mV) của bộ điều khiển Bluetooth. -
modem.controller.sleep Mức tiêu thụ dòng điện trung bình (mA) của bộ điều khiển modem khi ở chế độ ngủ. 0 mA Những giá trị này không phải là giá trị ước tính mà được lấy từ bảng dữ liệu của bộ điều khiển. Nếu có nhiều trạng thái nhận, hệ thống sẽ lấy giá trị trung bình của các trạng thái đó. Nếu có nhiều trạng thái truyền, thì việc chỉ định một giá trị cho mỗi trạng thái truyền được hỗ trợ từ Android 9.
modem.controller.idle Mức tiêu thụ điện trung bình (mA) của bộ điều khiển modem khi ở trạng thái rảnh. -
modem.controller.rx Mức tiêu thụ điện trung bình (mA) của bộ điều khiển modem khi nhận. -
modem.controller.tx Mức tiêu thụ dòng điện trung bình (mA) của bộ điều khiển modem khi truyền ở các mức công suất RF khác nhau. Đây là một mục có nhiều giá trị, trong đó có một giá trị cho mỗi mức công suất truyền. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage Điện áp hoạt động trung bình (mV) của bộ điều khiển modem. -
wifi.controller.idle Mức tiêu thụ điện trung bình (mA) của bộ điều khiển Wi-Fi khi ở trạng thái rảnh. - Các giá trị này không phải là giá trị ước tính mà được lấy từ bảng dữ liệu của bộ điều khiển. Nếu có nhiều trạng thái nhận hoặc truyền, hệ thống sẽ lấy giá trị trung bình của các trạng thái đó.
wifi.controller.rx Mức tiêu thụ điện trung bình (mA) của bộ điều khiển Wi-Fi khi nhận. -
wifi.controller.tx Mức tiêu thụ dòng điện trung bình (mA) của bộ điều khiển Wi-Fi khi truyền dữ liệu. -
wifi.controller.voltage Điện áp hoạt động trung bình (mV) của bộ điều khiển Wi-Fi. -
cpu.speeds Đây là một mục nhập có nhiều giá trị, liệt kê từng tốc độ CPU có thể có theo KHz. 125.000 KHz, 250.000 KHz, 500.000 KHz, 1.000.000 KHz, 1.500.000 KHz Số lượng và thứ tự của các mục phải tương ứng với các mục mA trong cpu.active.
cpu.idle Tổng công suất mà hệ thống tiêu thụ khi CPU (và SoC) ở trạng thái tạm ngưng hệ thống. 3 mA -
cpu.awake Công suất tiêu thụ bổ sung khi CPU ở trạng thái lập lịch rảnh (vòng lặp rảnh của nhân); hệ thống không ở trạng thái tạm ngưng hệ thống. 50 mA Nền tảng của bạn có thể sử dụng nhiều trạng thái không hoạt động với các mức tiêu thụ điện năng khác nhau; hãy chọn một trạng thái không hoạt động đại diện cho các khoảng thời gian không hoạt động của trình lập lịch dài hơn (vài mili giây). Kiểm tra biểu đồ công suất trên thiết bị đo và chọn các mẫu có mức tiêu thụ CPU thấp nhất, loại bỏ các mẫu có mức tiêu thụ cao hơn khi CPU thoát khỏi trạng thái rảnh.
cpu.active Công suất bổ sung mà CPU sử dụng khi chạy ở các tốc độ khác nhau. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Giá trị này biểu thị mức điện năng mà các đường dẫn CPU sử dụng khi chạy ở các tốc độ khác nhau. Đặt tốc độ tối đa trong nhân thành từng tốc độ được phép và ghim CPU ở tốc độ đó. Số lượng và thứ tự của các mục tương ứng với số lượng và thứ tự của các mục trong cpu.speeds.
cpu.clusters.cores Số lượng lõi mà mỗi cụm CPU chứa. 4, 2 Chỉ bắt buộc đối với các thiết bị có cấu trúc CPU không đồng nhất. Số lượng mục và thứ tự phải khớp với số lượng mục cụm cho cpu.active và cpu.speeds. Mục đầu tiên biểu thị số lõi CPU trong cluster0, mục thứ hai biểu thị số lõi CPU trong cluster1, v.v.
battery.capacity Tổng dung lượng pin tính bằng mAh. 3000 mAh -

Quét tìm Bluetooth và Năng lượng thấp (LE)

Đối với các thiết bị chạy Android 7.0, hệ thống sẽ thu thập dữ liệu cho các lượt quét Năng lượng thấp (LE) và lưu lượng truy cập mạng Bluetooth (chẳng hạn như RFCOMM và L2CAP) rồi liên kết các hoạt động này với ứng dụng khởi tạo. Các lượt quét Bluetooth được liên kết với ứng dụng đã khởi tạo lượt quét, nhưng các lượt quét hàng loạt thì không (và thay vào đó được liên kết với ứng dụng Bluetooth). Đối với một ứng dụng quét trong N mili giây, chi phí của quá trình quét là N mili giây thời gian rx và N mili giây thời gian tx; tất cả thời gian còn lại của bộ điều khiển được chỉ định cho lưu lượng truy cập mạng hoặc ứng dụng Bluetooth.