[LG Nitro HD] mpsantiago:
Better Battery Life Tips

I've been using (and tweaking) Android devices since the original HTC Dream (aka G1, Android Dev Phone) was released, and I've had devices that are both good and bad at power consumption. In this thread I will share what I have learned and invite you to share what you have learned as well so that we can all get the most out of our devices.

Please note that I like to keep my smartphones "smart" and don't like to be manually toggling things on and off throughout the day. If you like to geek out 24x7 you can manually turn on/off every feature of your phone every time you use it to conserve juice... that's not me though!

Here we go...

-Consider a Different Browser

It seems like Opera Mobile and Mini are the kings of battery conservation. I tried Dolphin, Boat, Firefox, Chrome, the stock browser, and about 10 others... I didn't see significant differences in battery with any of them, but with Opera I noticed the difference. It makes sense since Opera renders the pages and optimizes the images remotely and then sends the bare minimum amount of data to your device to display the page.

-Location, Location, Location

Android's location related services can be a big drain. There are 3 different location settings you need to know about.

1) Location Access (Settings -> Location access): For maximum savings, you can turn off "Access to my location". However, there are many apps that make good use of your location. If you don't want to cripple them, leave this option turned on but at the very least uncheck "GPS Satellites" to save some juice.

2) Google Apps Location Settings (Settings -> Accounts:Google -> Location settings): Allows Google apps, such as Google Maps, to access your location. Why this needs to be separate from #1 above is beyond me, but turning it on requires the above setting to be on as well. If you don't use Google Maps, Now, Plus, or any other Google services that use your location you can turn this off.

3) Location Reporting aka Latitude (Settings -> Accounts:Google -> Maps & Latitude -> Location Reporting): This is the bad one. Really bad. Wakelock and battery drain city. I don't even know why anybody would want this. Kill it with fire. Set it so that it does not update or report your location.

-Turn off stuff you don't use

This should be common knowledge by now... if you aren't using GPS, Bluetooth, or even 4G... turn them off. If you don't need instant notifications and app updates you can even turn off Auto-Sync. If you decide to do that, I recommend the Synker widget from the Play Store. It is nice and configurable so that you can sync on demand with one touch.

-ROMs and Kernels

I'm not going to go into these too much here... there's a whole development section devoted to them with tons of info. Generally you get the best life from the stock based ROMs. Liquid Nitro and HO!NO!'s v20f (+Wind kernel) are quite good. Next best is probably HO!NO!'s CM9. The CM10.1 ROMS and kernels have a bit of catching up to do at battery consumption, but they keep getting better.

-Kill Google Talk!

If you don't use this program, disable it. It is always trying to do something on the network. Even if you turn off data and wifi you can still get NetworkConnectivity wakelocks from this app trying to do its business! Killing it is the first thing I do after flashing a ROM, especially CM10.1. From home hit: Menu -> Manage Apps -> All -> Talk -> Disable.

*Some report that disabling apps through the Android OS might not stick. If this is a concern for you, download NoBloat or Titanium Backup and freeze this app. Or if you're a nerd like me, use a root file explorer and move or rename the .apk file in /system/app :)

-Kill Google+ (Plus)

Just like the above, if you don't use it, deactivate it. It also uses data and location services pretty regularly. Disable it in the same way, or use NoBloat or Titanium.

-Kill Google Now

If you don't use it, deactivate it. It uses data and location services pretty regularly. I like its features and keep it enabled on my N7, but leave it off on my phone. To turn it off, go into the Google Search app (long-touch menu/search button), hit Menu -> Settings -> Google Now. You'll see the option to disable it.

-Data-Toggling Battery Saver Apps

These are pretty controversial, almost as much as app-killers were when they were very popular. In a nutshell they turn your data connections on or off based on whether your screen is on or off. They usually will check to see if you are downloading or streaming anything before they shut off the connection. Then, they periodically turn the connection on while the screen is off so that the device can perform a sync to get emails, etc.

Should you use one? If you are running CM10/10.1/AOKP4x then YES USE ONE!! EDIT: THE LATEST VERSIONS OF QUATTRIMUS AND WIND FOR CM10.1 HAVE RESOLVED THE BATTERY DRAIN ISSUE. Use of a battery saver is no longer essential. If you still want to use one, read on...

Whether or not you use a battery saver depends on how you use your phone, and if you are willing to accept the trade-offs. These apps get their savings from maximizing deep sleep time for extended periods with zero data concerns or interruptions. If your usage habits allow the app to do its job, use it. If not, don't use it.

[What follows here is some long drawn out jibber jabber about the pros/cons of these apps. Read it if you like]

Some people love these battery saver apps and swear by them; others hate them. The reason some like them is because they get a few more hours of battery life. The reason why some people hate them is because:

1) They wake the device periodically to do their job... which negates some of the power savings you get from having them. To some people these tiny wakelocks are the most horrible thing ever... even if their impact is quite small compared to the power being saved. These people are usually the ones who live and die by their BBS logs. I'll admit, I was one of those people :)

2) Syncs are delayed, so messages and notifications do not arrive instantly but when either of the following conditions are met-

a) The screen gets turned on (which triggers data on and autosync)

b) The program hits a scheduled time trigger (usually at user selectable intervals)

3) There's a small lag while data connects when the screen gets turned on. If the screen gets turned on very frequently the constant on/off/syncing can actually hurt the battery more than it helps.

But, if you are ok with the delayed syncs and you set up the sync intervals long enough apart you WILL see a gain in battery life. Your phone will sleep much more soundly as well. With one of these apps my Nitro HD on CM10.1 can sleep all night and will only lose maybe a percent or two.

*Note that these will NOT help you at all when the screen is on, which is a bummer because the Nitro screen sucks down a LOT of power. Also, your usage patterns may make them ineffective for you... in which case you are probably better off without them.

Personally I get about an hour or 2 of extra life if I use one, but it's a trade-off since I lose instant notifications and a there's a slight delay while it reconnects to the network when the screen gets turned on. And the more you turn your screen on/off, the more it disconnects/reconnects/syncs... meaning it is using a bit MORE power than usual for those seconds.

[/jibberjabber]

The following are my favorite data-toggling battery-saver apps. All of them have "free" versions and more advanced "pro/prime/advanced/whatever" paid-for versions. These are not the only ones out there; feel free to report back on ones you prefer. If you find one that you really like, I suggest buying the pro version not only for the additional customization they offer, but to support the devs for a job well done.

1) DS Battery Saver

- Super easy to configure and since it kills background tasks before sleeping it puts your device into a nice deep sleep. Also combines the feature of CPU Sleeper if you are rooted... it'll shut off a CPU core when sleeping.

2) Green Power

- Works really well. The interface is simple and well laid out. I used it for years before I discovered DSBS.

3) Juice Defender

- Another decent app, similar to Green Power. I personally preferred the options and the interface of GP better, but you may not.

4) CleverConnectivity +++Battery

- The interface is a bit weak, and I had problems with the full data on/off features working on my P930 w/CM10.1... BUT this program has one very cool feature- it has an option for dropping the connection speed down to 2G/EDGE when the screen is off instead of disabling it completely. This allows syncs to still occur while still saving some power in 2G. I've even streamed Pandora on 2G, so in theory you could do stuff like that too. This feature worked fine on my P930 dispite the normal data on/off failing intermittently. There is a moment of zero data while it toggles between 2G/3G. I think this app might be awesome when development advances some more.

-Underclocking (rooted users)

Capping your max CPU frequency at a lower limit can save power. Quite honestly, for 99% of my daily use I can't tell the difference between the CPU clocked at 1.2ghz and 1.8ghz except that at 1.8ghz my battery bar laughs at me and gives me a wedgie. On custom ROMs there is often a built-in method to set the CPU clock frequency (Settings -> Performance -> Processor). On stock-based ROMs you'll need a 3rd party app like Kernel Tuner, SetCPU, or any of the other 50 options in the Play Store. You can usually safely set your minimum frequency to 192mhz, but some phone/ROM/kernel/voltage combos will cause stability or lag issues with doing this. YMMV.

*If you are using a CPU controlling app like SetCPU that allows for profiles, you might be tempted to set the screen-off frequencies to the absolute lowest setting of 192/192... be careful! This setting could end up costing more power consumption because the CPU has to work for a much longer time to handle the tasks at hand at such a low clock speed. If it was allowed to ramp up a bit the task would be done more quickly and efficiently. Honestly I gave up on setting screen-off profiles. I just use governors based on smartass which have their own screen-off settings integrated. Less adjustments needed, similar results. This leads us to...

-Changing governors (rooted users with custom kernel)

There's about 50 different governors floating around out there. If you don't know what a governor is or what each one does, read this thread: http://xdaforums.com/showthread.php?t=1736168

In short: Any governor that is based on smartass, ondemand or interactive is going to be pretty light on battery, and you may not be able to tell the difference between them in normal use. I like smartassv2 and badass, which are both based on smartass. Conservative may sound the most battery friendly, but usually ondemand does better and is less laggy.

Try some out. Have fun with it. Eventually you'll want to start tinkering with the I/O Scheduler... that's a topic for another thread. There's not much battery life to be gained there anyway.

-Undervolting (rooted users with custom kernel)

WARNING: This can cause instability if done improperly. MAKE A CWM BACKUP BEFORE TINKERING WITH UNDERVOLTING!!! I've never seen *drastic* gains on any device, but you do get a little bit more life, and every little bit helps, right?

So if you want to do it, read this: http://bigfatreality.blogspot.com/2012/03/guide-to-undervolt-android-safely.html and then proceed with caution.

Generally you can aggressively undervolt at lower frequencies,

but be careful at higher frequencies because your device needs more power under load and will not like it if it can't get it.

If you're a car guy this is like running too lean of a fuel mixture :)

Kernel Tuner and IncrediControl have nice GUIs for fiddling with voltages. Remember, adjust in tiny increments, followed by thorough testing! If you get a crash or reboot then you've gone too far. DO NOT ENABLE "SET ON BOOT" UNTIL YOU ARE SURE YOU'VE GOT STABLE VOLTAGES!!!

-Screen dimming

Screen backlights use lots of power. This ain't no AMOLED where you can save power by using dark backgrounds- LCDs light up the entire display regardless of what is on them.

I suggest turning off auto-adjust and set your brightness at a level that is just bright enough to be comfortable. I keep mind around 30-40%. Auto-adjust periodically polls the sensor to get light data, and uses a small bit of power to do it each time.

Turn on the 'Status Bar Brightness Control' if your ROM supports it so that you can easily swipe your finger along the top of the screen to brighten or dim the display on the fly. In CM9/10(.1) this option is under Menu -> Settings -> System -> Status Bar -> Brightness Control.

If you MUST use the auto-adjust, consider adjusting the levels that it uses. Make them as dim as is comfortable for you. For stock-based ROMs you'll need a third party app like this: https://play.google.com/store/apps/...wsMSwyLDEsImNvbS52aXRvY2Fzc2lzaS5sdXhsaXRlIl0.

For CM/AOKP based ROMs this can be done from the Display -> Brightness sub-menu of your device's settings area. CM10.1 has an excellent and simple adjustment interface.

-Build.prop Tweaks (rooted users)

You can add the tweaks below into your build.prop file that may or may not help with battery life. Download BuildProp Editor from the Play Store and add them. They seem to help a bit, but it could be placebo effect. They certainly don't hurt anything so give them a shot and report back what you get. These seem to work with ICS and JB:

ro.config.hw_fast_dormancy=1

ro.ril.fast.dormancy.rule=0

ro.ril.disable.power.collapse=1

pm.sleep_mode=1

wifi.supplicant_scan_interval=180

net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960

net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960

net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960

net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960

net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

^ this forum keeps adding a space near the 16384... there shouldn't be any spaces. I think they get disregarded anyway if they are put in the file, so no biggy.

^some of these have presets in BuildProp Editor, some you have to enter yourself. I copy/paste them individually. Don't paste the "=" signs though. Everything before the "=" goes under "Property Name", everything after it goes under "Property Value". If you are experienced you can edit the build.prop file directly using a text editor. Just back it up first and don't screw with the permissions.

-Some other useful apps that help with battery life:

*CPU Sleeper

(root users)- Shuts off all but one cpu core when the screen is off. This probably isn't required with a good kernel and governor setup (and a stable phone that sleeps well), and if you are running DS Battery Saver this feature is built-in to it. It uses barely any resources whatsoever, so give it a shot.

*Greenify

(root users)- This essentially freezes selected apps when they are not in use. They cannot do background tasks or wake your phone when they are not active. When you attempt to open one of the apps it instantly thaws them for use. After you are done with them it freezes them back up. It is quite brilliant really! It eliminates a lot of wakelocks and battery drain from apps trying to update, gather location data, etc. Use with caution though- don't greenify apps that you actually need to have a data flow from or ones that you use widgets for.

*RootDim

(root users) - You know how when you are using your phone in bed at night and the screen is just too bright, even on the dimmest setting? This app lets you go even dimmer. Less brightness means less power, so it will reduce battery usage in the process.

-Apps that help diagnose battery drains

*Better Battery Stats

- Good for discovering the cause of battery-draining wakelocks. Just uninstall it when you're done using it to diagnose- otherwise it is constantly doing its thing which is not going to help battery life any!

*OS Monitor

- See if your CPU is settling down like it should and see what is keeping it busy. It also has a ton of other advanced options and features.

...there's too many apps to list here! Share the ones you like :) I'll add more later.

-Adjust your advanced Wifi settings

Go to Settings -> Wifi, then hit Menu -> Advanced

Most people agree that Network Notification should be UNCHECKED, Keep WiFi during sleep should be 'Always', and 'Avoid poor connections' and 'WiFi optimization' should be CHECKED.

If you have a noisy wifi router (some Netgears are guilty) that keeps waking your device from sleep with wifi packets you may get better results if you change Wifi During Sleep to 'Never' or 'Only when plugged in'.

-Watch the reboots!

Every time your phone reboots, Android checks the SD card for errors and then runs the Media Scanner to take inventory of all media files. Both processes consume power, so try to limit unplugged reboots. The more files on your SD card, the longer Media Scanner has to work, so get rid of unnecessary files cluttering up your card. You may have some luck using .nomedia files to tag directories to be skipped during scanning. You can also use an app like this to disable the automatic Media Scanning Service. It also lets you scan on demand. Caution- If you don't ever do a scan, then new pictures won't appear in your gallery nor will new music appear in your player.

I'm sure I'll think of some things later that I have forgotten, and I'll discover new things... I'll update this when I do.

Please share your findings so that this can be the best battery saving thread... In the world.