You'll need a Rooted Galaxy Nexus, with a custom ROM and a custom Kernel.
The custom ROM will give you the ability to make a deep configuration of the device in terms of options. I'm actually using Liquidsmooth v1.25, but AOKP, CM9 and SlimICS have the same options (if not more) than my actual.
Some custom Kernels will give you the ability to change the CPU frequency and voltage, kernels are the main reason of some drainings or fantastic battery life, choose wise.
The normal Galaxy Nexus battery life is about 4 hours screen time. If you are not achieving this, the main reasons could be:
1. Some apps are draining your battery due to a continuous use (no deep sleep or continuous wake ups).
2. Screen too bright.
3. Bad kernels with draining problems.
4. Weak signal connections.
This guide is wrote by me, a simple user that is sharing his own experience of the last 4 and a half months with the device. Some statements may be wrong. I'll appreciate any positive recommendations in order to improve the guide and help the rest of the community to achieve the best battery life the device can give us.
I'm using actually Liquidsmooth v1.25 and PopcornKernel, in a GSM GNex with standrad battery (1700mAh), and I'm getting this results:
Due to the big screen, this is one of the elements of the device that affects in a major way to the battery live. (Great Savings)
It has been checked that black themes have a great impact on the battery due to the fact that one black pixel does not consume any battery.
Some apps have a black theme option on them, if you choose it you will save some battery.
On the other hand the brightness is the other part in the screen that has a big impact on the battery. In a logic way, less the brightness more the battery life. (Greatest Savings)
Now the latest ROM's have a new amazing feature, we can change the interval the sensor works to achieve the ambient light, reduce the brightness minimum value (that's by defect way too high in low light conditions), and customize your prefered light levels (that are too way too high in default configuration).
By reducing the sample interval sensor a bit and reducing the minimum value a lot we can achieved abetter battery life in a great manner.
Also adjusting the light sensor levels to a more reliable one's that are by far lower than the default one's we'll achieved a more optimize system that consumes less battery.
Note: This are my actual, after 2 weeks of adjust, values but I'm still working on them, they are no 100% reliable.
The CPU is a great beast. In terms of battery is well adjusted, by as always, we can achieve a personal optimized system (this is Android, yeah!) that will balance performance and battery life. (Great Savings Underclock and Undervolt combo).
A very good speed and fluidness can be achieved with a very good optimized and well balanced performance-battery friendly system.. and yes, with the last advances in kernels and ROMs, we can have a perfectly smooth system with a top speed of 1000Mhz.
In the other hand Undervolt will help us to achieve a cooler system with some battery gain. With Undervolt we´ll limit the max. value of the Voltage for the specified frequency, if we have a kernel with Smartflex, this one we´ll allow lower voltages depending on the power need of the CPU.
Two important things:
1. It has been tested that the 700Mhz frequency is prefereable over the 300Mhz one, due to the drops on frequency signal of the phone.
2. Undervolt values are not the same for everyone, it can oscillate depending on the individual CPU. When I UV I always test my system with an Stability Test app.
GNex is a phone...also.. well, it's a super computer with phone capabilities. Due to the "always connected" philosophy the optimal baseband will save a lot of battery. An optimal Baseband and Radio (region optimized) will require less power and time to connect to the antennas and will have better connection always (less power irradiated). (Medium savings).
The Radio should be updated and region optimized, there's a magnificent post made by josteink that explains all the details concerning the Radios with links to every one available.(GSM)
[Radio] (GSM) Galaxy Nexus I9250 Baseband dumps collection & discussion
European Radio Recommended: XXKK6 (XXLA2 is giving too high "Phone Idle", resulting in drain problems)
For the CDMA version there is another magnificent post by ready5 with a compilation of every RADIO for the CDMA version of the GNex.
(CDMA) [RADIOS/HYBRIDS]*UPDATED* 4.0.4 FULL 2/6/2012 PLUS FRIED RADIO Halp!
In the GSM version on the other part the 3G, HSPDA consumes great great great battery juice. If you are not in WIFI and are not using the data connection, a great way to save battery life is changing from HSPDA or 3G to 2G networks (this is really noticeable if you travel a lot by car or train, cause you are continuing connecting a reconnecting from different radio antennas).
There's some ROMs as Liquidsmooth that allows when you are not on WIFI and after an specified delay, to change to 2G automatically (or low consuming) networks when you have the screen off. This is a great way to save battery when you are not at home, reducing the standby drain of the phone outdoors.
The automatic 2G when sleep is a main function of Juice defender. Thanks to a1exus for recommendation.
In the CDMA version the LTE consumes also great great great battery juice. If you are not in WIFI and are not using the data connection, a great way to save battery life is changing from LTE to 4G networks (this is really noticeable if you travel a lot by car or train, cause you are continuing connecting a reconnecting from different radio antennas).
Thanks to thenickisme for this!
Wifi has a crazy history on the GNex. After talking and talking, posting and posting, it has been tested that WIFI always on while sleep is the best way to achieve a longer battery life. (Medium savings).
Also the new ROM's have amazing feature that change the WIFI interval (we normally stay at the same WIFI always), increasing the value will save batterty life reducing the continues scans that produce the WIFI Always ON requirement.
Services and Apps
The best thing of Android is that we can configure anything, one of the best and underestimated feature is the Freeze or Service Uninstall. We did it before in Windows and we can do it now. Through the Apps section in Preferences or the mythic Titanium Backup we can disable or uninstall an internal function of the systems that is normally used, giving more resources to the system and in some cases, saving some battery. (Low to Minimum Savings).
There are some ICS functions that no everyone uses. For example, I don't use any Bluetooth, NFC, Google Voice, Google Search or Speech function of the system, freezing or uninstalling them will optimize our system giving some battery juice.
Note: This is a dangerous thing if you don't understand what you're doing. Make always a Nandroid before Freezing or Uninstalling an essential function, just to be cautious.
According to the Apps we have to take in account the Background Syncing or Sync Interval, most of the time the apps don't need to be synced every 5 minutes, like weather, if we make longer updates we'll achieve a good saving battery related. (Great Savings if many apps with many connections).
Widgets, 5 homescreens full of widgets updating in real time could be detrimental to the battery live, take care when adding widgets and as said in the previous paragraph, change every widget preferences to update in longer times than usually they have by default. (Great Savings if many apps with many connections).
Bad Apps are the one's that not allow our device to deep sleep or wake up continuously our GNex. There are several on the market, Readability for example is a new one that wake up continuously our device attempting to download new articles, on the other part, some time ago Widgetlocker had some problems not letting deep sleep the GNexus (don't know now). (Great Savings if there is an apps giving deep sleep or wake ups problems).
Pointing on this, the best way to know if any app is not behaving well in the system is through 2 apps:
- BetterBatteryStats, that will look for any wake up of the device while sleep.
- CPU Spy, that will tell us if the device is deep sleeping ok or not.
There are other things that will help us in a great or minor manner to save battery life.
Sync Data usage (Google services like contacts, bookmarks, etc..) consumes battery, if you limit this usage, you´ll gain some juice. The new ROM's in the Powersaver tag will allow you to limit this sync usage. (Low Savings).
The Dial Pad Touch Tones and Vibration affects battery also (yepp it's true, and in a great way!), disabling this features will give you some extra battery juice. (Low to Medium Savings with combo sound plus vibration).
The Google Location services and Backup&Reset Data consumes great battery also, limiting this services will gave you some extra juice. (Medium Savings).
The last little thing that will help you save batt life will be the Automatic Date&Time option, disabling it will give you some extra juice also. (Lowest Savings, practical minimum).
Live Wallpapers, they are very nice but will drain your battery quickly. Static Wallpapers are preferred, and if posible, dark ones. (Medium to Great Savings).
This are new tweaks that normally appear in new/advanced kernels, his use according to battery save is still not really tested or can have a detrimental on the physical conditions of the device/battery. Use them with caution or if you really know what you are doing.
[MOD][KERNEL]Battery Life eXtender (BLX), this is a tweak created by the popular Ezekeel and in his owns words: "Older types of rechargable batteries exhibited a 'memory effect' which made it neccessary to completely charge/discharge the battery when using to prevent degradation of the capacity. Modern Lithium-Ion batteries like in the Nexus S do not show this problem and thus it is not necessary to use the battery in complete (dis)charge cycles. In fact on the contrary, it is commonly accepted that both very low and very high charge states accelerate the degradation of the battery capacity (that is why you should store Li-Ion batteries at around 40% charge).
While a low charge state can be simply avoided by charging the device more often, the battery in the Nexus S by default is charged to around 95% capacity and I could not find any app or tweak to stop the charging at a lower capacity. Thus the only way was to use the manual override and pull the cable which is annoying since one had to monitor the charge state." (Unknown Savings).
Galaxy Nexus is charged by default to the 96% of this capacity, with this new tweak you can gain this 4% (don't know for sure if you can get the 101%) of battery life, in 4 hours screen time, more or less 10 minutes, but it can be detrimental on the long way to the battery physical life.
You can found this tweak in the last nightly of Franco's Kernel, and can be activated via his own app.
You can find more information in Ezekeel post here at XDA.
[MOD][KERNEL]Undervolt of IVA and CORE Voltage, new patches let undervolt the IVA (hardware media decoder) and CORE (GPU Voltage), I'vce been playing with this all the day and I've managed to undervolt a 15-20% de original frequencies. (Unknown Savings).
I understand that with this we are limiting the maximum voltage they can use, letting them to use lower ones according to GPU load. I'm not sure at this (GPU uses smartflex also ¿?) but with a descent of 20% on the voltage could result in longer battery life while playing games or seeing movies.
I'll try further undervolts, but this are my actuals on a stable system.
You can play with this voltages via the last nightly of Franco's Kernel, and via his own app.
Take care playing with this, could result in system instabilities, reboots, freezes, etc.