[Android Q&A, Help & Troubleshooting] BillBauman:
This post is about getting great battery life for the average, every-day user. It is not inclusive or exhaustive, so it will reference other posts. What is talked about is what I did, the user-level stuff, explained in a more user-friendly fashion than some of the more diagnostic-focused posts out there (still invaluable reading, though).

Note: I originally wrote this for the Hyperdrive ROM on GS4 thread, but I've had many requests to break it out into a separate [GUIDE] post and update it here for ease of subscribing and discussing. Also note, that therefore, this should be considered sort of Android 4.2 specific and may not apply to all versions of Android. So, here it is. I'll link the old post to here shortly.

Preface

Okay, I'm writing this because I believe that [MENTION=4600715]sbreen94[/MENTION] [MENTION=2674508]eschelon[/MENTION] [MENTION=3152067]iceandfire[/MENTION] [MENTION=3357040]Imoseyon[/MENTION] [MENTION=473262]TrevE[/MENTION] and [MENTION=4325945]ktoonsez[/MENTION] all have done awesome, awesome dev work from which I have benefited. There are SO many other devs, as well. These are some from whom I directly benefit, regularly, daily, or did at one time. If you want a name added to the list, I'll update my post. This post, though, is sort of Hyperdrive specific since [MENTION=4600715]sbreen94[/MENTION] has added a few tweaks that make it SO EASY to address some major offenders of ... sucking the life out of your battery.

Why do I mention this? Because does anyone truly think that a ROM dev or Kernel dev, compiles code, puts it on their device, runs it for days/weeks, validates it with experienced, community testers, and then releases it, all the time thinking, "well, the battery life sucks, but I'm gonna push this out anyways."??? NO! So, then, WHY does every ROM/Kernel thread have post after post, of people saying “Hey, I loaded this ROM and my battery life sucks now.” Do you REALLY think it's the ROM/Kernel?

We also have those that think they have no apps loaded, or “only 3, 4, 5, or whatever number” - so it can't POSSIBLY be an app! If you think that, then do this, Wipe your Dalvic Cache, reboot your phone, and tell me the number of apps it says Android is now optimizing. That is the number of apps you have on your phone, not the number you personally loaded. That means each one of those is a potential culprit for causing battery drain.

BTW – at one time or another, I've probably been guilty of every of the above mindsets. So, I'm not calling YOU out, if YOU are reading this and think that I am. I'm just saying, it's not the ROM, and it's not the Kernel.

Background Reading

The below two threads had everything I needed to know to get started increasing my battery life. I, probably like many reading this, had for a long time followed along, envious of screenshots of people getting those 3, 4, 5+ hours of screen time, and day+ or days of battery. After reading these threads, doing the analysis, and basically just changing some app settings, I can now get the 4-5 hours of screen and full day of battery out of my GS4. Kernel doesn't have much effect, ROM doesn't have much effect, most all of them do what they're designed to do, and do it well. Sweet.

In the next section, Real World Battery Saving, I'll explain what I did, so if you want to skip the background stuff, you can.

These two threads contain basically everything you need to know about improving battery life. They have great details about diagnostics, what's what, etc. What many threads/posts like these sometimes lack, is, the straight-forward answer of “This is what you should do after analyzing x, y, z.” That's what's in the Real World Battery Saving section of this post.

[APP][2.1+][09 Sept. - V1.14] BetterBatteryStats

[GUIDE] Wakelocks Definition and how to prevent them

Read those threads, and do some analysis, and the majority of what I've posted below you'll figure out on your own. If you just wanna jump into fixing things without the above understanding, then just go to the next section. Provided there aren't any seriously misbehaving apps on your phone, you should be able to get great results without becoming a Wakelocks, Alarms, Deep Sleep, etc., expert.

Real World Battery Saving

For those of you that don't want to read too much more about the analysis of apps, etc., to get to better battery life, here's the summary of what's in the section below:

Minimize screen brightness

Disable all Push

Disable all system sounds (Dialing keypad tone, Touch sounds, Screen lock sound, Haptic feedback)

Install Xposed Framework and use:

Greenify Donation (Experimental features)

NLPUnbounce

Greenify any app that you don’t need to notify you of things - Note: If you pay for Greenify Donation and use Xposed, you can still get alerts from any GCM-enabled app (look for the blue GCM icon next to apps in Greenify)

Greenify every Google app (except Voice and Hangouts, both of these may significantly delay or prevent proper message notification, despite being GCM-tagged in Greenify, and they seem to behave okay on their own)

Uninstall GMail (use any other client with IMAP)

Disable all GPS (enable as necessary upon use) Note: I really don't do this anymore. With apps under control with Greenify, I just leave my GPS on and let apps use it when necessary. I have noticed that GPS will stay active during Airplane mode, though, so as not to have my phone dead upon landing, I generally always turn off GPS when in the air.

Disable the autostart of almost everything, at almost any time, on an app-by-app basis. AutoStart Check delivers in spades for this function, at no charge, though, I recommend donating (as I do for all apps here, I have either donated or bought them all, Lux, Greenify, etc.). Note: With Greenify, I no longer worry as much about stopping apps/services from auto-starting. I do still use Xposed plugin BootManager to prevent certain apps from starting, mostly just to increase boot speed (or so I feel like it might). I don't use AutoStart Check at all anymore.

Continuing on with details...

Note: Required app functionality. You don't have to use these if you know another way to do it. But, to accomplish what I recommend, there are 3 key apps you absolutely must have. I'm not going to explain them all in great detail, as there are plenty of other places that go into great depth on all of them. The 3 essential apps that I use to increase battery by more than 50% are:

Lux (Pro - I'll explain why below)

Greenify

Xposed Framework

In general:

You want your phone to sleep when not in use.

You want apps to not be doing anything when you're not using them.

You want your screen to only ever be as bright as it needs to be, no brighter (including, off when you're not looking at it).

Display Brightness

Lux – Get it here Lux Auto Brightness

Thread here: [APP][2.3+] Lux Auto Brightness 1.51

Update: After posting this, and getting a lot of questions/comments that Lux doesn't really rock like I think it does, I checked it out on a phone without using the Pro version. Okay, I agree, the free version really doesn't deliver. It doesn't poll right, and you can't really set your custom lighting scenarios and lock them in correctly without using Lux Pro. Basically, if you want to save tons of battery life without a lot of constant manual intervention, you're going to have to purchase Lux.

Screen uses more battery than anything. You can do all kinds of things to address this, for me, Lux has been a (battery) life saver. It's easy, it reads the ambient light in your environment. Open its dashboard, slide the slider to the brightness that works for you at that lumen level, hold down the link button in the middle, and there you have it, locked in for those conditions. You only have to do this a few times and you now have custom lighting profiles that fit your eyes' needs under all conditions. Note, sometimes, when waking the phone in the sun, you'll have to wait a few second for Lux to activate and bring the screen up bright enough. This means that Lux is behaving extremely well and not constantly running in the background (Wakelocks) sucking up battery.

Applications

For applications, firstly, if you have an app that has Push available, disable it. Nothing keeps your phone from deep sleep like a Push-enabled application. If you can't wait 5/10/15 minutes for updates, then you can't achieve maximum battery life. Sorry, I don't make the rules of Android app-physics, I'm just sharing them with you.

In my mind, I think of applications in categories. I guess, I have 4 now.. I started with 2. Point being, there are different apps that behave differently so you treat them differently with different solutions for extending your battery life.

Category 1 Apps I want running and want notifications from them. When configured properly, they generally do not misbehave and eat my phone's battery

Category 2 Apps that I cannot seem to control, regardless of their settings, but I still want to be able to use, but getting regular or instant updates from them is not that important to me

Category 3 Apps behave without any special settings and without any Greenification. Just load them, run them, use them, don't worry about them. I haven't seen them cause any sort of bad battery drain.

Category 4 Apps are apps you DO think are vital/desirable (to you) but cannot control their battery consumption with mere settings. For those, only the developer can help you, or you have to accept the battery loss that app's notifications bring with it.

Category 1 apps, well-behaved when configured properly, along with the settings I used to make them behave well and still deliver their updates to me.

Corporate E-mail: Built-in e-mail, TW or AOSP. Disable Push for any account, use Priority settings for 15 minute interval on work days. Non-prioirty times set to 1 hour.

Maildroid: For every account, you must do this separately, under Preferences / Advanced – Connection Management, select first account, the rule (usually 1. Default), Connection Management, Wi-Fi: Close connection when I exit mailbox, GPRS, 3G: Close connection when I exit mailbox, Interval to check mail: 10 (or to your liking), Check Mail Periodically. Go back, go back in (confirm settings were kept, I've seen it not keep them and have to do this a few times, per account). Alternatively, select Let device sleep, and it will only check when you wake it up. Go back to Accounts and select your next account, do this again. You must do this for all accounts listed.

Note about all mail client: If you have more than 2 or 3 e-mail accounts, Maildroid and all other IMAP clients I have tried get moved to Category 2. Basically, they start to keep enough Wakelocks that they keep the phone from going into Deep Sleep as much as I'd like. This is a difference of 1-3% per hour at idle, but if you're looking for 4+ hours screen time, then you need to Greenify them and just check e-mail manually.

Viber: Just make sure your Wi-Fi sleep policy is set to device and not constantly on, and Viber seems to behave pretty well as far as messaging apps go, but it's probably going to make the Category 4 list, as well.

WhatsApp: This one appears to work well (better than Viber from a wakeup perspective) and not have any sort of unnecessary battery drain. I generally don't use it any more since I feel they bait-and-switched me from free to fee, but I dethawed it to check it out. If anyone sees problems with it, let me know.

Category 2 Apps. These apps were keeping my phone awake at night with nightmares, and no amount of settings changes seemed to fix the problem altogether. If you have a solution of app settings that would move these to Category 1, please let me know. When I say solution, I mean, you've done the Wakelock and Alarm analysis and they're eliminated or minimized. For these, I Greenify them all. None of these apps' updates are so important to me that I can't just check up on them when I have a moment.

Facebook: I didn't play too much with settings here, but it seems that if FB is running, it's keeping your phone awake. I Greenify it and check it manually. I'd be interested in hearing if someone knows settings that will get it to not wakelock / alarm constantly.

FB Messenger: I love the chat heads and ease of use, but it's a big-time battery offender. I keep it installed and Greenified. If I get messages, I'll see them when I open the FB app, and when I reply, FB Messenger takes over and I use it normally until the conversation is done. At some point, Greenify takes over, and FB Messenger's battery damage is contained.

Google Maps: You can't fix this thing. No amount of settings will stop it from going after your phone. I love its functionality, though, so, unlike many guides that say uninstall it, I say Greenify it.

Google Goggles: A fun one to have around sometimes, but it will also chew up battery. Just Greenify it.

Google Play Store: There are plenty of apps and Android wakeups for the Play Store. I'm not worried about missing an update notification, or whatever else it might be sending my way. Greenifying it seems to have fixed the Google Play Services Alarms issue.

Almost everything else: If it's an app that doesn't need to provide you updates, just Greenify it. Why not? One of the first things I do after loading a new ROM and getting most of the configuration stuff done, is I go into Greenify, and I add every mundane app on my phone, for example: Vonage, Adobe Reader, Airbnb, Angry Birds, APN Manager Pro, Google Authenticator, Barcode Scanner, Citibank, Craigslist, Google Drive, DroidVPN, ES Task Manager, Fast Charge, FasterGPS, Flashlight, GasBuddy, GNotes, GooManager, GPS Status, Hyatt, Lucky Patcher, Office Document Viewer, Office Suite, OpenTable, Opera Classic, PayByPhone, SoundHound, Squeezebox, Street View, etc. My list goes on... You aren't going to lose their functionality, they don't suddenly stop when in use, and you don't have to worry about them ever causing problems you weren't thinking you had to look for.

Category 3 Apps that behave, no special settings, no Greenification

Alarm Clock Xtreme: I don't use the built-in Alarm Clock. I like all the features of Xtreme, it's never failed me, and it doesn't show up in Wakelock/Alarm offenders lists in my analyses.

Google Voice: Of all the Google offenders, this isn't one of them in my experience, and I love its features.

Lux: Nuff said.

WhosCall: A caller-ID type app. I don't love it, but haven't gone looking for something better, that said, it hasn't popped up on my battery draining radar, so that's a plus.

Hangouts: While I don't care for the new Google Talk, it sure doesn't seem to be a battery offender, and I use it to chat regularly.

Category 4 Apps are anything that would have gone into Category 2, but you want them as active as possible.

Line: In Settings, Chats and Voice Calls, I turn off Receive Voice Calls. This made Line tolerable (as in, way better), but it's still a Category 4 until (if ever) its devs reduce its number of wake-up Alarms

Exchange Services: Despite Corporate E-mail being a Category 1 now, Exchange Services is still keeping my phone awake more than I'd like. Nothing I can do here, though, so I live with it.

Viber: As stated, it's not a terrible offender, but it's still on the radar for keeping my phone awake. We'll see what their “any day now” major update brings. (someone remind me to update this post if I haven't post-Viber release)

Have Your Google and Your Battery

The Xposed module NLPUnbounce is awesome. I've given it a nice test, and it seems to perform excellent. NLPUnbounce allows you to use Google services as usual, including Android Device Manager features, like Remote Locate and Remote Wipe, but not do the crazy, crippling and disabling of Google Play Services like many guides have you do. It changes the polling rate of NLP (Network Location Provider) to something VERY reasonable. I haven't modified any of its settings, and it's reduced average idle consumption from ~4-5% to ~2-3%. I tested locating my phone and ringing it, all working.

Automatically Launching Applications

Not so much needed anymore. Just make sure you Greenify. For the "big things", use Xposed BootManager module.

AutoStart Check - Get it here https://play.google.com/store/apps/details?id=ro.rbrtoanna.autostartcheck&hl=en

Fire up AutoStart Check (or any other autostart configuration app), set your view to Group by App, and expand every one of them and look at just how many different places some of these apps are set to start. Your Gallery starts with your Camera? ES File Explorer starts when you mount media or remove bad media? Facebook fires itself up just because you plugged in your phone. Google Goggles sees fit to start with every picture you take - and of course, it will then either drain your battery trying to get a GPS signal while your GPS is off, or drain your battery by getting one – fail. If you use S Health, it starts when your time zone changes – that's important. YouTube, seriously, YouTube – change accounts, mount media, connect power, every boot – you obviously need YouTube to fire up. Yeah.

A note here, read some guides on these before turning off too many system services. For example, don't disable messaging, bad idea, bad things happen. But most of this stuff, turn it off. You aren't killing your ability to use it, you're just making sure it isn't turning on all the time. If you've also Greenified well, after using any of these, they'll hibernate in the background without you having to worry.

Disable all system sounds (Dialing keypad tone, Touch sounds, Screen lock sound, Haptic feedback)

This is explained in some of the other threads, but, if you don't want to do the research, basically, the background services in Android that manage these things keep your phone awake. Turn them all off, battery life goes up.

Media Scanner

[MENTION=4600715]sbreen94[/MENTION] included in the Hyperdrive Tweaks tools a one-button solution to turning it off. If it's drainging your battery, or you just want to make sure it doesn't, go click the button. This thing is better than the Staples button!

I'm sure there's probably a more generic way of stopping/managing Media Scanner. Someone please let me know and I'll update this section!

Battery Save Apps

I used to be madly in love with 2x Battery. Others swear by JuiceDefender. I guess if you don't/won't want to take the time to optimize apps and Greenify, they might be beneficial. You know what I found, though, when I started down this path? Some of the biggest offenders of Wakelocks and keeping my phone from sleeping when it should, are these battery saving apps!!! I now get BETTER battery life WITHOUT 2x Battery!

Short thoughts on this and example concepts of what's going on...

It may sound counterinterintuitive, but it seems most of the apps are so vigilant they keep your phone awake when it could be sleeping. And the vigilance isn't so necessary when you've properly configure things to not need this sort of overactive management of things. I'd love to see 2x Battery properly manage my data connection for me, without Wakelocks, but what's to say that the app trying to sync when the data is off won't now stay awake with new Wakelocks trying to get out to the internet? There's a cascading effect of whatever approach you might choose, so try to think about that, and keep it in mind when you look at your Wakelocks and your Alarms and you do your analysis.

The End

Okay, so I think that's aobut it. I may have forgotten some things, and I know this is a long post. But, this leaves very little excuse for people to blame ROMs/Kernels, while at the same time giving you the straight-forward, real world answer to battery savings 101. Yes, there are apps and details I left out. If anyone thinks of some obvoius ones, just let me know and I'll happily update this post.

You don't have to analyze any statistics or logs to do this. The principles are sound, and you'll see a dramatic improvement in battery if you don't already get a day of usage and 3.5 to 4.5 hours of screen time on your GS4. You just make some of these relatively straight-foward, user-level, common-sense changes.

If these changes don't give you the results you'd like, then do the analysis work in the threads linked above and find out what's the real culprit. Profit, enjoy, be happy. And remember... It's not the ROM. :)