Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,809,739 Members 42,050 Now Online
XDA Developers Android and Mobile Development Forum

[APP][2.1+][05 Jul. - V1.16] BetterBatteryStats

Tip us?
(Last edited by chamonix; 4th July 2014 at 10:50 PM.) Reason: New Release
chamonix's Avatar
Recognized Contributor - OP
Thanks Meter 13,446
Posts: 4,114
Join Date: Nov 2008
Location: Berlin
Default [APP][2.1+][05 Jul. - V1.16] BetterBatteryStats

I wrote BetterBatteryStats because I was missing the great battery history that Spare Parts allowed to call on Froyo:
- General "other stats "overview: Awake, Deep Sleep, Screen On, Phone On, Wifi On, Wifi Running ratios
- Kernel Wakelocks
- Partial wakelocks
- Alarms/Wakeups
- CPU States
- Network stats
- Process stats with User and System CPU time

BetterBatteryStats is calling the "batteryinfo" service of Android to retrieve data already lying there without generating overhead.

BetterBatteryStats is focussing and has been tested on Froyo, Gingerbread, Honeycomb (3.1, thanks to daveid), ICS, JB and Kitkat on different ROMs and Kernels.

What are wakelocks and why should you care about them?
When it comes to Android the most discussed and commented topic that I know is battery drain / battery life. I'm a quite heavy user because I spend a lot of time on the train every day reading my mails, surfing and listening to music but still my phone is off for a long time during the day and while I accept the battery being drained while I use the phone I care about it draining slowly while "doing nothing".

Wakelocks or to be more precise partial wakelocks is a pattern (in fast a class) than helps devs to make sure that important pieces of their code do not get interrupted.
Basically the phone has (simplified, kernel devs don't shoot) three states:
1. awake with screen on
2. awake
3. sleeping (that's you phone favorite state)

The transitions are from (1) to (2) and finally from (2) to (3). Now as long as you use your phone it's in (1) and does not leave that state as long as you keep using it interactively. If you stop using it the phone is aiming to go to (3) as fast as possible.
And here's where wakelocks are important: as our phones as smartphones they tend to do background processing. Some of this processing is important like e.g. making a phone call, listening to music or synchronizing your contacts.
As the phone wants to go from (2) to (3) and on the other hand you don't want to hang up while you are in a call the app keeps hold of a wakelock to prevent that transisiton. When you hang up the partial wakelock gets release and here we go (the phone goes to sleep).

So partial wakelocks is a tool and it's not something that we should forbid for obvious reasons. Now there are cases when the design on an app is not real life proven (conditions of poor of no converage) and the wakelocks have negative effects because they are held unnecessarily or for too long.
BetterBatteryStats identifies these wakelocks and using your expertise or the once from our users here you can understand what happens and find a strategy to change that for the better.

Try it yourself

If you need help
Always add the whole context when asking for help. Most of the times a dumpfile is helpful, sometimes screenshots showing your observations may help as well.

Before posting a dump please make sure that the references for kernel wakelocks and alarms were processed correctly. Reading a dump takes a few minutes and it would be great if you could not waste the time of whowver studies in, aiming at helping you.
Generally a dump "since unplugged" is better than "since charged". When you start your analysis make sure to follow following procedure:
- plug/unplug the charger
- leave the phone alone 1-4 hours
- save a dump and check that the chapters "Kernel wakelocks" and "alarms" (if you have root) are populated
- Post the dump as attachement

I will not reply to posts with incomplete dumps

Reporting bugs
If you want to report a bug please make sure:
- that you can reproduce the problem
- explain what the problem is, how you could reproduce it and what is going wrong (a sentence lke "xxxx does not work for me" is a waste of your time and wil be ignored)
- enable debug in advanced prefernces
- post a logcat

A good read about reporting bugs

To nobnut for donating me a Nexus S for testing
To nobnut and brandall for their support, encouragements, testing and constructive feedback in the early stages of the development.
To @cri for the new icons / logo

To suku_patel_22, jeremysherriff, Karpfenhai, Tungstwenty, It_ler, Perseus71 and mag01 for their help in this thread and their systematic testing my betas and RCs

To Entropy512 for providing support and insights about kernel wakelocks and helping making BBS a better tool
The Following 4,433 Users Say Thank You to chamonix For This Useful Post: [ Click to Expand ]
(Last edited by chamonix; 4th August 2014 at 09:52 AM.) Reason: 1.16b1 changes
chamonix's Avatar
Recognized Contributor - OP
Thanks Meter 13,446
Posts: 4,114
Join Date: Nov 2008
Location: Berlin
Post Release

BetterBatteryStats is available on the Android market ( for what I believe is a fair price. If you like my work and want to support me please fell free to show your gratitude by buying the app.

Follow me on twitter to be notified of updates and get insights in new features/developments.

xda edition: for xda-dev members see the attachement (please play fair and do not redistribute the app without my consent).

#486: watchdog does not warn
#446, #483: watchdog warns about 100% awake even if reading shows it's not the case
#481, #482: FC conditions from crash reports
#485: addedf more comprehensive info about BATTERY_STATS perm and Xposed setting to dumpfile

Older Changelogs
no changes from RC6
#479: attempt to fix failing system app install process on certain devices
#480: fixed Dashclock settings not opening in xdaedition
#475: more speaking text for XPosed module settings
#476: fixed dashclock API 2 manifest (kudos to DvTonder)
#477: fixed exception in method to obtain other stats from dumpsys (compat mode)
#478: fixed alarm parsing error on pre 4.2 versions
#469: Fixed network stats parsing error
#472: Fixed alarm parsing for L preview
#473: fixed wakelock being expressed in ms on L preview
#474: fixed sorting of CPU states
#470: fixed non null extra passed by certain launchers
#471: fixed batterystats service name on L preview
#464: fixed icon height in list
#466: if xposed modue is checked in advanced prefs do as if all perms were there (use at your own risk)
#467: fixed missing icons in network view
#468: fixed FC condition when creating a logcat
#463: added copy to clipboard on long-press
Merged to master1.16.0.0_B7
#462: fixed antialiasing of pie gauge to avoid pixelation
#457: fixed FC on calling permissions
#458: fixed value of "other" stats gauge being off
#459: pie gauge brush too large on low density devices
#460: add setting to disable system app presence (for XPosed module users)
#461: added setting (display section) to use "old" bar gauge instead of "new" pie
#452: update to Dashclock API 2.0
#453: fixed "current" reference not getting updated when BBS is called from tasker
#454: fixed network stats "lo" not matched to "Mobile"
#455: merged a few UI changes from the upcoming 2.0 branch
#456: fixed: when only one reference spinner is shown avoid Toast message
#426: added occurences per minute/hours in alarms on screen and dumpfile
#450: fix for memory leak
#451: revert from JSON the Java serialization of references for better performance (references will be deleted after installation)
#448: if root is available offer full featured alarms using dumpsys
#449 avoid flushing cache, imporving performance
#447: system app has wrong signature
#427: optimize the root calls for dumpsys if system app installed
#429: replace java serialization of references with a more flexible JSON serialization
#435: avoid crashing when appops not available (4.4.2+)
#437: better resetting of screen counters for non rooted 4.4+ devices
#439: dumpfile chapters comments reflect need for root
#440: better support for root (does not require to be enabled in advanced prefs anymore)
#441: offer to install as system app on 4.4+ is root available
#443: alarm does not require root anymore
#446: watchdog notification should never report more than 100%
Same as RC8 except the release notes
#432: make sure to ask for su rights right after enabling root features
#433: hint that the system app should be uninstalled before uninstalling BBS
#430: better fix for blocking root access
#431: fix for install as system app when package comes from gplay
A few changes in the popup for kitkat user at first run
Bump in version number causes references to be deleted at first run
#430: fixed blocking call if trying to install as system app without having root features enabled
#428: force mediascanner after saving files
Recreated icons in all densities
#421: Another attempt to fix the xxxhdpi icon
#426: fied missing process stats on kitkat
Fixed other stats not refreshing properly on kitkat
Fixed the way we manage system apps
Sharpened xxxhdpi icon
Added the ability to install BBS as system app (requires root, usefull only for kitkat right now)
#424: add proper (error) messages to notify about features not available without root on kitkat.
Add timing of screen on time when no stats can be retrieved
#421: added xxhdpi assets
#423: fixed alarms parsing on 4.3+
#422: fixed account info obfuscation for new account format coming with kitkat
#418: re-add process stats to kitkat
Fix for potentially missed partial wakelocks where uid could not be found
#419: Package info and icons re-added to kitkat partial wakelocks
#420: fixe from gplay creashreports
Added hires icon
#416: readded missing other stats (kitkat)
#417: fix for duplicate partial wakelocks
#414: Fixed error at launch (service not available for kitkat)
#415: re-added partial wakelocks and very basic other stats (deep sleep only) to kitkat (requires root)
Updated libs
#404: Fixed text padding for short time strings
#407: added app ops for 4.3+ users
#401: added ACCESS_SUPERUSER to manifest permissions
#402: wrong values in wakelocks with hashed account info caused by hash being applied multiple times
#355: implement a permanent su shell to execute all commands
Various fixes from gplay crash reports
Same as B2, no changes
#391 support all implementations of sqlite
Refactoring of database access to avoid locking
Fix for users having FCs due to database lock problem
Fix for users having FCs at start
Unchanged from RC2
#384: salted the account name before hashing
Fix for stats not reflecting the combo boxes anymore for some users after a reference refresh
Fix to make sure spinners do not get out of sync
#383: Fixed battery / voltage level in dumpfile
A few typos
Added timestamp to logcat
#191, #334: Added "share" option for saving/sharing dumpfiles, dmesg and logcat
#381: fixed database exception occuring sometimes and potentially responsible for the blank stats happening from time to time for some users
#382: dmesg requires root for newer kernels
Added some logging to debug percentage problem: adb logcat | grep StatsAdapter
#377: refactored KB handling
#379: refactored "raw" stats
Stats row shows interactive areas (glow)
#236: mask account info
#378: fixed fallback stat in DashClock widget
#376: no icon in process view
#377: missing KB icon
#367: added dashclock support
#375: added JSON dumpfile format support
#372: Widgets do not update on a fresh install
#373: change default widget fallbacl to "boot"
#374: refresh spinners and user refresh causes the cache of refs to get flushed/reloaded from data
#369: small widget uses wrong prefs
#370: Other stat times/total time incorrect
#366: fixed FC when creating a dumpfiel from tasker
Improved logging
Fixed concurrency problems potentially leading to weird display
Fixed a caching issue
Fix migration issues from 1.11 leading to inconsistent stats
#359: make sure BatteryInfoUnavailableException does not other stats to be shown
#361: a better fix for battery/voltage using current instead of "to" stat
#363, #364, #365: fixed different error conditions from crash reports
#356: bug when migrating from 1.11
#357: to battery % always shows current value

Same as RC12, no changes

#356: fixed empty stats after screen being rotated

#223: active monitoring
#346: save 'unplugged' ref at first use to avoid empty refs
#347: pref to diable widgets to be refreshed at screen on
#344: better fix for errors in parsing network/alarms causing the whole reference to be saved empty

#302: added credits for used libs in app besides git (under help)
#342, #345: remove log verbosity when debug advanced pref is not enabled for cleaner logcats
#343: fixed alarms parsing of details for flg= and cmp= (both pre- and post 4.2.2)
#344: error in parsing network stats causes the reference to be saved empty (potentially a cause of reference shown as not having been created)

#323: pref for saving dumpfile to private storage
#337: implement 48dp rhythm
#338: optimize list real estate
#339 (partially): fixed tiny font for widget being same as small

#341: fixed alarms for android 4.2.2

#327: spinner refresh issues
#331: sometimes the stats shown do not reflect the spinner selection
#333: charged and unplugged should not be in the "to" spinner as that makes no sense

#307, #328; widget stops updating and stays blank
#327: spinner refresh issues
#329: fallback ref in 1x1 widget is never loaded
#330: an attempt to fix wakelock issue when su commands are blocked

#326: fixed rate dialog showing at each start
Some profining
Less intrusive logging if dedug is disabled in prefs

New readme and rate dialogs
#325: times in wakeup_sources are a factory 1000 to small

#321: fixed spinner heights
#322: filter "0" cpu states
#324: add marker to dumfile if using wakeup_sources

#320: added experimental support for wakeup_sources (newer kernels deprecate /proc/wakelocks)

#318: automatically refresh current when entering the main screen (can be changed in adv. prefs)
#319: "to ref" is shown by default (can be changed in adv. prefs)

#316: FC when calling BBS from watchdog notification
#317: 2x2 widget showing 0 KWL/PWL

#312: Fixed negative CPU percentages
#313: refresh after events creating new references show inconsistent references (from/to)
#314: proper migration of default stat type prefs coming from 1.11
#315: fixed cause of "unknown error"

#310: fixed partial and kernel wakelocks always being the same and icons missing
#311: fixed kb reader thread not retriieving online content

Changed the way su operations are processed
Some fixes regarding the refresh of the spinners
Make sure all root operations are running in an own thread

#308: since boot can not be selected
Fixed callstack when updating a reference
Widget now have a lightweight method for obtaining the current data without causing the cache to be updated
Spinners show references sorted in ascending order
Fixed spinner not showing all existing references

#306: fixed broken dumpfile
Added pref to show/hide the "reference to" spinner
Added screen on reference (saved when watchdog is active)
References are now stored in a database
From/To references are chronogical
#303: invalidate "current" when other refs are saved
#305: dissapearing refs

Some tuning
#298: Fixed FC on raw alarms
#299: Watchdog does not report when awake > threshold
#300: fixed spinner height

#187: freeze current time
#193: add screen brightness states to "other" stats
#274: copy wakelock to clipboard
#279: add option to save dmesg
#286: add mV/h to dumpfile
#290, 292: typo, wording
#296: kbreader is now asynchronous and doesn't block UI thread when github is slow

no change from RC8

#289: FC on package info screen for pre-ICS devices

#288: usability issue in permission view fixed

#276: another attempt at fixing scheduled dumpfile creation from tasker
#287: fixed ratio calculation for battery drain in %/h

#280: added legend to permissions tab
#283: unticking watchdog option "Screen off" stops the EventHandler service
#284: added drain per hour to battery drain text on screen and dumpfile

#281: Fixed bad reference on unplug when 100% charged
#276: fixed dumpfile creation from tasker
removed delimiter till a configurable version can be provided

A better fix for widgets being updated
Nicer implementation of package info using a tabbed pager (using ActionBarSherlock)
Changed in-app help and messages to make the conect of references clearer
More speaking "missing ref" texts

#277: more prominent delimiter in listview
fixed calculation of since value

#229: show autorun and other package info like permissions and services, click on the icons
#279: reverted the time reference for since and calculations back to 1.9.x
#275: widgets do not always refresh: hack to make sure the widget always get the broadcasts from the launcher, even if the lancher is not complying with standards (see
yet another attempt to fix since screen off dump incomplete when created at wakeup from taker plugin
big refactoring (only relevant for the ones reading the code)
No changes from RC1

Make sure app is not installed to SD (watchdog, widgets, detecting boot and unplug won't work properly)
Writing references respect "root features" settings
Fixed error condition in widget (potentially not showing data)
Refactored broadcast handlers
Another attempt to fix dumpfile creation in tasker plugin

Fixed logcat permission

Some changes in widget code
#270: added option to save logcat from app

#263: adv prefs to turn on stats while plugged
#264: error happening when reading other stats should not skip the whole stats
#265: reference summary shows data instead of counts (in dumpfile and log)
#266: difference in "since" time between widget and screen
#268: error when checking charger status causes exception

#261: missing cpu states file causes references to stay empty
#262: battery level handling causes exception

A few changes in logging
New ?????

#257: referencea are missing processes
#258: if debug pref is not checked since shows 0s

#256: silent crash on progress dialog
#252: a better fix for the FC on enabling root features
Typo in prefs
Added drain to on screen battery info

#251: added batter level from/to to screen (and a pref to enable/disable it)
#252: an attempt to fix the FC on enabling root features
#254: incomplete (ref missing) dump from tasker
#255: not systematic crash on creating custom ref

#248: added raw CPU states
#249: ratio of other stats is calculated against something that is smaller than "since"
#250: when a reference is null all stats should show that there is no reference availble

#247: fixed deep sleep sometimes being substracted twice, causing negative values

#245: source of "since" is now the reference
#246: added battery voltage/level from/to to dumpfile
Removed unneeded API calls (that were to cause to batteryinfo stopping)
New error handling exposes API errors to the user

#243: deep sleep not showing
#244: no stats when plugged (as some internal registers do not count when plugged, leading to inconsistencies)
Removed pre-1.9 migration code that may lead refs to be deleted at start
#235: grey background for bars

#234: show icon for stats providing package info
#8: call application settings when package info is available (click on icon)
Refactored error handling
Workaround to avoid SuperUser to obcess about asking for rights

#240: removed "test" menu
#241: fixed nested menu causing FC on SDK<14
#242: removed froyo specific references as BBS is not depending on Android's implementation of refs anymore

#209: added since boot ref
#227: fallback to since boot if default stat type is not available
#228: pref to control log level
#230: two step save of references to avoid empty references if su request times out
#231, #232: reorganized preferences
#233: reorganized menu
#238: process Siyah "deleted: " kernel wakelocks properly
#239: network stats / alarms are disabled by default, can be turned on in advanced prefs
#226: reference info to dumpfile

1.9.2 (|xda only)
Fixed error condition where "no ref since charged" appeared after a while when a reference was present
#224: screen on time is too high in "since screen off"

1.9.1 (@xda only)
Added more logging to references
#213: Tasker plugin does not create dumpfiles / custom refs
#216: more compact CPU state view
#218, 220, 221: various fixes from Google Play logs

#208: tasker plugin writes zero-sized dumpfiles

#205: disabled trace logging by default (can be turned on with setprop)
#207: discrete KWL detection added (hint is in dumpfile)

#204: data inconsistency sometimes showing data with values > since

No fixed, more logging
#201: missing line break after os version in dumpfile
#203: when substracting eventX-YYYY kernel wakelocks the package list must be merged

#196: added os.version (/proc/version) to dumpfile
#199: package info for eventX-YYYY caused some event lernel wakelocks to get removed
#200: "Deep sleep" and "awake" percentages were not always summing up to 100% in "other" stats

#188 (again, this time correctly): Network totals are sometimes incorrect while transfer volumes are correct
#195: eventX-YYYY kernel wakelocks are being decoded, listing all the process names / packages involved
#197: inconsistent reference calculations / display for partial wakelocks (added back full logging as well)
#186: auto-refresh of widget can be disabled: then they are refreshed manually + on screen on (always anyway)

#188: Network totals are sometimes incorrect while transfer volumes are correct
#189: exiting references (from 1.8) are being invalid in 1.9 so first start of 1.9RC3 will delete those
#194: Fixed sometimes missing "since unplugged" and "since screen off" references, ANR on unplug / screen on, wrong (too high) deep sleep values in both "other" and "cpu states" stats

Please note that comping from pre-1.9 release this release will reset the preferences of default stat and stat type
#183: tapping widget open BBS with disregard to the selected stat/stat type
#184: "test" menu removed
#185: broken stat type constants leading to no values in BBS
#42, 173: (hack) missing perm "android.permission.BLUETOOTH" leads (for unknown reasons) to the error that BBS can not connect to the batteryinfo service
#1, 181: added network usage report back
#33: added an alert mechanism (watchdog) to notify about high awake times while screen was off
#125: the content of "other" stats can be defined on prefs
#140, 141: preferences to set the stat/stat type to be shown when bbs is opened by tapping on a widget
#165: messed up icons sizes
#166: widget writes log to SD
#167: text about ratios poorly formulated (in how to)
#168: automatically switch widgets to another stat in case "custom" is defined and no reference is available
#169: add battery percentage and voltage lost during reading to dumpfile
#170: widget does not refresh till screen is rotated on tablet
#174: widget alarm still called when screen is on even when no widgets were added
#175: implemented cpu state reporting
#177 "since" time not always shown
#178: functionality to decode eventX-YYYY processes
#182: graph layouts are not looking good on high res devices
#162: Radio listed twice in dump, first occurence not working for all API
#163: shorten durations > 1 day in widget by removing seconds
#164: graph bars not displaying when coming from 1.7.x with default bar height

no code change to RC8, just icons and inline doc

#159: make sure to delete all references on boot to avoid inconsistencies
#160: fixed 2x2 widget graph order to be consistent with labels
#161: made colors of 2x2 widget consistent with 1x1

#158: fixed FC when creating dump file for API < 14

#154: added more build info to dump file
#155: fixed leaked window condition when progress dialog is showing when activity is gone
#156: more logical sorting of fields in widgets
#157: refresh zone is now the top 1/2 of 2x2 and 2x1 widgets

#149: 2x1 widget
#150: make widget font size adjutable
#151: setting for widgets to show % or times
#152: preference to show/hide stat type title of widget

#142: replace icon by transparent bitmap in widget
#143: add analytics for xda edition
#144: reduce fontsize of widgets
#145: log of alarms to /sdcard/bbs_widget_log
#147: report n/a if there is no reference available for that value in 2x2 widget
#148: refresh widget immediately on unplug
#130: better fix for bars being drawn with incosistent size (below top screen)

#128: removed title from 2x2 widget so save some space
#129: added hot zone (stat type) to refresh 2x2 widget, the rest of the widget launches BBS. For 1x1 the behavior is set in preferences (see also #139)
#130: fixed bar length
#131: adjusted bar heigth on 2x2 widget
#132: wrong data shown when BBS is removed from memory
#133: inconsistent data when custom ref selected and that ref does not exist
#134: Kern. Wl -> Kern WL
#135: preferences for refresh rate of widgets
#136: bg color gamma for 1x1 widget didn't work
#138: tapping on widget lauches the activity from the stack (not a new one)
#139: see #129

#122: bar height not set
#123: Missing toast after dumpfile creation
#124: tap on widgets open main activity
#126: widget background now has its own alpha pref
#127: adjustable update frequency for widgets
fixed sometimes empty kernel wakelock duration on 2x2 widget (formating error on 0 times)

#16: 2x2 "expert" and 1x1 simple but powerfull widgets (tap refreshes)
#92: added tasker/locale plugin for saving custom references and dumps
#102: reordered the stats to a "more logical" ordering
#114: experimental: added connection quality to "other" stat
#115: experimental: added signal strength to "other" stat
#117: changed root detection / root access to hopefully solve issues with SuperUser
#120: added deep sleep time to "other" stat
Graph bars (inline) were replaced by a neater design

#113: fixed inconsistency in wifi running stat (other)

#103: changed default pref for stat/type to other/since unplugged
#104: added alarm details to dump
#105: processed and services are not part of dump anymore (default)
#108: added preferences to add/remove chapters from dump
#109: added more details to the "general" chapter in dump
#110: added ability to be moved to SD
#111: added "wifi running" stat to "other"
#112: last alarm from dump was not p****d (formerly known as >999 bug, in the end it was a coincidence)

#100: fixed "since chanrged" reference to be stored continuously (removed service completely)
#101: removed property to hide "since..." from main screen as this makes screenshots unreadable
#102: changing stat/stat type now refreshes again

#68: promoted alarms to main screen
#93: migration to ICS standards (theme)
#94: added follow-me and rate buttons to about/readme
#95: caching of batteryinfo service for more MIUI stability

-1.5.1 Bugfix
#87: added debugging code, fixes FC in MIUI
#88: graphs not working on all ICS ROMs
#89: alarms sometime hangs due to superuser dialog in the background

#62: Dmpfile is now named with timestamp to avoid overwriting
#63: if writing a dumofile fails because of unmounted SD and error is displayed
#64: alarms with upper case names / numbers in the package name were being truncated
#65: the retrieval of the online knowledge base was blocking the refresh of the screen under bad network conditions
#66: alarms were added to dump (if phone rooted)
#67: "Actions" menu was renamed to "More"
#70: references "since unplugged" and "since charged" were added to kernel wakelocks. Please note that the corresponding events (unplug, charge to 100% must occur once for the data to be available)
#34: the whole persistence of sample data (custom reference, since.... for kernel wakelocks) was refactored and persistence of samples is now on private storage (files). There is no ned for preventing the user from leaving BBS with "back" as the data is not in memory
#71: graphs now work in ICS
#72: FC on start when the battery service could not be initalized (typical for MIUI as the service is off be default).
#73: added google analytics for a better tracking of how BBS is used. A warning notifies of that change and offers to opt-out if Google Analytics are not wanted
#74: added "raw" kernel wakelocks to the "more" menu

- 1.4.2: fixed #59, mixed wakes in kernel wakelocks
- 1.4.1: fixes #57, FC on alarms for non-rooted phones
- 1.4.0: #55 Kernel Wakelocks are not from /proc/wakelocks, #39 added alarms, #56 fixed wifi scan/locked times
- 1.3.4: a first attempt to bring native kernel wakelocks from /proc/wakelocks
- 1.3.3: #51 Kernel wakelocks sometime show no time/count, #52 BT / Wifi series mixed-up on graph, #54 Wifi locked / scan increase when wifi is off
- 1.3: #45 Added kernel wakelock stats, #49 Added dump to file for history, Added more graphs, #46 Added zoom / navigation on data series, #48 fixed FC on froyo
- 1.2.1: #47 Wifi graph did not show
- 1.2.0: #38 own implementation of battery history and data serie (missing on froyo and honeycomb), #43 FC entering prefs on honeycomb
- 1.1.1: #40 FC when clicking on a list element
- 1.1.0: #6 Added online knowledge base: the online knowledge base describes kown wakelocks, their causes and suggests solutions to remedy to wakelocks. If a wakelock is found in the knowledge base an icon is displayed beside it and clicking on the wakelock open the corresponding KB article, #28 stat types are now consistent with Froyo and Gingerbread, #30 Sorting can be changed between "time" and "count" for wakelocks and processes. A preference was added to persist the sorting order, #32 Custom ref does not preserve sorting was fixed together with #30, #35 Wording of preferences was fixed to make it more self speaking
- 1.0.0: #25 Added in-app and online help and how to (see menu "Help"), #29 Added groupings to unclutter the menu, #18 Added Release notes to be displayed once for each new version, #27 Fixed the app manifest for Android market to show it for other screen sizes/densities too
- 0.9.0: Fix for #26 ("menu" showing dialog), #24 (refresh after changing prefs), added #23 (dump of service info)
- 0.8.4: Fix for #21: Advanced prefs let you set the height of the bars, an attempt for a more elegant fix to #22 by asking when "back" is used to leave the app and there are custom refs that would be lost
- 0.8.3: Fixes for #20, preferences of default stat type were not applied correctly on start, #21 a better attempt to fix graph bar height for devices with higher densities, #22 custom ref is not saved when leaving the app with the "back" button
- 0.8.2: Fix for EVO 3D / Desire HD: on those devices graph bars get calculated with a hight of 0. Under these circumstances draw with a minimum height of 4px
- v0.8.1: Clean-up after app validation, added loggin to GraphableButton to analyse display problem of canvas on EVO 3D / Desire HD
- v0.8.0: New graphics/icons courtesy to nobnut, #15 the 100% of wakelocks can now be selected between total time, awake time, (awake time - screen on)
- v0.7.0: #3 titles of stat types are now speaking, #4 graph bar added to stats, #14 Added menu option to open GB battery history, Added stat type (speaking) to dump, Better haptic: long running operations are threaded
- v0.6.1: Fixed "Since" not being displayed in "Custom Ref" (#13), Wakelock count not being shown (#12), Error message regarding state not being saved (#11)
- v0.6.0: Added menu option "refresh", added possibility for user to set his own "custom" reference (#10), added option to dump stats to a file (#9), added total time since the stat is running to the main screen controlled by preferences (#7), implemented percentages in wakelocks (#4 partially)
- v0.5.1: Improved performance (process and wakelocks were slow on single cpu devices), better name resolution for processes / wakelocks adds more insight to the origin (e.g. previously stated process *wakelock* now tells from what apk ist was held)
- v0.5.0: Added "Other Usage" stats
- v0.4.0: Added preferences for default selection, removed Network Usage due to non resolved issue #1

I maintain A list of features to be implemented and bugs here.
Attached Files
File Type: apk BetterBatteryStats_xdaedition_1.11.0.0.apk - [Click for QR Code] (1.98 MB, 48732 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.0.0.apk - [Click for QR Code] (2.10 MB, 2414 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.0.2.apk - [Click for QR Code] (2.10 MB, 4302 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.1.0.apk - [Click for QR Code] (2.10 MB, 37631 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.2.0.apk - [Click for QR Code] (2.10 MB, 3271 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.3.0.apk - [Click for QR Code] (2.10 MB, 2805 views)
File Type: apk BetterBatteryStats_xdaedition_1.12.4.0.apk - [Click for QR Code] (2.10 MB, 8500 views)
File Type: apk BetterBatteryStats_xdaedition_1.13.0.0.apk - [Click for QR Code] (2.11 MB, 1920 views)
File Type: apk BetterBatteryStats_xdaedition_1.13.2.0.apk - [Click for QR Code] (2.11 MB, 1166 views)
File Type: apk BetterBatteryStats_xdaedition_1.13.3.0.apk - [Click for QR Code] (2.11 MB, 1914 views)
File Type: apk BetterBatteryStats_xdaedition_1.13.4.0.apk - [Click for QR Code] (2.12 MB, 46753 views)
File Type: apk BetterBatteryStats_xdaedition_1.14.0.0.apk - [Click for QR Code] (2.23 MB, 35747 views)
File Type: apk BetterBatteryStats_xdaedition_1.15.0.0.apk - [Click for QR Code] (3.12 MB, 86970 views)
File Type: apk BetterBatteryStats_xdaedition_1.16.0.0.apk - [Click for QR Code] (4.18 MB, 25309 views)
File Type: apk BetterBatteryStats_xdaedition_1.16.1.0B2.apk - [Click for QR Code] (4.18 MB, 22905 views)
The Following 3,556 Users Say Thank You to chamonix For This Useful Post: [ Click to Expand ]