[Mega-Guide][14/01/14] Get a (Battery) Life! Every possible way to save your battery.
Android Battery Life, a pretty successful website has been made in order to help android users achieve better battery life while still using many functions and apps. All of these guides are available, with screenshots, at www.androidbatterylife.com
It's my 2000th post here on xda, and I wanna make it special
If you go to Settings>Battery, you’ll clearly see that “Screen” has the biggest bar of about 40-60%. The bigger the bar (and the number), the bigger the battery drain. We’ll try to lower that bar as much as we can.
First of all, to reduce the battery drain caused by the display, click on the Screen button, then click display (it’s the same as going to Settings>Display), then click on brightness, untick Auto-Brightness if it’s ticked and lower the brightness to minimum.
Explanation: A brighter screen means the screen is emitting more light, which consumes more battery. So lowering the brightness makes the screen use less battery juice.
Second thing to do to reduce the “Screen” battery consumption is having a Static Wallpaper, and not a Live Wallpaper. So go to Settings>Display and click Wallpaper, and pick any wallpaper you want except the wallpapers from the Live Wallpapers list.
Explanation: Live Wallpapers use the CPU (and possibly the GPU) to make the image move. So the phone is using the CPU to process these images, which means more battery sucking, and we don’t want that.
Again, go to Settings>Display, and click Sleep (aka screen timeout) and set that to something less than 1 minute. I personally use 30 seconds and it’s good enough for day-to-day use.
Explanation: The more time the screen is on, the higher is the battery usage, because the screen won’t be using the battery when it’s off…
Fourth thing to do is disable the Framework Animations. Framework Animations are the animations you see when you switch from an app to another app, or when you press home, or back, or recent apps buttons. To turn those off go to Settings>Developer options (if you don’t see that, then go to About Phone and press the Build Number button 8 times, then go back), scroll down to drawing section, and set Window animation scale, Transition animation scale, and Animator duration scale to “Animation off”.
Explanation: Framework Animations use the GPU (and possibly the CPU) to draw the frames of the animations, so by turning them off, you’re pulling some load off of the GPU and CPU to make the battery life better.
Believe it or not, widgets can greatly affect battery life, it's because they update themselves regularly. This can wake up the phone a lot of times. So the best way to prevent this is to remove all the widgets on the homescreen.... and maybe keep the ones that don't update themselves much.
Remember, everything that’s shown on-screen that isn't app related is registered as “Screen” in the battery window. So to lower that, you have to compromise every little thing that’s shown on the screen.
One major issue you may face with Google Services is the location battery drain. This was born in Android 4.2.2 and can be easily fixed by just unticking a button.
The real problem is, in one word, Location.
Google Services such as Gmail, Now, Maps, and Google+ constantly polls your location using your wifi (if you're connected) or your cell network. And every time Google Services poll your location, your battery gets affected. So what's the solution to that?
Further research by Galaxo60 proved that going to Settings - Location Settings (or Location on android 4.4), and unticking WiFi & mobile network location (or setting the Mode to Device Only) prevents Google Services from polling your location, thus preventing the battery drain
So disable the WiFi & mobile network location option, and actually tick and turn on GPS satellites. (It's just like setting the Mode to Device only on KitKat)
But why do that? Why should I turn on GPS?
Picture taken using Android 4.4 KitKat
Google Services don't use your GPS to poll your location, so your GPS actually stays offline most of the time; and the reason you should enable GPS is to "Let apps that have asked your permission use your location information".
Some devices have AMOLED or SAMOLED (Super-AMOLED) screens, like the Samsung Galaxy SII and the Motorola Moto X. The following method is helpful for these kind of devices.
You may check what's your screen type to see if it's AMOLED or not. If it's not, this method won't help you achieve better battery life, but may help your eyes
AMOLED is a screen type designed to get the highest contrast a screen can get to. Black pixels turn themselves off, unlike the IPS screens that always require a backlight. So AMOLED has less battery consumption than most screen types.
What to do?
Try turning everything as dark as you can. So make the wallpaper have as much black areas as possible, and use dark apps. The best way to convert most apps to dark apps is downloading Team Black Out Updater. From that app, download the apps you want to make them darker and install them. Some apps require having root because you have to flash them via recovery.
This consumes less power
This consumes more power
By turning most things dark/black, more pixels in the AMOLED screen will turn off, thus lowering the power consumption caused by the screen.
Remember, this is only for AMOLED screens, IPS/LCD screens will still consume the same power from the battery.
If you have any Task killer, or Task manager apps installed, either disable them if you can, or uninstall them.
Android learns the way you use it. It knows which apps you like best and pre-opens them and puts them in RAM so that they get opened faster. Android keeps a log of how much time you've been spending on an app.
By using a Task killer, you're breaking this log, thus preventing Android from learning how you use it. The results?
Android will be loading every app you open from scratch.
Android will get slower.
Android will be wasting battery.
So uninstall those "battery killers" and let Android do the work instead.
Yes... ART... Not art, but ART... It's an Android 4.4 KitKat specific thing...
What is ART?
ART is a runtime replacement of the Dalvik runtime. It's the way the phone handles apps. Dalvik used to install apps fast, and conserve some space after the installation, but it compiles the app as soon as you open it, and runs it on a Virtual Machine (if it's not a native app).
ART pre-compiles the app on installation, which takes up a little bit (teeny tiny) more space, but makes apps faster to open, and over all performance better.
Switch to ART
Go to settings, developer options, and tap on select runtime, then use ART and reboot. It'll take some time to finish booting the first time it's running ART, but when it's done optimizing apps it'll be worth the wait.
ART demands less CPU power to process things over time. It pre-compiles apps just once so that when you open an app, the CPU won't work as much to compile the app just-in-time (JIT). So, less CPU work, less battery consumption, more battery juice, and more performance!
I can't put direct links to chargers, so go HERE to the relevant page and see the chargers from there.
Is a fast charger better? or is it the slow one?
Use the Right Charger
A slow charger relaxes the battery, making it last longer when it fully charges. So, for a better battery life, use a slow charger at night when you're sleeping, or when you don't need to charge it quickly.
I recommend using this charger*: it's small, looks good, and it's slow with a 1A power output... Perfect for what we want.
If you're in a hurry, and your phone's battery has little juice left, you may want to charge it pretty quickly. In this situation, you won't care about the relaxation of the battery, so you should use a fast charger.
Something like this charger* should help a lot in achieving what you need. It also has a second slot it you have to charge another device. Use the A slot to charge faster with its 2.4A power.
You can also use a car charger if your phone's battery suddenly dies while you're not home.
This car charger* is perfect because it's fast enough to revive your phone and gives you enough juice to save the day.
So be wise and use the right charger for the right situation, so that you can achieve the best battery life possible.
Sometimes, your battery will die, whatever you do...
Have a Spare Battery
In that case, if you have a phone with removable battery like any current Samsung device, equipping another spare battery could be very useful. If your battery is almost dead, just turn off the phone, open it up, and put your spare battery in. Voila, insta-charge
Have a Battery Bank
One great gadget to own with your phone is a backup power bank. This portable power bank (see link of the page HERE) is awesome because it's universal, and has a 13000 mAh capacity which can charge your phone about 5 times!
So if you don't want to scratch your head to do tweaks, you can use spare batteries or power banks to save the day
We see a lot of users that use Android the wrong way. We see people setting their screen timeout to 30 minutes because "whenever I want to chat, the screen keeps turning off". We also see a lot of users, even devs and power users, constantly pressing the back button to go home.
Know How to Use Android
If you have the screen problem where whenever you want to interact with the screen, it turns off, don't turn the screen timeout up. Turn it down, so that the screen turns off sooner, and saves battery.
And to go home, there's a button for that for a reason! Use it! Pressing back over and over again closes the app, and clears it from your device's RAM. When you re-open the app, it will open from scratch, so your phone will be slower, and will consume more battery since it's using more CPU power.
So use the home button, try to keep as much apps in RAM as possible, stop "clearing all" apps from RAM, and save battery!
RAM, either full or empty, consumes the same amount of electricity, unlike RAM in computers.
The CPU copies data from storage to RAM and then runs the app. If the app is already in RAM, the CPU won't reopen it, it'll directly use it.
So making the RAM full of opened apps helps the CPU. The phone becomes faster, and the need of electricity running through the CPU to open the app is now nonexistent.
Also, Android keeps a log of how you use your phone and pre-opens the apps you need. If you constantly kill and clear out apps, you're breaking that log. So when clearing apps, you're not letting Android learn the way you use it. This results in a slower experience, and more battery drain.
When in low signal places, it's a hassle trying to find that precious signal...
Turn on Airplane Mode
Whenever you feel that the mobile signal is getting too low, turn on airplane mode if you don't need to call someone. Go to settings, More, and check Airplane mode to turn it on.
The phone wants you to stay connected to a cell tower whenever possible. On low signal places, the phone will try harder to find a tower to connect to, and that drain a lot of battery. So turning on Airplane Mode makes your phone rest and not search for any tower, thus saving battery.
It's called a battery cycle, not a quarter of it :P
Charge it correctly
Don't let your battery go down to 0%, charge it while it's about 50%.
No matter what charger you're using (either a slow or a fast one), the battery is greatly affected by the frequency of the charges. Our phones have different batteries than past devices had, so battery life cycles are a bit different as we used to think.
Widgets update themselves a lot... but there's a solution for that.
Use Manual Refreshed Widgets
Check every widget you have, and see whether you can set it to refresh whenever you click on it, or do something to refresh it.
Auto-refreshing widgets make the phone wake up a lot and do some processing which can use the battery. By making them manual, you are controlling the frequency of the refreshes, and you are forbidding the widgets to refresh while the phone is asleep.
Battery stats is basically a file in Android that stores the battery history. The longer the battery stats is, the more accurate the battery percentage reading is.
Why not wipe it?
Wiping battery stats is like tinkering with the fuel gauge in your car: you won't get more gas if you glue the gauge's needle at Full.
The problem is that wiping battery stats will give you wrong readings. Users thought that wiping it will make the battery "hold the charge better". This is wrong because doing so will break Android's battery reading, and that's why it will show you a higher percentage for a longer time.
Wow! A 2500 mAh battery for my Galaxy Ace! And the same size of the original!
The problem here is that some users order a battery with a higher mAh value for a very low price. They get their 2500 mAh battery and put it in the phone. The device would last a lot longer now before its battery dies.
Now let's not forget why they ordered such a battery. It's most probably because their old battery is just exhausted and isn't lasting much. So no matter what battery they get, they'll notice a big difference in battery life.
Usually these cheap batteries are advertised as 2500 mAh, while they're actually a lot less.
So if you want to replace your old battery, try getting an original one.
Thanks to all of you who gave me more ideas on how to achieve better battery life
The CPU is the biggest battery consumer, and it needs voltage from the battery. If we decrease that, we'll gain some battery life.
Undervolt your CPU
Assuming you have TricksterMOD, launch it and go to the specific window. Scroll down to CPU Voltages, then click Profile, and save the Profile as Default.
Now hit the minus/plus button right above where it now says "Default". When the window pops up, hit the minus button JUST ONCE. Every time you hit the minus button you undervolt by 12500 mV, and we'll call that a "step"; so undervolt by one step.
Hit the check mark button to apply.
Every time you undervolt by a step, the CPU will demand less and less from the battery to run. This improves the battery by just a bit. It's mainly to avoid temperature throttling, but it also improves battery.
Whether or not you have an SD card, this helps...
Increase readahead Value
Go to TricksterMOD, swipe to general, and click Read Ahead Buffer Size under the I/O Control section. Set it to 3072 (Value is in KB, so it's 3MB)
The bigger the read-ahead buffer is, the better the SDcard can predict what command would come next. It prepares itself to do a command before it's even issued. This gives you better performance, and a potential increase of battery life because generating 3MB is nothing compared to the performance benefit.
Check out this Spreadsheet from broodplank.net for more info on the benefits of read-ahead.
One major battery drainer is the CPU, so if you don't really use the phone much, and you don't care about games, you should probably consider underclocking it to get that precious juice back.
You must be rooted and have a kernel that supports overclocking. You may find out how to root by doing a little online research because every device has its own rooting method (for example, I wrote a fully detailed guide on how to root your Nexus 4).
Warning: Underclocking the CPU too much could result in an SOD (Sleep Of Death) which makes the phone sleep and not turn on without pulling the battery.
First of all, we need a controller, or a daemon to control the CPU's clock speeds. So go ahead and download TricksterMOD from the Play store, we'll be using that to underclock the CPU.
Now enter it and grant su permissions, swipe from left to right and select the general menu, scroll down to CPU frequency control and tick frequency lock, then click on the number next to the min button, and choose the smallest number in the list.
Then, click on the number next to the max button and choose something a little less than you CPU's stock frequency... on a Nexus 4, the stock frequency is 1.5 GHz (or 1512000) so I picked 1.2 GHz (or 1242000).
Now swipe down to CPU Governor Control and click the button next to the Governor Button, and select conservative. If you don't have conservative in the list, pick ondemand. Now hit the check mark button at the top of the app to apply the settings.
We are lowering the CPU's clock speed which makes it a little slower, but consumes much less battery. We are also changing the way the frequencies are handled: with the conservative governor, the CPU will prefer staying at lower frequencies.
We're not done yet, swipe again from left to right and click specific, then look for MP Decision. If it's there, turn it off, if not then it's probably already off. Hit the check mark to apply the settings.
MP Decision sees how you use the phone, and clocks the CPU relatively (if you're just chatting, it'll underclock. If you're playing games, it'll clock it to normal). We don't want that since we want to force underclock the CPU, so we turn this off to prevent it from playing with our settings.
On that same screen, scroll down to GPU max frequency, and lower that just one step below the default clockspeed (400 MHz being the stock frequency on the Nexus 4, so let's set that to 320 MHz). Don't forget to hit the check mark button to apply the changes you've made.
The GPU draws almost everything you see on the screen, so it's always active. Lowering its frequency has a big positive impact on battery life, which is what we want.
So that's basically it for the underclocking part, have fun playing with different governors and frequencies to get that precious Performance/Battery life point.
Detecting Wakelocks VS Installing Battery Saving AppsLINK
The most cliche thing to do when your battery doesn't last a day is install a battery saver app. However, I don't do it myself. I prefer detecting wakelocks in order to reduce battery consumption.
What is a Wakelock?
A wakelock is the moment where you turn the screen off, but the CPU stays awake doing something. It is the phenomenon when the CPU isn't asleep when the screen is off and it shouldn't be doing anything. Wakelocks usually drain battery because the CPU is kept awake and working while it should be resting.
Detecting a Wakelock
To detect a wakelock, install Wakelock Detector. Charge your phone, then unplug it and leave it with the screen turned off for about an hour or two. Then open the app and check the list of wakelocks.
The bigger the red bar on the top, the longer the wakelocks are. The top app is the number 1 culprit, and should be removed. If the top app is Google Services, it's probably the Location issue. If it's another app, check if there are syncing issues, and try making the sync interval a little longer, or turn off its notifications.
We're trying to minimize the wakelocks caused by some apps to prevent the phone from being awakened. By doing that, we let the phone go to deep sleep faster, and longer. So, more battery life for us!
Another way to detect wakelocks (a little more pro)
Download and install betterbatterystats. It's basically a more pro version of Wakelock Detector. It also needs root for some functionality to work, but it gives you a more in-depth info about the wakelocks, CPU states, and network usage.
msm_hsic_host is the 3G... not to worry about that
So that's it for the wakelocks! Keep testing with different app configurations to achieve the best deep sleep mode for your phone, and get the most out of your battery.
Undervolting once is fine. Undervolting twice is better. But undervolting a million times isn't good... So let's undervolt as much as we can.
Download Stability Test, run it, and hit the Scaling Stability Test button (root will be needed). Wait about 8 to 10 minutes while it's doing the process. If it doesn't crash, stop it by pressing the back button. Your phone is stable, you can undervolt even more.
So go to TricksterMOD and undervolt another step (remember to save a profile indicating how many steps you've undervolted). Then test again using stability test....
Keep doing that until something bad happens like the app crashing, or Android itself rebooting. When it does crash, "overvolt" back one step. At this point your CPU is running good while on the lowest voltage.
Every time we undervolt by a step, we test the stability of the CPU so it doesn't crash. When it crashes, we overvolt back to the last voltage set that was stable, so that we get the lowest voltages our CPU can handle without going crazy, and thus, getting that slight push of the battery life.
I like using Screebl to prevent screen turning off and on unnecessarily. And use One Power Guard by onexuan. It really lessens the drain over night. I use Condi to automatically disable mobile data when connected to wifi at home as well.
very great guide! Just note something for people with HTC Sense. If you use the weather clock with current sensor, setting the location to GPS only will disable the location service (even if it's seems on, the widget will say it's off since it doesn't want to use the GPS). Because of that, you loose that feature if you do that.
Um, there's a problem with this guide. Instead of underclocking, overclock the processor. The faster the processor, the faster it gets jobs done, the faster it can go to sleep. These reduces long wakelocks and in general improves battery life.
I used to think the same way, but thinking that way is false.
My popular projects on GitHub
Universal Android Toolkit is now in BETA, JDroidLib is released!
Um, there's a problem with this guide. Instead of underclocking, overclock the processor. The faster the processor, the faster it gets jobs done, the faster it can go to sleep. These reduces long wakelocks and in general battery life.
I used to think the same way, but thinking that way is false.
So you're saying that it's better not to underclock and just use default values?
Any sufficiently advanced bug is indistinguishable from a feature.
About a week ago, our fantastic writer and my esteemed colleague Tom embarked on a mission to learnthe vast and … more
14 Sep 2014
By Will Verduzco
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?