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

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

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 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.7

What's new in AccuBattery 1.1.9

Fixes and improvements

What's new in AccuBattery 1.1.8

Bug fixes

Other changes

What's new in AccuBattery 1.1.7

What's new in AccuBattery 1.1.6

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

What's new in AccuBattery 1.1.4

What's new in AccuBattery 1.1.3

What's new in AccuBattery 1.1.2

What's new in AccuBattery 1.1.1

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.