Android O brings several changes to existing features as well as all new features. Since it first arrived in 2008, Android has been a very fluid bit of software.
Background limits
Starting with Android 7.0, Android can restrict certain activities an application wants to do while it’s in the background. Android O builds on this beginning and places top priority on saving power and improving battery life without the user (that’s us!) having to do anything or install anything,
New limits on implicit broadcasts (sending “signals” for other apps or activities to act upon), background services (activities of an app that continue to run when it’s not on the screen) and location updates (checking to see where you are using Android’s location services) are automatic. This means it’s easier to build apps that don’t have an impact on battery life and the user doesn’t have to manage anything.
This is a new area for Android, so developers are encouraged to study the documentation and try out the background execution and location limits before Android O is available for consumer devices.
Notification channels
Android N brought a new framework for notifications and ways for developers to use it so we get more information in a space where real estate is at a premium.
With Android O Google is introducing new Notification channels: grouping notifications together by their type. Notifications are still managed by the app that delivers them, but users can control how things are displayed on a per-channel basis. This way we can decide things like how a news app notifies us or a music player shows a persistent notification. Notification channels is a new way for us to control the rich notifications that Android apps bring to us.
Autofill APIs
Platform support for autofill means better security and a powerful way for an application to store repetitive information.
With the new Autofill API, a user will be able to choose a source for autofill data, and applications that need to store and retrieve this sort of data no longer will need to act as an Accessibility service. An app like a password manager can bundle its own activity for using the autofill API and we can choose it when we need it much like choosing a new keyboard. An app could also be built that acts as a global storage for autofill data without being associated with any one particular program.
Picture in picture for handsets
Google is moving PiP display support to Android phones.
Currently, Android TV has a native PiP display method but handsets use a standard multi-window view versus an overlay. With the new way of doing things, and apps can be designed so that the supplementary window is strictly for content and controls or other bits of app chrome can be placed elsewhere.
This also brings a new way to handle screen overlays and methods for a device to launch an app or activity (a portion of an app) on a remote display.
Font resources in XML
Android O promotes fonts to a full resource type.
This means that fonts can be defined the same way colors and other resources are in application layouts using XML, and developers will have more control over the fonts and style they use. This might mean we can have apps with their own custom fonts without any complicated procedures by developer or users.
Adaptive icons
The Google Pixel Launcher brought adaptive icons, and now Android supports them systemwide and natively.
Options can be given for different shaped masks that define the outside border (think squircles) and icons can be animated. Adaptive icons will be supported in the launcher, shortcuts, device Settings, sharing dialogs, and the app overview screen.
Wide-gamut color for apps
Developers building applications for Android O on devices that support wide-gamut color can now leverage those displays.
Apps like photo editors and image viewers can make use of this, and the developers simply need to enable a setting letting the system know the app is wide-gamut color aware and embed a wide color profile. Some of the support profiles are AdobeRGB, Pro Photo RGB, and DCI-P3.
Connectivity
Android O brings some changes to the way our devices communicate with other devices. Welcome changes include:
- High-quality Bluetooth audio through the Sony LDAC codec. Your favorite songs will sound even better through Bluetooth connections.
- NAN (Neighborhood Aware Networking) connectivity using the Wi-Fi Aware specification. Devices with supported hardware can communicate with each other using Wi-Fi without a central access point.
- Telecom framework introduces new ways for third-party calling apps to work with each other and with your carrier’s special features. New APIs now support apps that don’t need to use the universal system phone app to display calling information and this data can be displayed and controlled over Bluetooth.
Keyboard navigation
Android on Chromebooks means we need a better way to use all the features of an app through the keyboard and mouse. Android O focuses on building a better model for arrow and tab key navigation. This is one of those things that are both better and easier for developers and end users.
AAudio API for Pro Audio
The new AAudio API was built for applications that need a high-performance and low-latency audio path. Audio data can be read and written via normal streams and the AAudio API handles the routing and latency.
The first versions of the AAudio APIs are not yet complete but are a great way for developers who need these features to provide feedback. We want the people building an equivalent of GarageBand for Android to have some say in how the new features work!
WebView enhancements
Android O enables the multiprocess mode for WebView components from Nougat as the default and adds an API so that developers can handle their own errors and crashes.
This makes applications that use web development languages better stability and security, and users will benefit if developers enable Google Safe Browsing for remote URLs.
Java 8 APIs and runtime optimizations
Android O supports new Java Language APIs, including the new java.time API introduced with the latest version of Java 8. Optimization for the new runtimes is also included for better performance and stability in apps designed for Android O.
It’s important to remember that early builds of Android O are designed for app developers to get a head start and aren’t really consumer focused. That means the features introduced during any preview period are subject to change, get better, break or even be removed. We’ll keep this page updated as we see more from Google about Android O!