One of my favorite applications is called BetterBatteryStats and it helps you to monitor exactly what apps are using your battery.
Note – This can now be installed without root access if you follow this guide linked here.
Why You Need Root
When Google released Android 4.4 KitKat, they hid a lot of the battery life stats that people used to monitor their battery life. Before KitKat, the BetterBatterStats application didn’t require root access in order to function properly. Google renamed and restricted the battery stats permission to only system level applications and services once KitKat was released. This wasn’t the way it was before, but Google felt it was better(probably to protect users from nefarious applications) to do things this way. So from now on, you will need root access in order to monitor battery life usage in a way that is actually meaningful.
Smartphones(and tablets too) are very complex devices on the hardware front, and even more complex on the software side too. Your device is probably doing more while it’s in your pocket than you realize. As long as you can get through a full day’s worth of usage, then this shouldn’t be a big deal for you. I mean, that is why they call these devices smartphones. They’re supposed to do all sorts of things from counting steps to notifying you of important events. But what happens when an application behaves badly? What happens when the developer of an application didn’t code their app or game properly and it causes your device to stay ‘awake’ all the time.
See, your smartphone is supposed to go into a ‘deep sleep’ phase when you lock the device. This deep sleep mode is when there are very, very few things happening with your device. You’ll still receive phone calls and you’ll still receive notifications, but applications and games shouldn’t be running in the background while your device is in this deep sleep mode. When they do, this will eat up a ton of battery over just a few hours. If you’ve ever woke up in the morning to find out you’ve lost 10% – 20% of your battery, then that is most likely what happened. An application or game didn’t go into deep sleep mode and it kept your phone ‘awake’ all night.
How to Install BetterBatteryStats
- Download and Install BetterBatteryStats
- Launch the BetterBatteryStats Application
- Tap on the Install as System App Button at the Top
- Grant Root Access to BetterBatteryStats When Prompted
- Reboot Your Smartphone or Tablet
- From Here, You May Need to Update the App via the Google Play Store
How to Use BetterBatteryStats
After you follow the instructions above, you’ll want to use your phone like you normally would. During this time, BetterBatteryStats is collecting information and stats about what is going on with your smartphone or tablet. You can’t just install the application and see what happened with your phone an hour ago. The application has to be installed and the battery stats have to be collected while you experience the battery life issue. This is why installing the application is one of the first things I do after I wipe/root my devices. I just like to have it on my devices as quickly as possible so I can refer to it when/if something goes wrong.
Now, there are a couple of ways you can monitor things, but the less data you have to wade through the better. So, if you’re having trouble with your device losing battery while you are at work or school, then tap on the 3-dot menu at the top right and set a custom reference point right before you leave the house. Alternatively, if you are having trouble with batter life while you are sleeping, then set the custom reference point right before you lay down for the night. This way, at the end of the day or the start of the next morning, you can second drop down menu(the one on the left) and set it to custom when you wake up.
This will only display stats that have been collected since you created that custom reference point. Other options here are Boot, Unplugged, and Charged. Selecting the Boot option will display all the stats the app has collected since the device was been booted. The Unplugged option will only display battery stats since the last time you unplugged it. And the Charged option will only display battery stats since the moment your device was charged to 100%.
Now, the top drop down menu is how you cycle through all the different types of stats the application has collected. The default option here is set to Other, and it just shows you a summary of various stats like Screen On, Phone On, WiFi On, etcetera. If you tap this drop down menu then you’ll see two options for wakelocks and I’ve found these to show what is really keeping your phone awake while the device is locked. Kernel Wakelocks will show you the various things the kernel has been doing to keep your device from going into deep sleep mode. The Partial Wakelocks will show you specific applications and services that have kept your device awake.
Sometimes it’s not easy to decipher what kept your smartphone or tablet awake at night. As in the example image above. . .NlpCollectorWakeLock doesn’t really tell me which application caused this issue. This is because services like Google Play Services is used by so many applications and services. So the true answer isn’t always cut and dry. However, you can take this term ‘NlpCollectorWakeLock’ and do a Google search to help narrow down what the culprit could be. Like I said before, there isn’t a single answer for every battery life issue out there and you’ll have to do a little investigating to find out what is going on with your device.
Sadly, this is the negative side to having such an open mobile operating system like Android. Apple makes things much easier on the user by putting major restrictions on applications and services. This can be good for users who don’t want to tinker with their phones, or who doesn’t need all the customization options that Android offers. I used an iOS device for a few years when Apple first came to market with their smartphone. It wasn’t until I started learning about Android, and all the freedom that the OS had, that I immediately made the switch to what I call the better platform.
As you can see in the image above, this is part of a screenshot that shows my phone was awake(with the screen off) for over 19 hours. This is a huge deal because again, your phone should be in deep sleep mode while the screen is off. Doing into deep sleep mode doesn’t mean you won’t receive phone calls or text messages. It just means the phone was in a low power state and it will only alert you to high priority messages(emails, phone calls, etc). There are couple of reasons why this happens and it’s usually because an application or service got stuck, or stayed on. When this happens, the device will be unable to go into this low power mode.
One of the big culprits to this issue is an application or game has continued to run in the background. I haven’t found any rhyme or reason as to why this happens, but it has happened on multiple occasions. If you’re ever playing a game, it might be in your best interest to look for an ‘exit’ or ‘close’ button in order to close out the game. Just pressing the Home button might not do this. This is sometimes the fault of the game developer and it’s sometimes the fault of the Android OS itself. I’ve seen some high profile games sit and run in the background(even at the menu screen) while the phone was locked.
Sometimes Google Play Services takes the blame for battery drain and keeping a phone or tablet awake while the device is locked. I don’t want to say that Google Play Services isn’t a battery hog, but sometimes it’s not its fault. For example, if you have an application that uses Google Play Services and it got hung while receiving some information, then you’ll still see Google Play Services appear in the wakelock list for BetterBatteryStats. Granted, sometimes it is a Google app or Google service that causes this issue, but not always. I just want to point out that while Google Play Services may appear at the top of the list, it might not actually be Google’s fault.
Google Play Services is a beast and it handles a TON of stuff for the Android OS and the applications installed on your device. It can be easy to see it appear at the top of BetterBatteryStats and the top of your regular Battery settings page and just blame Google. I just want to encourage you to try diving into the wakelock stats a little deeper before you stop investigating your battery life troubles. As mentioned earlier, there are a couple of different ways that something like this can happen and fixing it can also be done a couple of different ways. It all depends on what is causing the issue and sadly, there isn’t a one size fits all solution.
The example above isn’t a troublesome one, but it does help to illustrate my point. If there are specific applications that are appearing at the top of the wakelock page in BetterBatteryStats, then that helps you to find exactly what is causing the issue. So, for example, if the Google Fit app was causing my device to be awake for 19 hours(instead of the 8/10 seconds shown above), then we’ve narrowed down the issue to one simple application. This is the same if a game or other application is keeping your device awake for hours too. Sometimes the answer is as simple as force closing(swiping away from your Overview/Recents page) the offending application.
This might not need to be done all the time, but if you see it happening more and more, maybe that will be the best way to resolve the issue. Sometimes the hangup is a rare occurrence and you simply need to reboot the smartphone or tablet in order to fix it. This can also be a helpful solution if an application or service is keeping your device awake and you simply can’t force close it since it’s not a traditional app or service. The Bluetooth Share application is a great example here. This application handles your Bluetooth connections and while it is listed in the Settings -> Apps page, it will never show up in the Overview/Recents page.
Most people turn their computer off at night but rarely do we see people get into the habit of turning off(or at least rebooting) their smartphone or tablet. Giving a computer(because that’s all a smartphone and tablet really are, small computers) a chance to restart everything can do wonders for things like battery life, RAM management and more. It shouldn’t take more than 30 seconds to reboot your smartphone or tablet and if it helps improve your battery life by doing this once every week or two, why not do it? I do agree that something like this shouldn’t be required, but we can’t expect software(especially software as complex as Android is) to run forever without needing a simple restart.
Try Before You Buy
Now that you’ve taken the time to actually learn how to use this application, I wanted to let you know that you have the option to try out BetterBatteryStats before you buy it. I have been using the app for years and I definitely recommend you pay the money for it if you found it useful. However, before spending money on something you might not use, the developer lets members of XDA use the application for free. All you have to do is visit this page and scroll down to post number 2. This is also a great place to learn about the application and what it can do too.
If this tutorial helped you in any way, please consider donating via PayPal, Patreon, Cryptocurrency, or GoFundMe. If you can't afford to donate then sharing this on social networks such as Facebook, Twitter, XDA, forums, etc. will also help a lot. I would also appreciate suggestions for Android tips and tutorials that you would like to see in the future.