In many cases, people who have battery drain issues have a tendency to end up being found to be using a known battery draining app or configuration. To help these people, I'm going to try to start a list here. I will, in the case of known rogue apps, include the reporting date so people can try updates to see if drain is fixed. (For example, Facebook is rarely a culprit any more, but it was the #1 most common battery eater in 2010.) The primary focus here will be things that shouldn't drain your battery but do.
Firmware bugs:
LAN Environment (WiFi):
Configuration issues:
Rogue apps:
The Obvious:
The Rare:
Apps that occasionally go nuts, but not frequently
The False Blame:
If you're having battery drain issues, I suggest the following:
Get ADB up and running (Google it, and if you're on Windows, Googling Droid Explorer may help)
Using ADB, do the following:
Zip em' up and post em' here for analysis.
Edit: Specifically, to get a good baseline measurement of idle drain - make sure to have CPUSpy installed for this procedure:
Charge phone to full
Reboot
Reset timers in CPUSpy, otherwise the percentages and bars will be wacky
Let the phone sit for a while - Overnight is best. Then provide data:
Deep sleep percentage
Time the phone was sitting
Percentage battery drained
I don't need screenshots of the above, just the numbers. Screenshots use up massive amounts of thread space
Grab /proc/wakelocks as mentioned above and post it, OR use BetterBatteryStats 1.4 or above to pull kernel wakelocks.
Note: If you're at or below 1%/hour idle drain, not much point of posting your wakelocks.
If you have high wlan_wake, wlan_rx_wake, or svnet-dormancy wakelock times, then you have an app eating data or one of the wifi wakeup bugs described above. Install Shark for Root - https://market.android.com/details?id=lv.n3o.shark
Start it, and change parameters from:
to
This tells it to only capture the first 68 bytes of each packet, which is all we need for this purpose. This provides two benefits: A smaller capture, and privacy for you. (It captures packet headers but not contents)
Then start a capture and let it sit for a bit.
Note that your drain will be higher during the capture than normal - we're collecting data here, not directly nuking the drain.
After a while where you are positive you are encountering drain, stop Shark and then pull the .pcap file - load it in Wireshark on your PC or post it here. If you post it here, MAKE SURE you have a truncated capture as instructed above!
Firmware bugs:
- The UCKK6 OTA update contains a number of issues with wifi and bluetooth. Among these is that an oddball feature of our Wifi/Bluetooth chipset goes nuts and wakes up the phone once per second intermittently. Rebooting temporarily fixes it, turning off wifi temporarily fixes it, only permanent fix is to ditch UCKK6. http://xdaforums.com/showthread.php?t=1409513 for more details - Appears as a variant of the Android OS "bug" - this is the only one that is actually 100% a firmware bug. International XWKK5 is also affected.
LAN Environment (WiFi):
- Broadcast LAN traffic can wake your wifi chip often. This also manifests as the Android OS "bug", but it's a small problem with the firmware base (XXKI3 and UCKK6 are known to be affected) and mostly a network problem. Examples I've seen so far include:
- Windows Client Backup
- UPnP (DLNA) SSDP
- Dropbox Lan Sync Discovery Protocol
- Buggy piece-of-**** routers that spam lots of ARP requests continuously - The 2Wire routers that are required for UVerse access apparently fit in this category.
Configuration issues:
- Hotmail calendar sync
- Misconfigured Microsoft Exchange servers - 1) is a special case of this. At least one person has reported that calendar sync to a non-Hotmail account was problematic for them, but email sync was OK
- A bad Exchange configuration - the client apparently goes nuts if it can't contact the server
- BLN - On Galaxy S II devices, there is no stable BLN implementation that does not hold a wakelock when a notification is active. This means that an active BLN notification will drain about 4-5%/hour. I say this in bold letters in my kernel thread, but somehow people still don't realize it...
Rogue apps:
- Words with Friends (October 2011)
- Skype (October 2011) - Particularly insidious, as it does not directly hold a wakelock. However, it causes lots of background network activity, and this activity keeps your phone awake. Since most of the time is spent wakelocked in the network stack, Skype drain shows as Android OS.
- Any IM app that works similarly to Skype is likely to have the same issues.
- AP Mobile Widget on stock AT&T ROMs - this one also blows through your data allotment quickly if you don't have unlimited data
- AT&T Smart WiFi can sometimes hold excessive wakelocks - this is why AT&T bloat is bad for you.
The Obvious:
- 3D or animation/action-intensive games
The Rare:
Apps that occasionally go nuts, but not frequently
- Facebook - I've had it wakelock me once, and also, Facebook chat may have triggered my first obvious "AOS bug" episode once - so far, it's been responsible for drain once this month
- StartingAlertService - some sort of Calendar notification related bug
The False Blame:
- GPS Status and Toolbox - may appear to be high-drain but is actually not draining - this is an Android battery reporting bug - see http://xdaforums.com/showpost.php?p=23106668&postcount=491 for more details. Thank you for the info and the great app rhornig.
If you're having battery drain issues, I suggest the following:
- Install BetterBatteryStats. The XDA edition from the author's thread on these forums is free. (Market version is paid.)
- Also, having CPUSpy to see deep sleep percentages is VERY useful
- BBS now shows kernel wakelocks - make sure to check these. If you have an older version that doesn't show kernel wakelocks, use the instructions below.
Get ADB up and running (Google it, and if you're on Windows, Googling Droid Explorer may help)
Using ADB, do the following:
Code:
adb shell cat /proc/wakelocks > wakelocks.txt
adb shell dmesg > dmesg.txt
Edit: Specifically, to get a good baseline measurement of idle drain - make sure to have CPUSpy installed for this procedure:
Charge phone to full
Reboot
Reset timers in CPUSpy, otherwise the percentages and bars will be wacky
Let the phone sit for a while - Overnight is best. Then provide data:
Deep sleep percentage
Time the phone was sitting
Percentage battery drained
I don't need screenshots of the above, just the numbers. Screenshots use up massive amounts of thread space
Grab /proc/wakelocks as mentioned above and post it, OR use BetterBatteryStats 1.4 or above to pull kernel wakelocks.
Note: If you're at or below 1%/hour idle drain, not much point of posting your wakelocks.
If you have high wlan_wake, wlan_rx_wake, or svnet-dormancy wakelock times, then you have an app eating data or one of the wifi wakeup bugs described above. Install Shark for Root - https://market.android.com/details?id=lv.n3o.shark
Start it, and change parameters from:
Code:
-vv -s 0
Code:
-vv -s 68
Then start a capture and let it sit for a bit.
Note that your drain will be higher during the capture than normal - we're collecting data here, not directly nuking the drain.
After a while where you are positive you are encountering drain, stop Shark and then pull the .pcap file - load it in Wireshark on your PC or post it here. If you post it here, MAKE SURE you have a truncated capture as instructed above!
Last edited: