Viewing Battery Use Data
Viewing Battery Use Data
The dumpsys batterystats
command generates interesting statistical data about battery usage on a device, organized by unique user ID (UID). The statistics include the following:
- History of battery-related events
- Global statistics for the device
- Approximate power use per UID and system component
- Per-app mobile milliseconds per packet
- System UID aggregated statistics
- App UID aggregated statistics
Use the Battery Historian tool on the output of the dumpsys command to generate an HTML visualization of power-related events from the logs. This information makes it easier to understand and diagnose battery-related issues.
Command input
The basic batterystats
command is:
$ adb shell dumpsys batterystats
Supported options:
--help
displays additional options for tailoring the output.--checkin
exports results in machine-readable csv format.
For example, to print battery usage statistics in csv format for all apps since the device was last charged, run the command:
$ adb shell dumpsys batterystats --charged --checkin
You can also specify a package name to get statistics for a single app. For example, to print battery usage statistics for a given app package since the device was last charged, run the command:
$ adb shell dumpsys batterystats --charged <package-name>
Command output
The batterystats
command generates aggregated observations about battery use on the device since it was last charged. Observations may be per-UID or system-level; data is selected for inclusion based on its usefulness in analyzing battery performance. Output includes one (1) entry per observation, and each entry consists of a comma-separated list of values in the format: int,uid,mode,section,fields (one or more).
The first four values correspond to the following:
- Dummy integer
- UID
- Aggregation mode
- "i" for information not tied to charged/uncharged status.
- "l" for --charged (usage since last charge).
- "u" for --unplugged (usage since last unplugged). Deprecated in Android 5.1.1.
- Section identifier, which determines how to interpret subsequent values in the line.
Sample output:
9,0,i,vers,11,116,K,L 9,0,i,uid,1000,android 9,0,i,uid,1000,com.android.providers.settings 9,0,i,uid,1000,com.android.inputdevices 9,0,i,uid,1000,com.android.server.telecom 9,0,i,uid,1000,com.android.keychain 9,0,i,uid,1000,com.android.settings 9,0,i,uid,1000,com.android.location.fused 9,0,i,uid,1001,com.android.providers.telephony 9,0,i,uid,1001,com.android.mms.service 9,0,i,uid,1001,com.android.stk 9,0,i,uid,1001,com.android.phone 9,0,i,uid,1027,com.android.nfc 9,0,i,uid,2000,com.android.shell 9,0,i,uid,10002,com.android.providers.calendar 9,0,i,uid,10003,com.android.cellbroadcastreceiver 9,0,i,uid,10004,com.android.providers.userdictionary 9,0,i,uid,10004,com.android.providers.contacts 9,0,i,uid,10005,com.google.android.apps.enterprise.dmagent 9,0,i,uid,10006,com.android.defcontainer 9,0,i,uid,10007,com.android.providers.media 9,0,i,uid,10007,com.android.providers.downloads 9,0,i,uid,10007,com.android.providers.downloads.ui 9,0,i,uid,10008,com.android.externalstorage 9,0,i,uid,10009,com.google.android.syncadapters.contacts 9,0,i,uid,10009,com.google.android.gms 9,0,i,uid,10009,com.google.android.gsf 9,0,i,uid,10009,com.google.android.gsf.login 9,0,i,uid,10009,com.google.android.backuptransport 9,0,i,uid,10011,com.google.android.dialer 9,0,i,uid,10013,com.google.android.onetimeinitializer 9,0,i,uid,10014,com.google.android.partnersetup 9,0,i,uid,10015,com.android.launcher 9,0,i,uid,10016,com.android.managedprovisioning 9,0,i,uid,10017,com.android.mms 9,0,i,uid,10018,com.android.musicfx 9,0,i,uid,10019,com.android.vending 9,0,i,uid,10022,com.android.sharedstoragebackup 9,0,i,uid,10023,com.android.systemui 9,0,i,uid,10025,com.google.android.googlequicksearchbox 9,0,i,uid,10027,com.google.android.apps.walletnfcrel 9,0,i,uid,10029,com.google.android.marvin.talkback 9,0,i,uid,10031,com.google.android.apps.books 9,0,i,uid,10034,com.google.android.calendar 9,0,i,uid,10037,com.android.chrome 9,0,i,uid,10039,com.google.android.configupdater 9,0,i,uid,10040,com.google.android.deskclock 9,0,i,uid,10041,com.android.documentsui 9,0,i,uid,10042,com.google.android.apps.docs 9,0,i,uid,10047,com.google.android.ears 9,0,i,uid,10054,com.google.android.talk 9,0,i,uid,10057,com.google.android.inputmethod.latin 9,0,i,uid,10061,com.google.android.music 9,0,i,uid,10064,com.android.packageinstaller 9,0,i,uid,10068,com.google.android.apps.plus 9,0,i,uid,10069,com.google.android.gm 9,0,i,uid,10070,com.google.android.keep 9,0,i,uid,10071,com.google.android.apps.genie.geniewidget 9,0,i,uid,10072,com.android.printspooler 9,0,i,uid,10076,com.google.android.videos 9,0,i,uid,10079,com.google.android.youtube 9,0,i,uid,10084,com.google.android.apps.magazines 9,0,i,dsd,1820451,97,s-,p- 9,0,i,dsd,3517481,98,s-,p- 9,0,l,bt,0,8548446,1000983,8566645,1019182,1418672206045,8541652,994188 9,0,l,gn,0,0,666932,495312,0,0,2104,1444 9,0,l,m,6794,0,8548446,8548446,0,0,0,666932,495312,0,697728,0,0,0,5797,0,0 9,0,l,br,9,0,6785,0,0 9,0,l,sgt,8548446,0,0,0,0 9,0,l,sst,9000 9,0,l,sgc,0,0,0,0,0 9,0,l,dct,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,0,l,dcc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,0,l,wst,0,0,0,0,0,0,0,0 9,0,l,wsc,0,0,0,0,0,0,0,0 9,0,l,wsst,0,0,0,0,0,0,0,52,0,0,8548394,0,0 9,0,l,wssc,0,0,0,0,0,0,0,2,0,0,2,0,0 9,0,l,wsgt,0,0,0,3016,8545430 9,0,l,wsgc,0,0,0,2,1 9,0,l,bst,0,0,0,0 9,0,l,bsc,0,0,0,0 9,0,l,dc,2,3,0,3 9,0,l,kwl,msm_ipc_read00000001:00000001,0,0 9,0,l,kwl,rpm_regulator_tcxo,0,0 9,0,l,kwl,wlan,25423,32 9,0,l,kwl,event4-648,0,0 9,0,l,kwl,qcril,187,2 9,0,l,kwl,ssr(dsps),0,0 9,0,l,kwl,bq51051b_wireless_chip,0,0 9,0,l,kwl,qmi0,0,0 9,0,l,kwl,event5-648,7755,1231 9,0,l,kwl,PowerManagerService.WakeLocks,680435,3908 9,0,l,kwl,msm_hsic_host,66258,35 9,0,l,kwl,qcom_sap_wakelock,0,0 9,0,l,kwl,sns_async_ev_wakelock,91954,1244 9,0,l,kwl,qmuxd_port_wl_12,0,0 9,0,l,kwl,pil-wcnss,0,0 9,0,l,kwl,event0-648,11364,1212 9,0,l,kwl,dofstrim,0,0 9,0,l,kwl,ssr(lpass),0,0 9,0,l,kwl,qmuxd_port_wl_11,0,0 9,0,l,kwl,event2-648,0,0 9,0,l,kwl,pil-vidc,0,0 9,0,l,kwl,mmc0,0,0 9,0,l,kwl,tabla_gpio_irq_resend,0,0 9,0,l,kwl,pil-q6,0,0 9,0,l,kwl,radio-interface,0,0 9,0,l,kwl,msm_ipc_read00000001:00000002,0,0 9,0,l,kwl,event3-648,8143,1231 9,0,l,kwl,ssr(wcnss),0,0 9,0,l,kwl,ssr(gss),0,0 9,0,l,kwl,KeyEvents,98,1263 9,0,l,kwl,unknown_wakeups,0,0 9,0,l,kwl,qmuxd_port_wl_10,0,0 9,0,l,kwl,pil-gss,0,0 9,0,l,kwl,qcom_rx_wakelock,161828,3205 9,0,l,kwl,ssr(external_modem),0,0 9,0,l,kwl,power-supply,228,23 9,0,l,kwl,pil-dsps,0,0 9,0,l,kwl,wcnss,0,0 9,0,l,kwl,msm_otg,0,0 9,0,l,kwl,pm8921_eoc,0,0 9,0,l,kwl,slimport_wake_lock,0,0 9,0,l,kwl,smsm_snapshot,0,0 9,0,l,kwl,suspend_backoff,239760,24 9,0,l,kwl,event1-648,9331,1212 9,0,l,kwl,main,429,0 9,0,l,kwl,alarm,2892,270 9,0,l,kwl,PowerManagerService.Display,432,1 9,0,l,kwl,qmi1,0,0 9,0,l,kwl,kickstart,211,1 9,0,l,kwl,qmuxd_port_wl_9,9,102 9,0,l,kwl,ear_hook,0,0 9,0,l,kwl,mmc0_detect,52,1232 9,0,l,kwl,deleted_wake_locks,0,0 9,0,l,kwl,PowerManagerService.Broadcasts,7331,0 9,0,l,kwl,qmi2,0,0 9,0,l,kwl,smd_sns_dsps,456,1340 9,0,l,kwl,alarm_rtc,36084,122 9,0,l,pws,2100,64.4,42.0,63.0 9,10009,l,pwi,uid,20.6 9,0,l,pwi,cell,18.5 9,0,l,pwi,idle,8.73 9,0,l,pwi,uid,5.46 9,1000,l,pwi,uid,5.11 9,0,l,pwi,wifi,3.28 9,10019,l,pwi,uid,0.847 9,10069,l,pwi,uid,0.408 9,0,l,pwi,scrn,0.385 9,10034,l,pwi,uid,0.322 9,10025,l,pwi,uid,0.185 9,0,l,pwi,blue,0.0273 9,0,l,pwi,cell,14.0 9,10002,l,pwi,uid,0.180 9,10023,l,pwi,uid,0.168 9,1001,l,pwi,uid,0.0297 9,10068,l,pwi,uid,0.0296 9,10057,l,pwi,uid,0.0234 9,1027,l,pwi,uid,0.0157 9,10079,l,pwi,uid,0.00905 9,10054,l,pwi,uid,0.00527 9,10005,l,pwi,uid,0.00341 9,10004,l,pwi,uid,0.00204 9,2000,l,pwi,uid,0.00192 9,10070,l,pwi,uid,0.00144 9,10061,l,pwi,uid,0.000860 9,10014,l,pwi,uid,0.000495 9,10040,l,pwi,uid,0.000286 9,1014,l,pwi,uid,0.00000157 9,0,l,pwi,over,1.36 9,0,l,nt,0,0,127699,11159,0,0,975,163,0,0 9,0,l,pr,file-storage,0,140,0,0,0,0 9,0,l,pr,TX_Thread,0,440,0,0,0,0 9,0,l,pr,flush-179:0,0,850,0,0,0,0 9,0,l,pr,sync_supers,10,0,0,0,0,0 9,0,l,pr,dhcpcd,0,30,0,0,0,0 9,0,l,pr,kauditd,50,10,0,0,0,0 9,0,l,pr,sdcard,20,110,0,0,0,0 9,0,l,pr,flush-0:18,40,100,0,0,0,0 9,0,l,pr,zygote,250,90,0,0,0,0 9,0,l,pr,bdi-default,0,610,0,0,0,0 9,0,l,pr,ueventd,940,2630,0,0,0,0 9,0,l,pr,kswapd0,0,180,0,0,0,0 9,0,l,pr,debuggerd,180,610,0,0,0,0 9,0,l,pr,jbd2/mmcblk0p20,0,50,0,0,0,0 9,0,l,pr,jbd2/mmcblk0p21,0,250,0,0,0,0 9,0,l,pr,jbd2/mmcblk0p22,0,90,0,0,0,0 9,0,l,pr,jbd2/mmcblk0p23,0,1150,0,0,0,0 9,0,l,pr,MC_Thread,0,1270,0,0,0,0 9,0,l,pr,adbd,10,40,0,0,0,0 9,0,l,pr,lmkd,360,990,0,0,0,0 9,0,l,pr,logd,1550,1670,0,0,0,0 9,0,l,pr,netd,80,330,0,0,0,0 9,0,l,pr,rild,160,0,0,0,0,0 9,0,l,pr,vold,50,100,0,0,0,0 9,0,l,pr,/init,0,70,0,0,0,0 9,0,l,pr,mpdecision,1400,7820,0,0,0,0 9,0,l,pr,khubd,0,10,0,0,0,0 9,0,l,pr,kthreadd,0,600,0,0,0,0 9,0,l,pr,kworker/0:0,0,3520,0,0,0,0 9,0,l,pr,sensors.qcom,380,720,0,0,0,0 9,0,l,pr,healthd,20,190,0,0,0,0 9,0,l,pr,thermald,60,360,0,0,0,0 9,0,l,pr,mmcqd/0,0,8700,0,0,0,0 9,0,l,pr,qseecomd,0,90,0,0,0,0 9,0,l,pr,ksoftirqd/0,0,420,0,0,0,0 9,0,l,pr,wpa_supplicant,170,160,0,0,0,0 9,0,l,pr,migration/0,0,1630,0,0,0,0 9,0,l,pr,migration/1,20,0,0,0,0,0 9,0,l,pr,RX_Thread,0,790,0,0,0,0 9,0,l,pr,netmgrd,40,20,0,0,0,0 9,1000,l,nt,0,0,11054,11216,0,0,26,29,0,0 9,1000,l,ua,2,0,0 9,1000,l,sr,5,6813,1 9,1000,l,wl,*alarm*,0,f,0,23856,p,151,0,w,0 9,1000,l,st,8548446,8548446,8548446 9,1000,l,pr,system,83310,35060,0,0,0,0 9,1000,l,pr,surfaceflinger,6620,9330,0,0,0,0 9,1000,l,pr,ks,0,60,0,0,0,0 9,1000,l,pr,qcks,0,90,0,0,0,0 9,1000,l,pr,efsks,0,50,0,0,0,0 9,1000,l,pr,com.android.server.telecom,110,100,0,0,0,0 9,1000,l,pr,servicemanager,40,110,0,0,0,0 9,1001,l,st,8548446,8548446,8548446 9,1001,l,pr,qmuxd,0,30,0,0,0,0 9,1001,l,pr,com.android.phone,450,300,0,0,0,0 9,1014,l,nt,0,0,3410,3370,0,0,10,10,0,0 9,1027,l,st,8548446,8548446,8548446 9,1027,l,pr,com.android.nfc,250,160,0,0,0,0 9,10002,l,apk,15,com.android.providers.calendar,com.android.providers.calendar.CalendarProviderIntentService,2383,15,15 9,10005,l,nt,0,0,1241,2488,0,0,6,10,0,0 9,10009,l,nt,0,0,232255,258511,0,0,472,600,0,0 9,10009,l,wfl,7689000,9814000,0 9,10009,l,jb,com.google.android.gms/.gcm.nts.TaskExecutionService,81,3 9,10009,l,sr,0,43643,46 9,10025,l,nt,0,0,152461,42850,0,0,267,243,0,0 9,10025,l,wfl,1593000,629000,0 9,10034,l,nt,0,0,77657,40093,0,0,172,170,0,0 9,10068,l,nt,0,0,11929,8383,0,0,50,47,0,0 9,10069,l,nt,0,0,41553,22886,0,0,85,91,0,0
Section identifiers
Command output for batterystats
supports the following sections:
Section Identifier | Description | Remaining Fields |
---|---|---|
vers |
Version |
checkin version, parcel version, start platform version, end platform version |
uid |
UID |
uid, package name |
apk |
APK |
wakeups, APK, service, start time, starts, launches |
pr |
Process |
process, user, system, foreground, starts |
sr |
Sensor |
sensor number, time, count |
vib |
Vibrator |
time, count |
fg |
Foreground |
time, count |
st |
State Time |
foreground, active, running |
wl |
Wake lock |
wake lock, full time, 'f', full count, partial time, 'p', partial count, window time, 'w', window count |
sy |
Sync |
sync, time, count |
jb |
Job |
job, time, count |
kwl |
Kernel Wake Lock |
kernel wake lock, time, count |
wr |
Wakeup Reason |
wakeup reason, time, count |
nt |
Network |
mobile bytes RX, mobile bytes TX, Wi-Fi bytes RX, Wi-Fi bytes TX, mobile packets RX, mobile packets TX, Wi-Fi packets RX, Wi-Fi packets TX, mobile active time, mobile active count |
ua |
User Activity |
other, button, touch |
bt |
Battery |
start count, battery realtime, battery uptime, total realtime, total uptime, start clock time, battery screen off realtime, battery screen off uptime |
dc |
Battery Discharge |
low, high, screen on, screen off |
lv |
Battery Level |
start level, current level |
wfl |
Wi-Fi |
full Wi-Fi lock on time, Wi-Fi scan time, Wi-Fi running time, Wi-Fi scan count, Wi-Fi idle time, Wi-Fi receive time, Wi-Fi transmit time |
gwfl |
Global Wi-Fi |
Wi-Fi on time, Wi-Fi running time, Wi-Fi idle time, Wi-Fi receive time, Wi-Fi transmit time, Wi-Fi power (mAh) |
gble |
Global Bluetooth |
BT idle time, BT receive time, BT transmit time, BT power (mAh) |
m |
Misc |
screen on time, phone on time, full wakelock time total, partial wakelock time total, mobile radio active time, mobile radio active adjusted time, interactive time, power save mode enabled time, connectivity changes, device idle mode enabled time, device idle mode enabled count, device idling time, device idling count, mobile radio active count, mobile radio active unknown time |
gn |
Global Network |
mobile RX total bytes, mobile TX total bytes, Wi-Fi RX total bytes, Wi-Fi TX total bytes, mobile RX total packets, mobile TX total packets, Wi-Fi RX total packets, Wi-Fi TX total packets |
br |
Screen Brightness |
dark, dim, medium, light, bright |
sst |
Signal Scanning Time |
signal scanning time |
sgt |
Signal Strength Time |
none, poor, moderate, good, great |
sgc |
Signal Strength Count |
none, poor, moderate, good, great |
dct |
Data Connection Time |
none, GPRS, EDGE, UMTS, CDMA, EVDO_0, EVDO_A, 1xRTT, HSDPA, HSUPA, HSPA, IDEN, EVDO_B, LTE, EHRPD, HSPAP, other |
dcc |
Data Connection Count |
none, GPRS, EDGE, UMTS, CDMA, EVDO_0, EVDO_A, 1xRTT, HSDPA, HSUPA, HSPA, IDEN, EVDO_B, LTE, EHRPD, HSPAP, other |
wst |
Wi-Fi State Time |
off, off scanning, on no networks, on disconnected, on connected STA, on connected P2P, on connected STA P2P, soft AP |
wsc |
Wi-Fi State Count |
off, off scanning, on no networks, on disconnected, on connected STA, on connected P2P, on connected STA P2P, soft AP |
wsst |
Wi-Fi Supplicant State Time |
invalid, disconnected, interface disabled, inactive, scanning, authenticating, associating, associated, four-way handshake, group handshake, completed, dormant, uninitialized |
wssc |
Wi-Fi Supplicant State Count |
invalid, disconnected, interface disabled, inactive, scanning, authenticating, associating, associated, four-way handshake, group handshake, completed, dormant, uninitialized |
wsgt |
Wi-Fi Signal Strength Time |
none, poor, moderate, good, great |
wsgc |
Wi-Fi Signal Strength Count |
none, poor, moderate, good, great |
bst |
Bluetooth State Time |
inactive, low, med, high |
bsc |
Bluetooth State Count |
inactive, low, med, high |
pws |
Power Use Summary |
battery capacity, computed power, minimum drained power, maximum drained power |
pwi |
Power Use Item |
label, mAh |
dsd |
Discharge Step |
duration, level, screen, power-save |
csd |
Charge Step |
duration, level, screen, power-save |
dtr |
Discharge Time Remaining |
battery time remaining |
ctr |
Charge Time Remaining |
charge time remaining |
Bluetooth, cellular, and Wi-Fi usage
Support for battery usage data on Bluetooth, cellular, and Wi-Fi data requires the device Bluetooth, cellular, and Wif-Fi chipsets implement radio support and the chipset firmware passes usage data to the framework. OEMs must work with their chipset providers to facilitate in-field firmware updates on existing chipsets and compatible firmware on new chipsets.
Additionally, OEMs must continue to configure and submit the power profile for their devices. However, when the platform detects that Wi-Fi and Bluetooth radio power data is available from the chipset, it uses chipset data instead of power profile data (cell radio power data is not yet used). For details, see Devices with Bluetooth and Wi-Fi controllers.
Note: Prior to Android 6.0, power use for Wi-Fi radio, Bluetooth radio, and cellular radio was tracked in the m (Misc) section category. In Android 6.0 and higher, power use for these components is tracked in the pwi (Power Use Item) section with individual labels (wifi, blue, cell) for each component.
本文来自博客园,作者:摩斯电码,未经同意,禁止转载