Làm thế nào để Android tính toán mức tiêu thụ pin của các ứng dụng?


24

Làm thế nào để Android đo năng lượng được sử dụng bởi các thành phần phần cứng cá nhân? Làm thế nào để Android đo năng lượng được sử dụng bởi mỗi quá trình cá nhân?


Tôi đoán có bao nhiêu hướng dẫn được thực hiện trong 1 giây.
AZ_

6
@ Algo: Sẽ là hoàn toàn sai lầm khi cho rằng một ứng dụng chạy nền sử dụng nhiều CPU sẽ ngốn pin hơn so với một ứng dụng khác sử dụng ít CPU nhưng có nhiều Wifi và GPS và hiển thị.
Lie Ryan

Nếu vậy thì bạn có thể nhận được gợi ý từ số lượng quyền mà ứng dụng có được .. chỉ là một ý tưởng.
AZ_

@LieRyan trong các số liệu thống kê về pin, không phải là wifi, gps, bluetooth, v.v., được tính là "người tiêu dùng" pin của riêng họ?
Ryan Conrad

Câu trả lời:


11

Android theo dõi các sự kiện ảnh hưởng đến việc sử dụng pin và lưu trữ thông tin này trong tệp batterystats.bin. Vài ví dụ:

  • Độ dài của màn hình thời gian được bật với cài đặt độ cứng cụ thể
  • ứng dụng nào (hoặc không xử lý ứng dụng Android) và thời gian giữ khóa thức (kéo thiết bị ngủ) trong bao lâu
  • Sử dụng CPU trên mỗi quy trình (ứng dụng Android hoặc quy trình khác)
  • cường độ tín hiệu điện thoại
  • Sử dụng GPS
  • v.v.

Android tính toán mỗi ứng dụng hoặc thành phần (ví dụ màn hình) sử dụng bao nhiêu năng lượng dựa trên thông tin cấu hình có trên thiết bị của nhà sản xuất.

Không phải mọi thứ đều được đo lường nên các số liệu thống kê đôi khi có thể gây hiểu nhầm, nhưng nó sẽ trở nên tốt hơn với mỗi bản phát hành Nền tảng Android.

Số liệu thống kê pin có thể được đổ từ thiết bị bằng cách sử dụng:

adb shell dumpsys batterystats

Dưới đây là đoạn thú vị của một bài đăng của Diane Hackborn với nhiều chi tiết hơn về mức tiêu thụ năng lượng của Wake lock:

Có hai cách điện từ khóa đánh thức được tính toán.

  1. Trên một số chipset, chỉ cần giữ khóa đánh thức là cần thiết để ngăn CPU đi vào giấc ngủ sâu. Trong việc sử dụng pin được báo cáo, việc sử dụng năng lượng bổ sung này sẽ được phân phối trên tất cả các ứng dụng giữ khóa đánh thức.

  2. Ngay cả khi bản thân khóa thức không gây ra sử dụng năng lượng, việc giữ khóa đánh thức trong một ứng dụng có thể cho phép các ứng dụng khác chạy và CPU khi chúng không hoạt động. (Ví dụ: một số ứng dụng có thể có vòng lặp {ngủ (1); làm gì đó;} sẽ không chạy nếu không có khóa đánh thức nào được giữ.) những người giữ khóa đánh thức.


bạn có thể cung cấp nguồn / tài liệu tham khảo chứng minh câu trả lời của bạn?
diimdeep

Tất cả thông tin là từ liên kết được cung cấp đến google + thread bởi nhà phát triển Google quen thuộc với khu vực này.
Paweł Nadolski

1
Lệnh chính xác cho các thiết bị mới (không chắc chắn từ API nào) nên là: adb shell dumpsys batterystats hoặc (trong trường hợp bạn muốn nó trong một tệp): adb shell dumpsys batterystats> batterystats.txt
nhà phát triển Android
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.