Battery historian cannot find end time android

匿名 (未验证) 提交于 2019-12-03 02:27:02

问题:

I'm trying to use Battery Historian Python script from GitHub to analyze battery usage, but the html generated each time I use the script shows "cannot find end time".

I'm following the steps form here.

Here is a sample batterystats.txt file generated:

Battery History:           -2m43s770ms 100 44020302 status=not-charging health=good plug=none temp=270 volt=4339 +wifi +wifi_running +wake_lock brightness=medium phone_state=off           -2m43s151ms 100 44020302           -2m38s500ms 100 04020302 -wake_lock           -2m20s496ms 100 44020302 +wake_lock           -2m17s471ms 100 04020302 -wake_lock           -2m13s741ms 100 04020302 temp=280           -1m59s447ms 100 44020302 +wake_lock           -1m56s423ms 100 04020302 -wake_lock             -43s740ms 100 04020302 volt=4317             -21s432ms 100 040a0302 status=full plug=usb volt=4312 +plugged  Per-PID Stats:   PID 140 wake time: +1s55ms   PID 601 wake time: +1s236ms   PID 140 wake time: +13s381ms   PID 601 wake time: +29ms   PID 812 wake time: +555ms   PID 939 wake time: +18ms   PID 1241 wake time: +51ms   PID 601 wake time: +1ms   PID 1294 wake time: +3ms   PID 601 wake time: +32ms   PID 601 wake time: +7ms   PID 1689 wake time: +103ms  Statistics since last charge:   System starts: 0, currently on battery: false   Time on battery: 2m 22s 369ms (0.0%) realtime, 2m 22s 369ms (0.0%) uptime   Total run time: 21d 4h 47m 25s 154ms realtime, 3d 2h 25m 30s 738ms uptime,    Screen on: 0ms (0.0%), Input events: 0, Active phone call: 0ms (0.0%)   Screen brightnesses: No activity   Mobile total received: 0B, Total sent: 0B   Wi-Fi total received: 249.09KB, Total sent: 18.02KB   Total full wakelock time: 2m 22s 191ms , Total partial wakelock time: 9s 697ms    Signal levels: No activity   Signal scanning time: 0ms    Radio types: none 2m 22s 369ms (100.0%) 0x   Radio data uptime when unplugged: 0 ms   Wifi on: 2m 22s 369ms (100.0%), Wifi running: 2m 22s 369ms (100.0%), Bluetooth on: 0ms (0.0%)    Device battery use since last full charge     Amount discharged (lower bound): 0     Amount discharged (upper bound): 0     Amount discharged while screen on: 0     Amount discharged while screen off: 0    All partial wake locks:   Wake lock 1013 AudioMix: 9s 52ms (4 times) realtime   Wake lock u0a8 UlrDispSvcFastWL: 166ms (2 times) realtime   Wake lock 1000 AlarmManager: 87ms (2 times) realtime   Wake lock u0a8 GCoreFlp: 80ms (3 times) realtime   Wake lock 1000 NetworkStats: 78ms (1 times) realtime   Wake lock 1000 ActivityManager-Launch: 78ms (1 times) realtime   Wake lock u0a8 Event Log Service: 75ms (1 times) realtime   Wake lock u0a24 AlarmManager: 32ms (1 times) realtime   Wake lock u0a8 AlarmManager: 23ms (2 times) realtime   Wake lock u0a43 AlarmManager: 7ms (1 times) realtime   Wake lock u0a8 Event Log Handoff: 7ms (1 times) realtime   Wake lock u0a8 GCM_CONN: 5ms (1 times) realtime   Wake lock u0a8 GCM_HB_ALARM: 4ms (1 times) realtime   Wake lock u0a23 PUSH_SERVICE_WAKE_LOCK: 3ms (1 times) realtime   Wake lock u0a23 AlarmManager: 1ms (1 times) realtime   Wake lock u0a8 Wakeful StateMachine: GeofencerStateMachine: 1ms (1 times) realtime    0:     Wi-Fi network: 632B received, 1.59KB sent     Proc /init:       CPU: 20ms usr + 80ms krn ; 0ms fg     Proc ksoftirqd/0:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc mtk charger_hv_:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc vold:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc jbd2/mmcblk0p7-:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc pmic_thread_kth:       CPU: 0ms usr + 450ms krn ; 0ms fg     Proc kthreadd:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc btif_rxd:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc netd:       CPU: 10ms usr + 10ms krn ; 0ms fg     Proc mmcqd/0:       CPU: 0ms usr + 50ms krn ; 0ms fg     Proc kworker/u:0:       CPU: 0ms usr + 270ms krn ; 0ms fg     Proc kworker/u:2:       CPU: 0ms usr + 120ms krn ; 0ms fg     Proc kworker/0:2:       CPU: 0ms usr + 500ms krn ; 0ms fg     Proc zygote:       CPU: 20ms usr + 30ms krn ; 0ms fg     Proc flush-179:0:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc tx_thread:       CPU: 0ms usr + 100ms krn ; 0ms fg     Proc disp_clean_up_k:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc healthd:       CPU: 0ms usr + 100ms krn ; 0ms fg     Proc ueventd:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc bat_thread_kthr:       CPU: 0ms usr + 520ms krn ; 0ms fg     Proc disp_config_upd:       CPU: 0ms usr + 440ms krn ; 0ms fg     Proc ion_mm_heap:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc disp_ovl_kthrea:       CPU: 0ms usr + 110ms krn ; 0ms fg   1000:     User activity: 6 other, 1 button, 1 touch     Wake lock NetworkStats: 78ms partial (1 times) realtime     Wake lock ActivityManager-Launch: 78ms partial (1 times) realtime     Wake lock AlarmManager: 87ms partial (2 times) realtime     TOTAL wake: 243ms partial realtime     Sensor 0: 2m 22s 369ms realtime (0 times)     Vibrator: 100ms realtime (1 times)     Foreground activities: 129ms realtime (1 times)     Proc com.mediatek.schpwronoff:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc surfaceflinger:       CPU: 950ms usr + 1s 30ms krn ; 0ms fg     Proc com.android.settings:       CPU: 0ms usr + 0ms krn ; 730ms fg     Proc system_server:       CPU: 2s 680ms usr + 2s 230ms krn ; 0ms fg     Proc aal:       CPU: 60ms usr + 180ms krn ; 0ms fg     Proc servicemanager:       CPU: 0ms usr + 10ms krn ; 0ms fg   1001:     Proc com.android.phone:       CPU: 50ms usr + 20ms krn ; 0ms fg   1010:     Proc wpa_supplicant:       CPU: 10ms usr + 30ms krn ; 0ms fg   1013:     Wake lock AudioMix: 9s 52ms partial (4 times) realtime     Proc mediaserver:       CPU: 20ms usr + 30ms krn ; 0ms fg   1023:     Proc sdcard:       CPU: 0ms usr + 20ms krn ; 0ms fg   2000:     Proc adbd:       CPU: 110ms usr + 380ms krn ; 0ms fg   9997:     Proc em_svr:       CPU: 0ms usr + 40ms krn ; 0ms fg   u0a5:     Proc android.process.media:       CPU: 60ms usr + 0ms krn ; 0ms fg     Apk com.android.providers.media:       Service com.android.providers.media.MtpService:         Created for: 0ms uptime         Starts: 1, launches: 1   u0a8:     Wi-Fi network: 5.35KB received, 1.92KB sent     Wake lock Wakeful StateMachine: GeofencerStateMachine: 1ms partial (1 times) realtime     Wake lock GCoreFlp: 80ms partial (3 times) realtime     Wake lock UlrDispSvcFastWL: 166ms partial (2 times) realtime     Wake lock GCM_HB_ALARM: 4ms partial (1 times) realtime     Wake lock Event Log Service: 75ms partial (1 times) realtime     Wake lock GCM_CONN: 5ms partial (1 times) realtime     Wake lock Event Log Handoff: 7ms partial (1 times) realtime     Wake lock AlarmManager: 23ms partial (2 times) realtime     TOTAL wake: 361ms partial realtime     Proc com.google.android.gms:       CPU: 100ms usr + 40ms krn ; 0ms fg     Proc com.google.process.gapps:       CPU: 180ms usr + 70ms krn ; 0ms fg     Proc com.google.android.gms.persistent:       CPU: 1s 130ms usr + 300ms krn ; 0ms fg     Apk com.google.android.gms:       2 wakeup alarms       Service com.google.android.gms.config.ConfigService:         Created for: 0ms uptime         Starts: 0, launches: 1       Service com.google.android.gms.checkin.EventLogService:         Created for: 85ms uptime         Starts: 1, launches: 1       Service com.google.android.gms.gcm.http.GoogleHttpService:         Created for: 0ms uptime         Starts: 0, launches: 1       Service com.google.android.location.reporting.service.DispatchingService:         Created for: 268ms uptime         Starts: 1, launches: 1       Service com.google.android.gms.usagereporting.service.UsageReportingService:         Created for: 0ms uptime         Starts: 0, launches: 1   u0a13:     Proc com.android.systemui:       CPU: 810ms usr + 300ms krn ; 0ms fg   u0a18:     Proc com.lenovo.safecenter.hd:       CPU: 360ms usr + 120ms krn ; 0ms fg   u0a19:     Proc com.lenovo.lps.cloud.sync.row:       CPU: 0ms usr + 0ms krn ; 0ms fg       1 proc starts   u0a20:     Proc com.lenovo.lewea:       CPU: 40ms usr + 10ms krn ; 0ms fg     Apk com.lenovo.lewea:       Service com.lenovo.weather.service.UpdateAppWidgetService:         Created for: 84ms uptime         Starts: 2, launches: 2   u0a23:     Wake lock AlarmManager: 1ms partial (1 times) realtime     Wake lock PUSH_SERVICE_WAKE_LOCK: 3ms partial (1 times) realtime     TOTAL wake: 4ms partial realtime     Proc com.lenovo.lsf.device:       CPU: 30ms usr + 0ms krn ; 0ms fg   u0a24:     Wake lock AlarmManager: 32ms partial (1 times) realtime     Proc com.lenovo.ue.service:       CPU: 40ms usr + 10ms krn ; 0ms fg   u0a42:     (nothing executed)   u0a43:     Wake lock AlarmManager: 7ms partial (1 times) realtime   u0a58:     Proc com.google.android.inputmethod.latin:       CPU: 20ms usr + 0ms krn ; 0ms fg   u0a65:     (nothing executed)   u0a74:     Proc com.google.android.apps.plus:       CPU: 50ms usr + 30ms krn ; 0ms fg     Apk com.google.android.apps.plus:       (nothing executed)   u0a114:     Wi-Fi network: 243.13KB received, 14.51KB sent     Wake lock WindowManager: 2m 22s 191ms full (1 times) realtime     Foreground activities: 2m 22s 208ms realtime (1 times)     Proc com.devstring.imageframe:       CPU: 6s 300ms usr + 810ms krn ; 0ms fg  Statistics since last unplugged:   Time on battery: 2m 22s 369ms (86.9%) realtime, 2m 22s 369ms (86.9%) uptime   Total run time: 2m 43s 811ms realtime, 2m 43s 811ms uptime,    Screen on: 0ms (0.0%), Input events: 0, Active phone call: 0ms (0.0%)   Screen brightnesses: No activity   Mobile total received: 0B, Total sent: 0B   Wi-Fi total received: 249.09KB, Total sent: 18.02KB   Total full wakelock time: 2m 22s 191ms , Total partial wakelock time: 9s 697ms    Signal levels: No activity   Signal scanning time: 0ms    Radio types: none 2m 22s 369ms (100.0%) 0x   Radio data uptime when unplugged: 0 ms   Wifi on: 2m 22s 369ms (100.0%), Wifi running: 2m 22s 369ms (100.0%), Bluetooth on: 0ms (0.0%)    Device is currently plugged into power     Last discharge cycle start level: 100     Last discharge cycle end level: 100     Amount discharged while screen on: 0     Amount discharged while screen off: 0    All partial wake locks:   Wake lock 1013 AudioMix: 9s 52ms (4 times) realtime   Wake lock u0a8 UlrDispSvcFastWL: 166ms (2 times) realtime   Wake lock 1000 AlarmManager: 87ms (2 times) realtime   Wake lock u0a8 GCoreFlp: 80ms (3 times) realtime   Wake lock 1000 NetworkStats: 78ms (1 times) realtime   Wake lock 1000 ActivityManager-Launch: 78ms (1 times) realtime   Wake lock u0a8 Event Log Service: 75ms (1 times) realtime   Wake lock u0a24 AlarmManager: 32ms (1 times) realtime   Wake lock u0a8 AlarmManager: 23ms (2 times) realtime   Wake lock u0a43 AlarmManager: 7ms (1 times) realtime   Wake lock u0a8 Event Log Handoff: 7ms (1 times) realtime   Wake lock u0a8 GCM_CONN: 5ms (1 times) realtime   Wake lock u0a8 GCM_HB_ALARM: 4ms (1 times) realtime   Wake lock u0a23 PUSH_SERVICE_WAKE_LOCK: 3ms (1 times) realtime   Wake lock u0a23 AlarmManager: 1ms (1 times) realtime   Wake lock u0a8 Wakeful StateMachine: GeofencerStateMachine: 1ms (1 times) realtime    0:     Wi-Fi network: 632B received, 1.59KB sent     Proc /init:       CPU: 20ms usr + 80ms krn ; 0ms fg     Proc ksoftirqd/0:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc mtk charger_hv_:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc vold:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc jbd2/mmcblk0p7-:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc pmic_thread_kth:       CPU: 0ms usr + 450ms krn ; 0ms fg     Proc kthreadd:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc btif_rxd:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc netd:       CPU: 10ms usr + 10ms krn ; 0ms fg     Proc mmcqd/0:       CPU: 0ms usr + 50ms krn ; 0ms fg     Proc kworker/u:0:       CPU: 0ms usr + 270ms krn ; 0ms fg     Proc kworker/u:2:       CPU: 0ms usr + 120ms krn ; 0ms fg     Proc kworker/0:2:       CPU: 0ms usr + 500ms krn ; 0ms fg     Proc zygote:       CPU: 20ms usr + 30ms krn ; 0ms fg     Proc flush-179:0:       CPU: 10ms usr + 0ms krn ; 0ms fg     Proc tx_thread:       CPU: 0ms usr + 100ms krn ; 0ms fg     Proc disp_clean_up_k:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc healthd:       CPU: 0ms usr + 100ms krn ; 0ms fg     Proc ueventd:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc bat_thread_kthr:       CPU: 0ms usr + 520ms krn ; 0ms fg     Proc disp_config_upd:       CPU: 0ms usr + 440ms krn ; 0ms fg     Proc ion_mm_heap:       CPU: 0ms usr + 20ms krn ; 0ms fg     Proc disp_ovl_kthrea:       CPU: 0ms usr + 110ms krn ; 0ms fg   1000:     User activity: 6 other, 1 button, 1 touch     Wake lock NetworkStats: 78ms partial (1 times) realtime     Wake lock ActivityManager-Launch: 78ms partial (1 times) realtime     Wake lock AlarmManager: 87ms partial (2 times) realtime     TOTAL wake: 243ms partial realtime     Sensor 0: 2m 22s 369ms realtime (0 times)     Vibrator: 100ms realtime (1 times)     Foreground activities: 129ms realtime (1 times)     Proc com.mediatek.schpwronoff:       CPU: 0ms usr + 10ms krn ; 0ms fg     Proc surfaceflinger:       CPU: 950ms usr + 1s 30ms krn ; 0ms fg     Proc com.android.settings:       CPU: 0ms usr + 0ms krn ; 730ms fg     Proc system_server:       CPU: 2s 680ms usr + 2s 230ms krn ; 0ms fg     Proc aal:       CPU: 60ms usr + 180ms krn ; 0ms fg     Proc servicemanager:       CPU: 0ms usr + 10ms krn ; 0ms fg   1001:     Proc com.android.phone:       CPU: 50ms usr + 20ms krn ; 0ms fg   1010:     Proc wpa_supplicant:       CPU: 10ms usr + 30ms krn ; 0ms fg   1013:     Wake lock AudioMix: 9s 52ms partial (4 times) realtime     Proc mediaserver:       CPU: 20ms usr + 30ms krn ; 0ms fg   1023:     Proc sdcard:       CPU: 0ms usr + 20ms krn ; 0ms fg   2000:     Proc adbd:       CPU: 110ms usr + 380ms krn ; 0ms fg   9997:     Proc em_svr:       CPU: 0ms usr + 40ms krn ; 0ms fg   u0a5:     Proc android.process.media:       CPU: 60ms usr + 0ms krn ; 0ms fg     Apk com.android.providers.media:       Service com.android.providers.media.MtpService:         Created for: 0ms uptime         Starts: 1, launches: 1   u0a8:     Wi-Fi network: 5.35KB received, 1.92KB sent     Wake lock Wakeful StateMachine: GeofencerStateMachine: 1ms partial (1 times) realtime     Wake lock GCoreFlp: 80ms partial (3 times) realtime     Wake lock UlrDispSvcFastWL: 166ms partial (2 times) realtime     Wake lock GCM_HB_ALARM: 4ms partial (1 times) realtime     Wake lock Event Log Service: 75ms partial (1 times) realtime     Wake lock GCM_CONN: 5ms partial (1 times) realtime     Wake lock Event Log Handoff: 7ms partial (1 times) realtime     Wake lock AlarmManager: 23ms partial (2 times) realtime     TOTAL wake: 361ms partial realtime     Proc com.google.android.gms:       CPU: 100ms usr + 40ms krn ; 0ms fg     Proc com.google.process.gapps:       CPU: 180ms usr + 70ms krn ; 0ms fg     Proc com.google.android.gms.persistent:       CPU: 1s 130ms usr + 300ms krn ; 0ms fg     Apk com.google.android.gms:       2 wakeup alarms       Service com.google.android.gms.config.ConfigService:         Created for: 0ms uptime         Starts: 0, launches: 1       Service com.google.android.gms.checkin.EventLogService:         Created for: 85ms uptime         Starts: 1, launches: 1       Service com.google.android.gms.gcm.http.GoogleHttpService:         Created for: 0ms uptime         Starts: 0, launches: 1       Service com.google.android.location.reporting.service.DispatchingService:         Created for: 268ms uptime         Starts: 1, launches: 1       Service com.google.android.gms.usagereporting.service.UsageReportingService:         Created for: 0ms uptime         Starts: 0, launches: 1   u0a13:     Proc com.android.systemui:       CPU: 810ms usr + 300ms krn ; 0ms fg   u0a18:     Proc com.lenovo.safecenter.hd:       CPU: 360ms usr + 120ms krn ; 0ms fg   u0a19:     Proc com.lenovo.lps.cloud.sync.row:       CPU: 0ms usr + 0ms krn ; 0ms fg       1 proc starts   u0a20:     Proc com.lenovo.lewea:       CPU: 40ms usr + 10ms krn ; 0ms fg     Apk com.lenovo.lewea:       Service com.lenovo.weather.service.UpdateAppWidgetService:         Created for: 84ms uptime         Starts: 2, launches: 2   u0a23:     Wake lock AlarmManager: 1ms partial (1 times) realtime     Wake lock PUSH_SERVICE_WAKE_LOCK: 3ms partial (1 times) realtime     TOTAL wake: 4ms partial realtime     Proc com.lenovo.lsf.device:       CPU: 30ms usr + 0ms krn ; 0ms fg   u0a24:     Wake lock AlarmManager: 32ms partial (1 times) realtime     Proc com.lenovo.ue.service:       CPU: 40ms usr + 10ms krn ; 0ms fg   u0a42:     (nothing executed)   u0a43:     Wake lock AlarmManager: 7ms partial (1 times) realtime   u0a58:     Proc com.google.android.inputmethod.latin:       CPU: 20ms usr + 0ms krn ; 0ms fg   u0a65:     (nothing executed)   u0a74:     Proc com.google.android.apps.plus:       CPU: 50ms usr + 30ms krn ; 0ms fg     Apk com.google.android.apps.plus:       (nothing executed)   u0a114:     Wi-Fi network: 243.13KB received, 14.51KB sent     Wake lock WindowManager: 2m 22s 191ms full (1 times) realtime     Foreground activities: 2m 22s 208ms realtime (1 times)     Proc com.devstring.imageframe:       CPU: 6s 300ms usr + 810ms krn ; 0ms fg  

Command:

 adb shell dumpsys batterystats > batterystats.txt  python historian.py batterystats.txt > batterystats.html 

batterystats.html shows cannot find end time

I have referred to Displaying "Cannot find endtime" on Using hisorian.py

EDIT1

When I'm testing with a different device . no such error is generated. But every time this devices battery stats is giving no end time error

EDIT 2 Different versions of android have different dumpsys formats and the battery historian seems to be compatible with the newer version. To generate the chart I commentent line 646 to 649 i.e

#if not self._end_time:       #print "cannot find end time"       #sys.exit(1) 

Although its a hack, my device is Android 4.4 and its battery dumpsys does not give app wise battery usage but android 5.2 devices do so.

回答1:

Looks as if something within the parse_end_time function try and except statement is causing _end_time to not get defined, I'm looking here. Line 646 is where the actual error is being produced. If I had to take a guess, I'd say it's this line line = line.split("dumpstate: ", 1)[1]. Looks like line is coming from your input file for line in fileinput.input(input_file):, does your batterystats.txt have this dumpstate line? You could try commenting out lines 646-648 that stop the script and see if having the "end time" is really necessary or not.

Edit: Whoops, your batterystats.txt was included- and no "dumpstate" line... Which means that if "dumpstate:" in line: (line 640) was never True, and _end_time was never defined. Hope this helps you in some way. Let me know.



回答2:

Although its late but, for current version of battery-historian.py solution is to use Android 5.0+ API, different versions supported different formats of battery statistics log. Current historian.py is working well with 5.0+, below versions and it will crash or will not display charts (this is tested on 6.0).

If you know python, and how to read battery stats file, you can edit code for your flavour of android, but it is time consuming task. You can also write your own parser in another language but it will be like re-inventing the wheel.

One thing I did not try was to clone an older version of battery-historian repo, maybe if there is available, it might work with older version of android depending how old the repo is. (not tested)

UPDATE:

On looking at the commit history of battery-historian repo, I can see there are commits as old as June 2014, while Android L (5.0) Developer Preview release was in August 2014, so there is a fair chance that commits older than Android 5.0 will work on devices that are <5.0.



回答3:

This is not the exact solution for the above question but it will help to monitor the same stuff that you are trying to figure out with dumpsys batterystats. Please go through this link in which Colt has mentioned the other way round to get the stats.Colt's Unofficial guide to getting started with Battery Historian

And in his comment he has mentioned

Historian only works from the bugreport content

  • Using Battery Historian The battery historian tool will process a battery stats dump, and create the visual report for you.

    • Recording data adb shell dumpsys batterystats --reset Reset the battery data

    • "Do your work here" Pro-Tip: Unplug your device for this work, that way you’ll see true battery draw numbers. (remember to plug it back in before the next step!)

    • Grab the data adb bugreport >bugreport.txt

    • Convert to battery historian python historian.py bugreport.txt >out.html

I'd be grateful for any feedback or criticism that I can learn from or use to help me improve my answer. Thank you



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!