Google has officially revealed the name of Android 8, and it comes as no surprise that Android 8.0 is officially Oreo.
Google has partnered with Nabisco, the owner of the Oreo brand, similar to the way they partnered with Nabisco rival Nestlé for Android 4.4 KitKat.
It comes with new features like picture-in-picture and Autofill to help you navigate tasks seamlessly. Plus, it’s got stronger security protections and speed improvements that keep you safe and moving at lightspeed.
Even the boot speed has been improved, with 2x the boot speed when powering up (as measured on Google Pixel).
Android Oreo helps minimize background activity in the apps you use least, it’s the super power you can’t even see.
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.
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.
Google is moving Picture-in-Picture (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.
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.
Highlights the incoming notification with larger font, highlighted app name and immediate access to actions.
More control over how apps run in the background for better overall system performance.
Background location limits
Limits the frequency of location updates in the background for better overall system health.
Enables applications to render richer visual content with more vibrant colors and subtler gradients. Supports full color management which allows applications to render images in the format and quality they were intended.
Applications no longer need to bundle custom fonts, which helps reduce their size.
Install unknown apps
Hostile downloader apps can’t operate without permission; users now permit the installation of APKs per-source.
Integrated printing support
Compatible with all Mopria-certified printers, which make up 97% of printers sold worldwide.
API that allows you to share files across the Internet via web links.
The biggest change to the foundations of Android to date: a modular architecture that makes it easier and faster for hardware makers to deliver Android updates. With Project Treble, Android O will get a vendor interface. This means that Android will be more modular so that manufacturers can use the vendor interface to access the implementations from internal component vendors, such as Qualcomm and MediaTek, for example.
This will allow Android updates to happen more easily, because the whole process can be done independently of these vendor implementations. The idea is to speed up updates from manufacturers by making the process more streamlined.
Developers can now let the size of their text expand or contract automatically based on the size and characteristics of the TextView, making it much easier to optimize the text size on different screens or with dynamic content.
Support for tooltips (small popup windows with descriptive text) for views and menu items.
Auto-connects you to high quality open WiFi and secures your connection with a VPN back to Google.
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.
Applications can now have different categories for the notifications they show us, and which ones are displayed and how is up to the user to define. Google’s YouTube app is a great example of how these changes work.
There are three categories of notification in YouTube on a phone with Android Oreo. Two of those categories are handled by your Android on a per phone basis (General notifications and Offline notifications) and the third is a section of account-based settings like notifications of highlighted videos or when someone you subscribe to uploads a new video.
If you enable one of the categories, you have fine-tuning controls like importance (a system setting that has important notifications make a sound, vibrate or peek open), what sound they should play if sounds are enabled, whether they should show an icon notification badge and more.
You’ll find this in the applications’ settings, but only if the developer specifically targeted Android Oreo when they built the app.
We’re all familiar with “notification dots” that some manufacturers add to their launcher and third-party home replacements bring to any phone. With Android Oreo they are now part of the operating system and won’t rely on a third-party solution.
When you have a notification for an app that you haven’t yet looked at, the app’s icon will display a small colored dot in the upper-right corner. These badges follow the rules for notification channels if the app has enabled those, and are tied into cloud messaging so if you’ve checked on a computer or tablet, they go away on your phone.
These won’t replace existing solutions from apps like Nova Launcher, so you’ll be able to keep using what you already enjoy. If you would rather not have badges on your icons you can turn them off in the app’s notification settings.
Sometimes you don’t want a notification to disappear, but you aren’t able to check an app right away. Notification snoozing lets you postpone things.
Long pressing on a notification and sliding it to the right now gives you a timer icon in addition to the settings icon we’ve been seeing since Android Marshmallow. Tapping on it removes the notification from your tray but doesn’t mark it as “read”, and after a set amount of time, it will come back. Notifications reappear with the same level of importance they first appeared with so you’ll hear a sound of it will peek if you have it set to do so.
Checking an app from another location (like your tablet) can remove a snoozed notification, and they can be updated without reappearing — if you were to snooze a Gmail notification, another new email wouldn’t bring it back until the time is up.
Developers can now build a timer into a notification and have it disappear after it expires, even if the notification hasn’t been checked. This is handy for things that are time-sensitive like happy hour specials at your favorite restaurant. Knowing that appetizers are Buy One Get One Free until 7 PM is awesome, but seeing it at 8 PM isn’t.
Notification can have a predetermined background color, including different colors for each notification category.
Google suggests that this is used only for “ongoing tasks which are critical for a user to see at a glance” like driving directions in the Maps app or an ongoing phone call. The color can be preset by the developer, or dynamic as we see in media players with persistent notifications.
This can make any ongoing notification stand out so you won’t have to scroll through a long list to see them. It also places a lot of responsibility on app developers to make sure their notifications don’t clash with any theming of the notification tray.
Messaging style improvements
Notifications can now provide more information in both collapsed and expanded forms. These changes were designed for your favorite messaging app. With Android Oreo, it can give quick reply bubbles when collapsed, or give message history when expanded.
This is a great way to give rich notifications a little context. If you can’t remember the previous messages in a conversation, you no longer have to open the app to read the most recent ones.
Notification settings and dismissal
Notification settings are tools for developers that help set the text displayed when you link from a notification back to the apps actual notification settings. This should allow developers to be a little more user-friendly and help guide us when they’re using Notification channels.
Notification dismissal is a new method of the Notification Listener service that lets an app know if the notification was removed because a user checked it or if it was removed for another reason, like snoozing.
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.
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.