Google today launched the first Android O developer preview, available for download now at developer.android.com. The preview includes an updated SDK with system images for the Nexus 5X, Nexus 6P, Nexus Player, Pixel, Pixel XL, Pixel C, and the official Android Emulator, and there’s even an emulator for testing Android Wear 2.0 on Android O.
In the past, Google has unveiled the next Android version and released the accompanying developer preview at its I/O developer conference. That changed last year with the release of the first Android N developer preview in March 2016, along with the Android Beta Program, which lets you get early Android builds via over-their-air updates on Nexus devices.
This year, Android O is getting previewed early like Nougat was, but the first preview isn’t being made available via Android Beta. Google is making this preview available solely by manual download and flash to emphasize it is for developers only and not intended for daily or consumer use.
Other than that, the same rules apply. This is an early look at the next version of Android, which is being referred to as Android O until Google picks a name starting with that letter. The goal is to let developers play with the build early, test their apps, and give their feedback before more details are shared at I/O 2017, scheduled for May 17 to May 19.
Today’s preview includes the following APIs and features (but you can expect much more; this is just the first preview, after all):
- Background limits: Building on Nougat’s battery life improvements, Android O has additional automatic limits on what apps can do in the background (implicit broadcasts, background services, and location updates). These changes will make it easier to create apps that have minimal impact on a user’s device and battery.
- Notification channels: New app-defined categories for notification content that let developers give users fine-grained control over different kinds of notifications — users can block or change the behavior of each channel individually (pictured above), rather than managing all the app’s notifications together. There are also new notification visuals and groupings.
- Autofill APIs: Users can select an autofill app like how they select a keyboard app. The autofill app stores and secures user data, such as addresses, user names, and even passwords.
- Picture in Picture (PIP): Users can continue watching a video while they’re answering a chat or hailing a car. Apps can put themselves in this mode from the resumed or a pausing state where the system supports it; developers can specify the aspect ratio and a set of custom interactions (such as play/pause). Other new windowing features include a new app overlay window for apps to use instead of system alert window, and multi-display support for launching an activity on a remote display.
- Font resources in XML: Fonts are now a fully supported resource type. Apps can use fonts in XML layouts as well as define font families in XML by declaring the font style and weight along with the font files.
- Adaptive icons: Developers can now create adaptive icons that the system displays in different shapes, based on a mask selected by the device. The system also animates interactions with the icons and shows them in the launcher, shortcuts, Settings, sharing dialogs, and in the overview screen.
- Wide-gamut color for apps: Imaging app developers can take advantage of devices that have a wide-gamut color capable display. To display wide gamut images, apps will need to enable a flag in their manifest (per activity) and load bitmaps with an embedded wide color profile (AdobeRGB, Pro Photo RGB, DCI-P3, etc.).
- Connectivity: High-quality Bluetooth audio codecs are now supported, and Sony has made their LDAC codec available. New Wi-Fi features like Neighborhood Aware Networking (NAN), based on the Wi-Fi Aware specification, are also included so that devices with the appropriate hardware, apps, and nearby devices can discover and communicate over Wi-Fi without an Internet access point. The Telecom framework introduces expanded support for calling apps to better interoperate with one another and with carrier-made calls. The ConnectionService APIs have been expanded to support calling apps which want to inform Telecom of their calls but do not want to rely on the system Phone app to display the call.
- Keyboard navigation: A more reliable and predictable model for “arrow” and “tab” navigation that aids both developers and end users.
- AAudio API for Pro Audio: A new native API designed specifically for apps that require high-performance, low-latency audio. Apps using AAudio read and write data via streams.
- WebView enhancements: The multiprocess mode introduced in Nougat has been enabled by default and there is now an API to let apps handle errors and crashes. Developers can opt in their app’s WebView objects to verify URLs through Google Safe Browsing.
- Java 8 APIs and runtime optimizations: Android now supports several new Java Language APIs, including the new java.time API. The Android Runtime is also faster than ever before, with improvements of up to 2x on some application benchmarks.
- Partner platform contributions: Hardware manufacturers and silicon partners have accelerated fixes and enhancements. In particular, Sony Mobile has contributed more than 30 feature enhancements and 250 bug fixes to Android O.
Google is asking developers to make their app compatible with Android O so that their users can expect a seamless transition when they upgrade. Also worth checking out is the alpha release of the alpha version of the 26.0.0 support library. After you try the first preview, give feedback.