Hồ sơ năng lượng cho Android

Thông tin về mức sử dụng pin được lấy từ số liệu thống kê về mức sử dụng pin và các giá trị trong hồ sơ năng lượng.

Số liệu thống kê về mức sử dụng pin

Khung này tự động xác định số liệu thống kê về mức sử dụng pin bằng cách theo dõi thời gian các thành phần của thiết bị ở trong các trạng thái khác nhau. Khi các thành phần (chipset Wi-Fi, bộ thu phát di động, Bluetooth, GPS, màn hình, CPU) thay đổi trạng thái (TẮT/BẬT, rảnh/đầy năng lượng, độ sáng thấp/cao, v.v.), dịch vụ kiểm soát sẽ báo cáo cho dịch vụ BatteryStats của khung. BatteryStats thu thập thông tin theo thời gian và lưu trữ thông tin đó để sử dụng trong các lần khởi động lại. Dịch vụ này không theo dõi trực tiếp mức tiêu thụ pin hiện tại, mà thu thập thông tin về thời gian có thể dùng để ước tính mức tiêu thụ pin của các thành phần khác nhau.

Khung này thu thập số liệu thống kê bằng các phương thức sau:

  • Thông báo đẩy. Các dịch vụ nhận biết được những thay đổi về thành phần sẽ đẩy các thay đổi về trạng thái đến dịch vụ BatteryStats.
  • Cơ chế kéo. Đối với các thành phần như mức sử dụng CPU của ứng dụng, khung này sẽ tự động kéo dữ liệu tại các điểm chuyển đổi (chẳng hạn như bắt đầu hoặc dừng một hoạt động) để chụp nhanh.

Mức tiêu thụ tài nguyên được liên kết với ứng dụng sử dụng tài nguyên đó. Khi nhiều ứng dụng đồng thời sử dụng một tài nguyên (chẳng hạn như wakelock ngăn hệ thống tạm ngưng), khung này sẽ phân bổ mức tiêu thụ cho các ứng dụng đó, mặc dù không nhất thiết phải phân bổ bằng nhau.

Để tránh mất số liệu thống kê về mức sử dụng cho một sự kiện tắt máy (có thể cho biết các vấn đề về mức tiêu thụ pin, tức là tắt máy do pin đạt đến mức dung lượng còn lại bằng 0), khung này sẽ ghi nhanh số liệu thống kê khoảng 30 phút một lần.

Số liệu thống kê về mức sử dụng pin được xử lý hoàn toàn bởi khung này và không yêu cầu sửa đổi OEM.

Các giá trị trong hồ sơ năng lượng

Thận trọng: Nhà sản xuất thiết bị phải cung cấp hồ sơ năng lượng của thành phần để xác định giá trị tiêu thụ hiện tại cho thành phần và mức tiêu hao pin gần đúng do thành phần đó gây ra theo thời gian. Hồ sơ này được xác định trong platform/frameworks/base/core/res/res/xml/power_profile.xml. Để được hướng dẫn về các chế độ cài đặt này, hãy xem bài viết Giá trị năng lượng.

Trong hồ sơ năng lượng, mức tiêu thụ năng lượng được chỉ định bằng miliampe (mA) của mức tiêu thụ hiện tại ở điện áp danh định và có thể là giá trị phân số được chỉ định bằng microampe (uA). Giá trị này phải là mA tiêu thụ ở pin chứ không phải giá trị áp dụng cho đường ray điện không tương ứng với dòng điện tiêu thụ từ pin.

Ví dụ: hồ sơ năng lượng của màn hình chỉ định mA dòng điện cần thiết để bật màn hình ở độ sáng tối thiểu và độ sáng tối đa. Để xác định chi phí năng lượng (tức là pin bị tiêu hao bởi thành phần màn hình) khi bật màn hình, khung này sẽ theo dõi thời gian ở mỗi mức độ sáng, sau đó nhân các khoảng thời gian đó với chi phí độ sáng màn hình được nội suy.

Khung này cũng nhân thời gian CPU cho mỗi ứng dụng với mA cần thiết để chạy CPU ở một tốc độ cụ thể. Phép tính này thiết lập thứ hạng so sánh về mức tiêu thụ pin của một ứng dụng bằng cách thực thi mã CPU (thời gian là ứng dụng trên nền trước và tổng thời gian bao gồm cả hoạt động ở nền sau được báo cáo riêng).