Android Marshmallow has changes deep in the operating system that can allow your phone (or tablet) to get better battery life. We see this mentioned with every operating system update from every company that makes smart devices, but this time they mean it.
Enter Doze. If the name reminds you of a pleasant nap while nothing pressing is going on, you've figured out what it is. It's a set of changes and rules that will put your phone to sleep when it's idle, which means you're not using as much of that precious juice from your battery. It sounds simple (and it is) but there are a few things to know.
You won't have to do anything to use the new Doze feature. There are no switches or settings you need to toggle, and once you've updated to Marshmallow it just works. That is, when it's supposed to work.
And that's the thing. You won't see any benefit from Doze while your phone is in your pocket and you're working or at school. Things need to be idle, and that means really idle.
For Doze to kick in, your phone needs to be sitting still with the screen off, and not connected to a charger. That means no moving around and nudging the gyro or other motion sensors, no touching the screen or the buttons and no waving your hand around in front of it if you're using a phone like the new phones from Motorola that have motion detection on the front bezel. Set it down, and leave it alone.
After a while, everything goes to sleep. Well, almost everything. You'll still get notified when "high-priority" apps need your attention. That means things like phone calls or SMS messages can get through (and thus waking up your dozing phone) as well as any app that declares itself as high-priority. Other things, like email notifications or Clash of Clans telling you your gold mine has leveled up aren't going to come in and wake your phone up.
And yes, this sounds like there is potential for abuse by developers who want to declare their app as high-priority. But Google has thought of this, and has a pretty good way to curtail any devious developers — high-priority notifications that aren't part of your carrier network (calls and texts) have to come through a Google Cloud Messaging server. When they find someone abusing the system, and subsequently keeping your phone from dozing as intended, they can take action. We assume this means those notifications can no longer come through as high-prioity, but we also hope there is tar and feathers involved.
Abuse of high priority messages have a special difference from other things like notifications: they must go through Google servers, so Google can monitor and modify what is being sent to devices. If apps abuse these for other things besides their intended use, we will be able to stop that abuse without touching any software on the device. — Dianne Hackborne, Android Framework engineer
This doesn't mean you never get any notifications while your phone is idle. Google uses what they call an "Idle maintenance window" where they pick up any notifications that may be available in one big batch. Then your phone can quickly go back to sleep. This means Doze isn't really a substitute for any Do-Not-Disturb settings.
So does all this dozing make a difference? It looks like it does. Most people are reporting much better standby battery life — Doze doesn't help while you're using your phone — and it looks like things are working just like Google described. Of course, people using their phones on a network with a poor connection are still seeing battery drain while idle, because Doze doesn't stop your phone from searching for a better signal to latch onto. I can fiddle with Project Fi dialer codes and force either Sprint or T-Mobile as the carrier, and see better battery life from whichever works better where I'm at. A very poor signal will still kill your battery. But Doze is a great idea that was implemented well, and will be a great addition to Android for most of us.
Of course, the idea of your phone not using power while you're not using your phone or by putting features to sleep while idle isn't new. We've seen apps try to do the same thing with limited degrees of success. Adding it as a default method directly into the operating system takes away much of the guesswork and should provide a great experience for most of us.