Nhà sản xuất thiết bị phải cung cấp hồ sơ nguồn điệ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ơ năng lượng, hãy sử dụng phần cứng đo lường mức năng lượng mà thiết bị đang sử dụng và thực hiện nhiều thao tác cần có thông tin. Đo lường mức sử dụng điện trong các hoạt động đó và tính toán các giá trị (lấy ra sự khác biệt so với các cách sử dụng nguồn cơ sở khác khi phù hợp).
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 giá trị hồ sơ năng lượng được cung cấp theo cường độ dòng điện (ampe). Khung Android nhân dòng điện với thời gian hoạt động của hệ thống con và tính toán giá trị mAh, sau đó dùng để ước tính lượng pin mà ứng dụng hoặc hệ thống con tiêu hao.
Thiết bị có bộ điều khiển Bluetooth, modem và Wi-Fi chạy Android 7.0 và có thể cung cấp thêm giá trị công suất thu được từ dữ liệu bộ vi mạch.
Thiết bị có CPU không đồng nhất
Hồ sơ năng lượng của các thiết bị có lõi CPU có kiến trúc không đồng nhất phải bao gồm các trường bổ sung sau:
- Tổng số CPU cho mỗi cụm (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 CPU hiện tại cho mỗi cụm.
Để phân biệt giữa mức tiêu thụ điện năng 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ố cụm được chỉ định theo thứ tự lõi CPU trong cây thiết bị hạt nhân. Để ví dụ, trong một kiến trúc không đồng nhất có hai (2) cụm có bốn (4) lõi:
- cluster0 bao gồm cpu0-3
- cụm 1 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ị nguồn 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 bổ sung được sử dụng khi màn hình ở chế độ nghỉ/môi trường xung quanh/luôn bật thay vì tắt. | khoảng 100 mA | - |
screen.on | Nguồn điện bổ sung được sử 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, chứ không phải độ sáng tối thiểu của Android thường là 10 hoặc 20%. |
screen.full | Nguồn điện bổ sung được sử 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. |
Wi-Fi đang bật | Điện năng bổ sung được sử dụng 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 sử dụng khi truyền hoặc nhận qua Wi-Fi. | 31 mA | - |
wifi.quét | Nguồn điện bổ sung được sử dụng khi Wi-Fi đang quét tìm điểm truy cập. | 100 mA | - |
âm thanh | Năng lượng bổ sung được sử dụng khi giải mã/mã hoá âm thanh qua DSP. | khoảng 10 mA | Dùng cho âm thanh DSP. |
video | Nguồn điện bổ sung được sử dụng khi giải mã video qua DSP. | khoảng 50 mA | Dùng cho video DSP. |
camera.trung bình | Mức sử dụng pin trung bình mà hệ thống phụ của máy ảnh sử dụng cho một máy ảnh thông thường . | 600 mA | Dành cho nhu cầu ướ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 máy ảnh sử dụng khi bật. | 200 mA | - |
gps.signalqualitybased | Nguồn điện bổ sung mà GPS sử dụng dựa trên cường độ tín hiệu. Đây là mục nhập nhiều giá trị, một giá trị cho mỗi cường độ tín hiệu, từ yếu nhất đến mạnh nhất. | 30 mA, 10 mA | - |
gps.on | Nguồn điện bổ sung được sử dụng khi GPS đang thu tín hiệu. | 50 mA | - |
radio.active | Nguồn điện bổ sung được sử dụng khi truyền/nhận sóng vô tuyến di động. | 100 mA – 300 mA | - |
radio.scanning | Năng lượng bổ sung được sử dụng khi sóng di động được phân trang cho tháp. | 1,2 mA | - |
radio.on | Nguồn điện bổ sung được sử dụng khi đài phát thanh di động đang bật. Đây là mục nhập nhiều giá trị, một giá trị cho mỗi 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 tăng cường công suất khi tìm kiếm tháp di động và không phát hiện thấy tín hiệu. Các giá trị có thể giữ nguyên hoặc giảm xuống khi tín hiệu tăng dần sức mạnh. Nếu bạn chỉ cung cấp một giá trị, thì cùng một giá trị sẽ được sử 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 được dùng cho trường hợp không có tín hiệu, giá trị thứ hai được dùng cho tất cả các cường độ khác, v.v. |
bluetooth.controller.idle | Dòng điện trung bình (mA) của tay điều khiển Bluetooth khi ở trạng thái rảnh. | - | Các giá trị này không được ướ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 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 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ị năng lượng Bluetooth cho bluetooth.active (dùng khi phát âm thanh qua Bluetooth A2DP) và bluetooth.on (dùng khi Bluetooth đang bật nhưng không hoạt động). |
bluetooth.controller.rx | Mức vẽ hiện tại trung bình (mA) của bộ điều khiển Bluetooth khi nhận. | - | |
bluetooth.controller.tx | Dòng điện tiêu thụ trung bình (mA) của bộ điều khiển Bluetooth khi truyền. | - | |
bluetooth.controller.voltage | Điện áp hoạt động trung bình (mV) của bộ điều khiển Bluetooth. | - | |
modem.điều khiển.ngủ | Dòng điện tiêu thụ trung bình (mA) của bộ điều khiển modem khi ở trạng thái ngủ. | 0 mA | Các giá trị này không được ướ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 trung bình của các trạng thái đó. Nếu có nhiều trạng thái truyền, thì bạn có thể chỉ định giá trị cho từng trạng thái truyền kể từ Android 9. |
modem.controller.idle | Dòng điện trung bình (mA) của bộ điều khiển modem khi ở trạng thái rảnh. | - | |
modem.controller.rx | Dòng đ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 ở nhiều mức công suất RF. Đây là mục nhập nhiều giá trị, mỗi cấp độ công suất truyền có một giá trị. | 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.điều khiển.idle | Dòng đ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 được ướ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 trung bình của các trạng thái đó. |
wifi.controller.rx | Dòng điện trung bình (mA) của bộ điều khiển Wi-Fi khi nhận. | - | |
wifi.điều khiển.tx | Dòng điện trung bình (mA) của bộ điều khiển Wi-Fi khi truyền. | - | |
wifi.điều khiển.điện áp | Đ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 nhiều giá trị liệt kê mỗi tốc độ CPU có thể có theo KHz. | 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz | Số lượng và thứ tự của các mục phải tương ứng với các mục nhập 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 | Nguồn điện bổ sung được sử dụng khi CPU đang ở trạng thái rảnh trong lịch biểu (vòng lặp rảnh của hạt 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ể có nhiều trạng thái rảnh đang sử dụng với mức tiêu thụ điện năng khác nhau; hãy chọn một trạng thái rảnh đại diện cho các khoảng thời gian dài hơn mà trình lập lịch biểu ở trạng thái rảnh (vài mili giây). Kiểm tra biểu đồ năng lượng đang bật thiết bị đo lường của bạn và chọn các mẫu có CPU ở mức thấp nhất mức tiêu thụ, loại bỏ các mẫu cao hơn khi CPU thoát khỏi trạng thái rảnh. |
cpu.active | Nguồn điện 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ị biểu thị mức năng lượng mà đường dẫn CPU sử dụng khi chạy ở nhiều mức tốc độ. Đặt tốc độ tối đa trong nhân ở từng tốc độ và chốt cho phép 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õi trong mỗi cụm CPU. | 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 nhập và thứ tự phải khớp với số lượng mục nhập cụm cho cpu.active và cpu.speeds. Mục nhập đầu tiên biểu thị số lõi CPU trong cụm 0, mục thứ hai thể hiện số lượng lõi Các lõi CPU trong cụm 1, v.v. |
battery.capacity | Tổng dung lượng pin tính bằng mAh. | 3000 mAh | - |
Quét Bluetooth và Bluetooth năng lượng thấp (LE)
Đối với các thiết bị chạy Android 7.0, hệ thống thu thập dữ liệu về Năng lượng thấp (LE) quét và lưu lượng truy cập mạng Bluetooth (chẳng hạn như RFCOMM và L2CAP) và các liên kết các hoạt động này với ứng dụng khởi tạo. Có liên kết với quá trình quét tìm Bluetooth với ứng dụng đã bắt đầu quá trình quét, nhưng quét hàng loạt thì không (và đượ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í 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.