Bagaimana cara Android menghitung konsumsi baterai oleh aplikasi?


24

Bagaimana Android mengukur energi yang digunakan oleh komponen perangkat keras individu? Bagaimana Android mengukur energi yang digunakan oleh setiap proses individu?


Saya kira berapa banyak instruksi yang dilakukan dalam 1 detik.
AZ_

6
@Algo: Akan sangat menyesatkan untuk menganggap aplikasi latar belakang yang menggunakan banyak CPU lebih membutuhkan baterai daripada aplikasi lain yang menggunakan sedikit CPU tetapi banyak Wifi dan GPS dan tampilan.
Lie Ryan

Jika demikian maka Anda bisa mendapatkan petunjuk dari jumlah izin yang diperoleh aplikasi .. hanya sebuah ide.
AZ_

@ LieRyan dalam statistik baterai, bukankah wifi, gps, bluetooth, dll, dihitung sebagai "konsumen" baterai mereka sendiri?
Ryan Conrad

Jawaban:


11

Android melacak peristiwa yang memengaruhi penggunaan baterai dan menyimpan informasi ini dalam file batterystats.bin. Beberapa contoh:

  • layar lama aktif dengan pengaturan brithness tertentu
  • aplikasi mana (atau bukan proses aplikasi Android) dan berapa lama menahan kunci bangun (mencegah perangkat tidur)
  • Penggunaan CPU per proses (aplikasi Android atau proses lainnya)
  • kekuatan sinyal telepon
  • Penggunaan GPS
  • dll.

Android menghitung seberapa besar daya yang digunakan setiap Aplikasi atau komponen (misalnya layar) berdasarkan informasi konfigurasi yang disertakan pada perangkat oleh pabrikan.

Tidak semuanya diukur sehingga statistik kadang-kadang bisa menyesatkan, tetapi menjadi lebih baik dengan setiap rilis Platform Android.

Statistik baterai dapat dibuang dari perangkat menggunakan:

adb shell dumpsys batterystats

Berikut ini adalah fragmen yang menarik dari posting oleh Diane Hackborn dengan rincian lebih lanjut tentang konsumsi daya penguncian bangun:

Ada dua cara daya dari bangun kunci dihitung.

  1. Pada beberapa chipset, cukup memegang kunci penguncian perlu untuk mencegah CPU dari tidur nyenyak. Dalam penggunaan baterai yang dilaporkan, penggunaan daya ekstra ini akan didistribusikan di semua aplikasi yang memegang kunci bangun.

  2. Bahkan jika kunci penguncian itu sendiri tidak menyebabkan penggunaan daya, memegang kunci penguncian dalam satu aplikasi dapat memungkinkan aplikasi lain untuk menjalankan dan CPU ketika mereka tidak sebaliknya. (Misalnya, beberapa aplikasi mungkin memiliki loop {sleep (1); melakukan sesuatu;} yang tidak akan berjalan jika tidak ada kunci pengaktifan.) Untuk mengatasinya, setengah dari penggunaan CPU dari aplikasi didistribusikan untuk disalahkan. yang memegang kunci bangun.


dapatkah Anda memberikan sumber / referensi yang membuktikan jawaban Anda?
diimdeep

Semua informasi berasal dari tautan yang disediakan ke google + utas oleh pengembang Google yang akrab dengan bidang ini.
Paweł Nadolski

1
Perintah yang benar untuk perangkat baru (tidak yakin dari API mana) adalah: adb shell dumpsys batterystats, atau (jika Anda menginginkannya di dalam file): adb shell dumpsys batterystats> batterystats.txt
pengembang android
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.