At this point, I'm not entirely sure why I still have Google on my phone, but I do. Access to the Play Store is useful for app updates - I'd have to sideload otherwise, and that's increasingly risky - and everybody has to sync calendars and contacts somewhere, right? So anyway, I have a Google account on my phone and Google Play, and therefore Google Services Framework. That sneaky Framework is required by several Google apps, and in Android 5, if you don't replace the Google apps, it's needed for SMS and even for viewing damn photos. Problem is, Google Services Framework isn't really an app or service so much as it's a needy commercial mouthhole on your phone. It updates itself. It keeps in contact with Google. And it wakelocks your phone when it can't. Which for me in China on Android 5.1 means an extra 2 to 4 hours per day the phone is awake and doing nothing but burning battery. And that's not 2-4 hours less normal battery time, nosiree. It winds up being way more. Luckily, I've discovered you can stop it. So, caution, turn back now, here be dragons.
What I find these days when I check my battery stats is a peculiar
wakelock associated with a thing called
Google Checkin Service. Briefly, a "wakelock" is a situation where some Android process or service for whatever reason does not terminate in a timely manner and is still there doing things while the screen is off. Intuitively, when the screen is off, the phone is asleep, but in the case of a wakelock, nope, it's not - some behind-the-scenes process is still boiling away waiting for some release that never comes. (Wifi routers are a big source of these in Android Lollipop.) And it would seem Google Checkin Service has an especially hard time in China because, well duh, it can't check in with Google. This isn't unique to China, but it seems to happen here a lot. A normal process might time out or give up, but in the case of Checkin Service, either it's too close to Google's commercial heart and they don't want it to stop even if it can't find a connection or the Great FUBAR Wall of China doesn't block so much as delay connection, meaning the service keeps trying and trying to connect just like any normal user sitting at the browser watching the wheels spin. Either way, the Checkin Service is part of Google Services Framework and no direct granular control is available at the user interface - you either disable all of the Framework or you accept the wakelock. Or you screw around with the innards of your phone's operating system. Woohoo!
How to turn off: Check In Service, Config Fetch Service, and Event Log Service (c/o the
MIUI Device Team)
You'll need root access to your operating system,
Busybox installed, and you'll need some autorun/autostart manager. I use
Autostarts, but there are also such apps as
Autorun Manager. (NB: you may need the Pro versions, since sometimes the free versions limit the number of autostarts you can alter.) So, you install your autorun manager and start it going. You'll need to get into the settings to make sure it shows System apps. And probably at that point you're good to go. (If you choose to use Autorun Manager and want to be sure what settings to set, you can take a look at
the page I found these tips on in the first place.) Good to go means you should find, and disable, the following automatically starting processes:
- com.google.android.gms.checkin.EventLogService$Receiver
- com.google.android.gms.checkin.CheckinService$TriggerReceiver
- com.google.android.gms.checkin.CheckinService$Receiver
- com.google.android.gms.checkin.CheckinService$ImposeReceiver
- com.google.android.gms.checkin.CheckinService$ActiveReceiver
- com.google.android.gms.config.ConfigFetchService$PackageReceiver
- com.google.android.gms.checkin.CheckinService$SecretCodeReceiver
Finding the processes is as simple as entering their names on the search bar within your autorun manager. Disabling is a matter of tapping the entry and going through whatever process appears - normally a list of options, including "Disable".
Now, I said there were dragons. Those processes are low level receivers associated with system apps, and there're not a lot of people who know what that means. I certainly am not one of them. I have a vague idea of what a low level system process is, but what those ones actually do... well they do something with Checkin, Fetch, and Event Log, obviously. But turning them off does what for the system as a whole? Beats me. But since turning them off, no more Checkin Services Wakelock. I'm still waiting to see if anything explodes. If nothing does, the absence of that wakelock means I'll be back to 1-2 days battery on a single charge with normal use.
If you are interested in seeing what's what with your battery, there're apps and there're apps. Some of them work better with root access. Some don't need it. I like
BetterBatteryStats, but there's also
Wakelock Detector and
GSAM Battery Monitor.