Almost exactly a year after the Android N Developer Preview launched, Google is unleashing a developer preview of the next major version of Android, "Android O." We haven't tried it yet (images should be dropping any minute now), and the heavy developer documentation is still on lockdown, but we do have a big list of new features to go over.
This first developer preview is apparently not going to be super stable. Google's blog post notes that "it's early days, there are more features coming, and there's still plenty of stabilization and performance work ahead of us. But it's booting :)."
Because of the early status, this first version of Android O won't be rolling out to the Android Beta program, which offers handy in-place OTA upgrades. Instead Google will be kicking it old school with images for the Nexus 5X, 6P, Player, and the Pixel, Pixel XL, and Pixel C. There's a Wear 2.0 version of Android O, but it's only available via the emulator. There's also a new version of the SDK, Android Studio 2.4, for developers interested in trying out the new APIs.
Also remember there are two main parts to Android: the open source "AOSP" part and the closed-source "Google" part. Today we're only hearing about the open source parts, in contrast to day one of the Android N Developer Preview, where we only heard about AOSP features like split screen, redesigned notifications, and improved power savings. When it grew into the fully realized version of Nougat on the Google Pixel, we got headlining "Google" features like the Google Assistant. As usual Google says, "Over the course of the next several months, we'll be releasing updated developer previews, and we'll be doing a deep dive on all things Android at Google I/O in May." Now let's dive into some features!
Google's blog post says Android O "puts a big priority on improving a user's battery life and the device's interactive performance." Google plans to do this by adding "automatic limits" to what apps can do in the background in "three main areas: implicit broadcasts, background services, and location updates."
"Implicit broadcasts" are device-wide announcements that any app can listen to. In older versions of Android, these were things like a "connectivity change" from LTE to Wi-Fi or a "new picture" alert. Any app can sign up to receive these broadcasts and could wake up the second they happened, which is not a great idea for performance. For instance, when you take a new picture, Google Photos immediately starts up in the background and uploads the picture, and so can Dropbox. A picture editing app can also start up and add it to its photo index. Take a second picture, and all these apps are filling up your RAM and slowing down the phone.
We don't have the documentation yet, but Google warned app developers at I/O 2016 that a background-processing lockdown was coming. Google identified apps' aggressive use of implicit broadcasts as a big reason for battery drain and sluggish performance, and it even shut down the "connection change" and "new picture" alerts in Android 7.0 Nougat. The recommended replacement for these background jobs was "Job Scheduler," an API introduced in Android 5.0 Lollipop. Job Scheduler is a "lazier" way to do background processing. Apps sign up for a background job, which would happen at some point in the future. Job Scheduler batches up background processing requests into one big slice of "background processing time," which preferably happens when the phone is idle, or better yet, plugged in. Job Scheduler is like a traffic cop for background processing, resulting in a phone that wakes up less, sleeps more, and saves more battery.
During its background processing talk at I/O, Google showed off a "vision" for how background processing would work in a "future release" of Android. All implicit broadcasts were shut off, and apps would have to totally rely on Job Scheduler. Doing this to everything would break a lot of apps, so the proposed change would happen only for apps that "target" the new release. "Targeting" a release of Android means an app is aware of Android features up to that release and would be signing up for the new APIs and background restrictions. We'll have to dive into the documentation once it goes up, but it seems like that "future release" Google talked about at I/O is Android O.