Android 8.0 Oreo is the type of update that I wish Microsoft would provide for Windows 10. That is, rather than pile on superfluous new functionality that virtually no one will never use or want—3D, mixed reality, an e-book store built into a web browser, for chrissakes—Google is instead hitting hard on the the basics that will benefit all users, and not adding a complex array of fluff. What a concept.
And here’s a great example. With Android 8.0 Oreo, apps can no longer launch services or other tasks—and in particular location services—while they’re running in the background; they need to be in the foreground to do so. Why is Google making such a change, you ask? To improve battery life, of course.
This isn’t the first time Google has done this kind of work. The firm’s efforts to dramatically improve Android battery life, and thus the overall Android experience, began in earnest in Android 6.0 Marshmallow (2015). In that release, A feature called Doze dramatically limited what happened in the background when the device was not being used, meaning that the screen was off, the device was stationary, and it was not charging. And another feature called App Standby specifically limited background network activity for idle apps.
In Android 7.0 Nougat (2016), Google furthered these efforts with Doze Light, which added Doze capabilities to non-stationary devices; for example, when you’re carrying around a phone in your pocket as you go. And that release also took aim at what Google calls “problematic broadcasts” in which too many apps were woken up by specific events, further harming battery life. (Events related to connectivity and new photo and video creation were specifically targeted in Nougat.)
And as Google’s Shailen Tuli explained it to developers recently, Android 8.0 Oreo offers a very natural further evolution of this work.
“Battery has been a huge issue for us, year after year after year,” he said. “One in three users tell us that battery is their number one concern with Android.”
So Google is back at it. And in Android 8.0 Oreo, the firm is specifically targeting background services usage, in particular those for location. For the first time, apps can no longer freely start background services. Developers are encouraged, instead, to use Android’s job scheduler for these sorts of tasks; this is a more efficient approach because the OS, and not the app, will determine when the best time is for such things to occur. (In fact, Google is likewise encouraging developers to use the job scheduler for broadcasts as well; perhaps this will become mandatory in a future release as the firm continues its quest for better battery life.)
Some high-priority background services will be allowed, of course. Google will whitelist certain messaging solutions, for example, including SMS/MMS, for short windows of time so that they can behave as before. As Tuli says, it’s a pragmatic approach.
And then there’s the big bugaboo in this release: Location services.
“Users—rightly or wrongly—associate location with battery drain,” Tuli said. “And because they do that, they go and disable location altogether. Which makes all the apps either not work at all or work in a degraded manner. This is not good for developers, users, or Android as a platform.”
Google wants users to love location services, he noted, and so the changes coming in Android 8.0 Oreo will result in a better experience for both app developers and users. And what are those changes?
Background apps will now only receive location updates several times per hour. Today, there are essentially no limits.
Android 8.0 Oreo will also severely limit how often a background app can scan Wi-Fi for location. If you stay connected to the same access point, no further Wi-Fi scans will be performed. This will benefit everyone: If you stay at work (or home) for several hours each day, apps won’t be continually trying to use your Wi-Fi connection to calculate your location throughout the day.
And Oreo will likewise provide smarter geofencing by changing the allowed frequency of checks from about 2 seconds to about 2 minutes. The result? Up to a 10x battery life improvement for this task.
These change are immediate: Any app running on Android 8.0 Oreo will be impacted, regardless of which version of the OS that its developer targeted. This means that many apps will actually behave differently on Android 8.0 Oreo than they do on Android 6.0 Marshmallow or Android 7.0 Nougat.
But that said, many users are already turning off background services, especially location services, since this is a leading tip for improving battery life on Android. So Google is asking developers to think ahead here and do the right thing now, since location services are often critical. That way, even users on other Android versions can benefit.
We’ll see how users and developers respond to these changes. But with Android 8.0 Oreo, at least, Google is taking dramatic steps to solve problems that have dogged Android for years. And that is great news for all of us.
So welcome to the age of Oreo. I’ll be writing more about this latest Android version soon.
Tagged with Android O