Android Oreo 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. The mobile space is always evolving and Android has evolved along with it so it could meet the needs of people like us who use it every day.
With the first developer preview of Android Oreo, we got a glimpse of some of the new features. Now that Android 8.0 is final, we know exactly what to expect from the latest version.
Here's everything you need to know!
Starting with Android 7.0, Android can restrict certain activities an application wants to do while it's in the background. Oreo 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 Oreo is available for consumer devices. Background execution limits are a pretty big deal, even though we don't see any changes on our screen.
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 Oreo, 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.
Some of those rich notification changes come in the form of a custom notification when media is playing. Google's examples use the album art or video thumbnail to build a colorful interactive notification.
Notification channels are required if a developer targets their app for Android Oreo, and are an all or nothing affair. If a notification isn't assigned to a channel it won't be displayed.
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.
With Android Oreo, we can shrink the view of an app into a small secondary window that can be positioned by the user at run time. For example, a YouTube window can be shrunk and moved so that you can take notes in a second app while it's playing.
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. An app can run on more than one display at a time, and the developer can decide which screen to launch an app on when the user starts it up.
Adaptive icons and badges
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.
Google has built this out in a way that's easy for developers. They provide an icon as normal and a background, and the system stitches them together using a mask that the home launcher defines.
Additionally, new icons support badges for new content. Called "Notification Dots" they are a lot like badges we've seen before. Google adds things like a preview pane from the home screen you can access from the icon shortcut as well as app-exclusive shortcuts, such as replying to a message.
Font resources in XML
Android Oreo 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.
Google is bundling all their own free fonts into downloadable packages that can be used here, and this can apply to emojis, too!
Project Treble is a fundamental change in how Android is created and how third party vendors — companies like Qualcomm or NVIDIA — can add their required software outside of the main Android framework. It's a major undertaking and has been a long time coming, but it should alleviate much of the slow update problem we see from companies who make Android phones.
The Pixel and Pixel XL are the only existing phones that will be able to use Project Treble's features, but phones shipping with Android 8.0 or later will have full access. We hope they take advantage of it!
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.
Wide-gamut color for apps
Developers building applications for Android Oreo 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.
Android Oreo 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. The latest developer preview also has support for the AptX codec, so music through Bluetooth can sound better than ever.
- 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 and Pointer capture
Android on Chromebooks means we need a better way to use all the features of an app through the keyboard and mouse. Android Oreo 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.
Keyboard navigation brings the familiar "Meta-Key+Tab" keyboard navigation to Android apps using what's called keyboard navigation clusters, and Pointer capture give an app or game control over the mouse pointer through the default trackpad or an external mouse.
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!
Additional tools for developers, like audio focus enhancements and a new volume shaper class will make our music sound even better, and new ways to access media files mean developers can do a lot more with apps that play them.
Android Oreo enables the multi-process mode for WebView components from Nougat as the default and adds a new set of APIs that provide version information, better ways to terminate a web view window, a method to determine the priority of rendering a web view, and the Google Safe Browsing API.
These make 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 Oreo 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 Oreo.
If you're interested in developing apps for Android 8.0, this is just the tip of the iceberg. Visit the Android Developers blog for the full scoop on the changes and example code.
Updated August 2017 with the final version of the change log for Android O.