What's new in AccuBattery 2.0
Redesigned health measurements
AccuBattery now uses only charges of at least 60% charged to calculate the battery health. To follow battery health
and firmware changes better over time, the calculation is changed to a moving average of the last 5 sessions.
New: charge efficiency
Charge efficiency is now displayed as % and scored on a zero to five scale.
Other changes
- New: charts in history page and view older sessions
- New: health chart over time
- New: battery wear chart
- New/changed: added dual cell battery options
What's new in AccuBattery 1.4 / 1.5
Mostly fixes for reliability. Workaround some major vendor issues on Poco / Xiaomi, their notification API
implementation is just wrong and incomplete causing crash loops.
What's new in AccuBattery 1.3
Added workarounds for Android 10 bugs
System broadcasts for ACTION_BATTERY_CHANGED are not delivered reliably on certain devices. This
release includes a workaround that checks if messages are lost and if so, try to re-register
ourselves as interested in this event with Android system.
A second workaround polls the system for changes, if events are consistently lost, we switch
over to polling only. When this happens the % indicator and other battery data will be delayed
up to a minute, but at least they will no longer be lost completely.
The contact us option in the app also sends some more battery event statistics for debugging
this issue.
Other changes
-
Fixed notification sound not playing on some devices. This resets the battery alarm
settings to default.
-
1.3.4: Fixed app sometimes not starting automatically on reboot. We added a wait to prevent
swamping the CPU allowing others to start first, but waited too long for some devices.
Shorten deadline to 2 seconds.
What's new in AccuBattery 1.2
Notification changes
AccuBattery now uses Android Oreo APIs to post notifications. Settings for sound, vibration, priority and status bar
icon visibility have moved to system settings - long press a notification to access it.
Fixes and improvements
1.2.0
- Added support for Android Oreo notification channels, customize the sounds and visibility in system settings.
- Added fix for Android bug where creating a WebView resets the theme.
- Added support for 2:1 display aspect ratio and application resizing.
- Workaround wake lock API bugs on Nexus 6P - blacklisted device from acquiring charging wake lock.
1.2.1
- Fixed crash on some devices during startup.
- Fixed overlay crash on Oreo devices.
1.2.2
- Updated event handler to reduce ANRs.
- Workaround Android bug causing applications to re-initialize, second onCreate causing threading issues.
- Updated translations.
1.2.3
- Fixed crash caused by crash reporter.
1.2.4
- Workaround Android Pie bug, system app crashes when you ask it to show settings for a notification channel.
- Fixed language setting in battery status notification.
- Fixed crashes in crash reporter.
- Added a few catches for rare device specific errors.
1.2.5
- Workaround AdMob bug causing high idle CPU usage, kill it with fire when app it paused.
- Workaround Google Play in app billing issues, remember purchases to prevent downgrading to free version when it forget to tell us about purchases.
- Moved copy notification sound to sound picker to settings, this requires WRITE_EXTERNAL_STORAGE permission.
1.2.7
- Added detection for split sessions caused by too aggressive power management on some phones.
- Fixed menu popup color in dark theme.
- Save overlay settings between restarts.
- Updated some libraries.
What's new in AccuBattery 1.1.9
Fixes and improvements
- Update dependencies and libraries
- Fixed Traditional Chinese translations to use the right script when using text from the Android system resources.
- Workaround more Android ROM bugs.
- Fixed app hanging for a short time on certain devices.
- Fixed some rare crashes due to threading issues.
- 1.1.9b: Workaround Huawei bug in synchronized methods.
What's new in AccuBattery 1.1.8
Bug fixes
- Oreo: don't crash while enabling CPU core usage. This feature is no longer available, data source removed by Android.
- Oreo: fixed language switcher breaking due to hidden API change.
- In app purchases: improved reliability and discover new purchases faster.
- Minor stability improvements
- LG G3: workaround device current reporting weirdness (x100 multiplier)
- 1.1.8a: Added larger grace timer for clock going backward
- 1.1.8a: Adjusted initialization to avoid ANRs
- 1.1.8a: Clip view port to 4x standard deviation in health tab - battery capacity chart.
- 1.1.8b/c: Optimized performance and fixed several minor crashes.
Other changes
- Improved database format for lower space usage and better performance.
- Translation changes: added Greek.
- Prevent notification sound stopping too soon / being cancelled right after triggering.
What's new in AccuBattery 1.1.7
- Added French translations.
- New application icon.
- Several small fixes and improvements.
What's new in AccuBattery 1.1.6
- Improved battery capacity counting: many devices indicate 100% and report the battery to be full while it is actually still charging. Do not stop counting until the charge current drops to zero.
- Support Fahrenheit temperature scale. Auto-detect based on device country, can be changed in settings menu.
- Optimize drawing of graphs -- could use a lot of CPU while scrolling.
- Add translations for: Chinese (Simplified & Traditional), German, Japanese, Korean, and Ukrainian.
- Fix negative battery capacity values in health tab on devices that do not (correctly) report the charge current polarity.
- Added setting to change language in app.
- 1.1.6b: reliability fixes, better workaround for Android N losing Day/Night theme state, and updated translations for many languages.
Survey
Can you take a few minutes and fill in this survey to help us improve AccuBattery?
Translations for AccuBattery
We're looking for translators to localize AccuBattery for more languages. If you're interested in helping us,
please let us know at
support@accubatteryapp.com.
What's new in AccuBattery 1.1.5
- Tranlations for: Hungarian, Russian, Spanish, and Turkish.
- Translator credits in settings / about menu.
- Translations for several more settings.
- Fix incorrect / inconsistent colors when re-opening the app.
- Fix incorrect percentages shown in charge alarm tutorial screen.
What's new in AccuBattery 1.1.4
- Improved text formatting in discharging screen.
- New pro feature: text only icon style for notification.
- Added new translations: Arabic, Italian, Portuguese (Portugal) and Portuguese (Brazil).
- Optimized app for lower CPU and power consumption.
- Disconnect from Google Play Services whenever possible to lower memory consumption.
- Fixed app not starting on boot.
What's new in AccuBattery 1.1.3
- New setting: quiet hours for charge alarm
- New setting: show on secure lock screen
- Added verification of app usage events, sometimes Android forgets to note that an app went to the background.
- Workaround ANR issue with Google Play services initialization.
- Added message if app usage stats permission screen cannot be opened automatically, some ROMs don't have it.
What's new in AccuBattery 1.1.2
-
Added data source validation - on upgrade to Nougat, all /sys/class/power_supply data sources become invalid due
to stricter SELinux policies. Please restart calibration after the OS upgrade.
-
Added notification priority option. Set to minimum to hide the status bar icon. The notification itself cannot
be hidden completely unfortunately, it must be shown during data gathering due to Android's design.
-
Added settings to toggle charge alarm sound and vibration.
-
Fixed notification sound not working - the sound file was deleted by the optimizer, disabled resource
optimization for now.
-
Added better hint on how to adjust or disable the charge alarm.
-
Translated more of the app in Dutch and prepare for translations into more languages.
What's new in AccuBattery 1.1.1
- Fixed calibration not applied without restart error.
- Added more logic for detecting battery capacity.
- Added restore purchases button in purchases and settings screen to query Google Play again for products.
- Added workarounds for weird ROMs.
- 1.1.1a: patched bug @ restore instance state.
- 1.1.1b: properly fixed calibration not applied without restart error.
What's new in AccuBattery 1.1.0
Since our launch one week ago, we've been working hard to improve device compatibility and to add some new features.
Here is what's new in 1.1:
New history page
The new design didn't make it into the release last week, but here it is. It's less cramped than the previous layout
and there's a better visual indicator of how much of your battery was charged / used per session.
Dark and AMOLED dark theme [pro]
And for our pro users - the first of many customization options, dark and AMOLED dark theme for the ones that prefer
a white on black color scheme. You can find it in the new settings menu.
Android 7.0 notes
Android 7.0 Nougat introduces a lot of new security features, like process privacy (cannot see other running
apps and processes) and more strict SELinux profiles. This means that the process CPU usage overlay won't work
anymore and that any battery driver workaround / hack won't be available when you update to Nougat. This doesn't
affect any current device, but as even Nexus devices (ahem 5x) sometimes fail to implement the official
BatteryManager API correctly, AccuBattery might not work as well as it does now when you update to Android 7.0.
We've filed a feature request for making an exception for /sys/class/power_supply at
https://code.google.com/p/android/issues/detail?id=208085 so it remains accessible to apps, please star it
if you think it's important.
As for reading /proc/ (which tools like "top" also uses), this is an intentional change in 7.0, we'll try to make it
work again when we start adding root only features. System apps are granted this permission, so you can also fix it
yourself by installing AccuBattery as a system app.
Device compatibility
We kinda hoped that with an official API since Lollipop (5.0, June 2014), supporting all devices shouldn't be too
hard, but it seems like we're wrong. Most of them have minor data issues (wrong sign, wrong magnitude), but
apparently quite a few didn't work at all even with all the workarounds we've already added. Since the 1.0 release,
we've released a few patches adding a bunch of devices each time (lots of Huawei, HTC, Motorola devices, the Nexus 7
2013), but we're not done yet. If current measurement in mA doesn't work for you, let us know at
support@accubatteryapp.com.
Some devices though are unfixable due to data issues, the biggest group is the Samsung Galaxy S4 and S5, and all
Samsung phones and tablets released during that generation. Their charge controller only return power usage / charge
current during charging, and the numbers are so suspiciously round (exactly 350mA) that it seems like a hardcoded
value and not a measurement. We've blacklisted them as incompatible for now...
There's also better news, in this release we've added support for devices with MediaTek chipsets where the battery
driver / firmware fails to implement official BatteryManager API or the semi-official "battery/current_now" API.
It also contains a workaround for an integer underflow issue in the driver, it reports 43 mega-amperes (4294959310
* 10^-1 mA) when it means a negative number (-768.6mA). This affects devices from BLU and other off-brand devices.
We also disabled an optimization for keeping the file handle open and using lseek(0), it saves CPU cycles, but some
devices can return 0 or no data if the file handle becomes invalid for any reason without raising an IO error. Ugh
chipset drivers. This should help Nexus 5X users.