Resolve Google Play Services Keep Awake and wakelocks killing your battery

Update 12/22/2014-

I’ve come across another excellent method of resolving these GPS wake locks! As seen in this forum thread here, if you are running into very poor battery performance after running your GPS (for instance if using Waze in the morning on the way into the office, especially if the issue is resolved after a reboot, you should use the ‘rename Gsiff daemon’ method first, before trying the rest below.

You’ll know if you’re impacted when using Wakelock Detector or CPU monitor and you see the ‘gsiff_daemon’ process at the top of the CPU consumption list during a trace.  From my research, the process involved polls for screen rotation and acceleratorometer data when your GPS has been turned on, most likely to allow for highly responsive rotation of the map when using a direction finding app, or to tell if you’re still moving, which would be used to update your location on a fitness tracking app, or things like that.

In addition to being a PowerShell and System Center guy, I also LOVE me some Android. Anyone who has had an Android phone before the modern generation of monster batteries can relate to seeing Google Play Services completely eating up all of their devices battery over the course of the day.

The Problem

OMG where’s my battery?!

The reason for this is that for the last year or so, Google has been recommending developers use Google Play Services for Android Device location GPS functionality which allows for Google Play Services to batch GPS requests, hopefully preserving battery life. However, developers still have access to the native Android location APIs which they could leverage to request device location. Continue reading