Google today launched the first Android P developer preview, available for download now at developer.android.com. The preview includes an updated SDK with system images for the Pixel, Pixel XL, Pixel 2, Pixel 2 XL, and the official Android Emulator. Unlike last year, there is no emulator for testing Android Wear on Android P.
This is the third year running that Google has released the first developer preview of the next major Android version months before its I/O developer conference. The first developer previews of Android N (later named Android Nougat) and Android O (later named Android Oreo) arrived in March 2016 and March 2017, respectively. Last year, Google did not release the first developer preview via the Android Beta Program, which lets you get early Android builds via over-their-air updates on select devices. This stays the same with Android P — Google is making the first 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 P until Google picks a name starting with that letter.
The goal of the first preview is to let developers play with the build early so they can explore new features and APIs for apps, test for compatibility, and give feedback before more details are shared at I/O 2018, scheduled for May 8 to May 10. More new features and capabilities will be released in subsequent developer previews, and eventually enrollments will be taken through the Android Beta Program.
The preview schedule is as follows:
- March: Preview 1 (initial release, alpha)
- May: Preview 2 (incremental update, beta)
- June: Preview 3 (final APIs and official SDK, Play publishing, beta)
- June: Preview 4 (release candidate for testing)
- July: Preview 5 (release candidate for final testing)
- Q3: Final release to AOSP and ecosystem
If you want the short version, here are the highlights for the first Android P developer preview: built-in support for display cutouts (read: notches), a tweaked Quick Settings panel, notification drawer with rounded corners, messages in notifications when replying inline, smart replies in notifications, a consistent UI for fingerprint authentication, and privacy enhancements to limit what apps can do in the background.
Still not satisfied? Here is the longer version of all the new APIs and features (and there is more to come; this is just the first preview, after all):
- Display cutout support: Apps can now take full advantage of the latest device screens with full-screen content and APIs let you manage how your content is displayed, including checking the cutout shape and requesting full-screen layout around it. There’s even a developer option that simulates a cutout on any device.
- HDR VP9 Video, HEIF image compression, and Media APIs: Android P adds built-in support for HDR VP9 Profile 2, so you can deliver HDR-enabled movies to your users from YouTube, Play Movies, and other sources on HDR-capable devices. HEIF (heic) images encoding has been added to the platform, making it easy to send and utilize HEIF images from your backend server. The media APIs are also being enhanced and refactored to make them easier to develop and integrate with — details are coming later this year.
- Multi-camera API: You can now access streams simultaneously from two or more physical cameras. The API also lets you call a logical or fused camera stream that automatically switches between two or more cameras. Other improvements in camera include new Session parameters that help to reduce delays during initial capture, Surface sharing that lets camera clients handle various use-cases without the need to stop and start camera streaming, and APIs for display-based flash support and access to OIS timestamps for app-level image stabilization and special effects.
- ImageDecoder for bitmaps and drawables: ImageDecoder, which deprecates BitmapFactory, lets you create a bitmap or drawable from a byte buffer, file, or URI. It offers several advantages over BitmapFactory, including support for exact scaling, single-step decoding to hardware memory, support for post-processing in decode, and decoding of animated images.
- Improved messaging notifications: The new MessagingStyle notification style highlights who is messaging and how you can reply. You can show conversations, attach photos and stickers, and even suggest smart replies.
- Data cost sensitivity in JobScheduler: JobScheduler now handles network-related jobs better for the user, coordinating with network status signals provided separately by carriers. Jobs can declare their estimated data size, signal prefetching, and specify detailed network requirements. Carriers can report networks as being congested or unmetered and JobScheduler then manages work according to the network status.
- Indoor positioning with Wi-Fi RTT: Platform support for the IEEE 802.11mc WiFi protocol — also known as WiFi Round-Trip-Time (RTT) — lets you take advantage of indoor positioning in your apps. Apps can thus use RTT APIs to measure the distance to nearby WiFi Access Points (APs). Knowing the distance to three or more APs lets you calculate the device position with an accuracy of 1 to 2 meters.
- Neural Networks API 1.1: Support for nine new ops — Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub, and Squeeze. If you have a Pixel 2 device, you’ll get a Qualcomm Hexagon HVX driver with acceleration for quantized models.
- Autofill improvements: New APIs that allow password managers to improve the Autofill user experience, such as better dataset filtering, input sanitization, and compatibility mode.
- Open Mobile API for NFC payments and secure transactions: Apps can use the OMAPI API to access secure elements (SE) to enable smart-card payments and other secure services. A hardware abstraction layer (HAL) provides the underlying API for enumerating a variety of Secure Elements (eSE, UICC, and others).
- ART performance: ART’s use of execution profiles has been expanded to optimize apps and reduce in-memory footprint of compiled app code. ART now uses profile information for on-device rewriting of DEX files, with reductions up to 11 percent across a range of popular apps.
- Optimized Kotlin: Improved several compiler optimizations, especially those that target loops, to extract better performance. Google is also working with JetBrains to optimize Kotlin’s generated code.
- Power efficiency: Doze, App Standby, and Background Limits have been refined to further improve battery life.
- Targeting modern Android: Google Play will require all app updates to target Android Oreo (targetSdkVersion 26 or higher) by November 2018, with support for 64-bit hardware on the horizon for 2019. Android P will warn users with a dialog when they install an app that targets a platform earlier than Android 4.2 (targetSdkVersion less than 17), and future platform versions will continue to increment that lower bound.
- Improving app compatibility through public APIs: Google is starting to restrict access to selected non-SDK interfaces by asking developers to use the public equivalents instead.
- Security for apps: A more consistent UI for fingerprint authentication across apps and devices. Android now provides a standard system dialog to prompt the user to touch the fingerprint sensor, managing text and placement as appropriate for the device. Apps can trigger the system fingerprint dialog using a new FingerprintDialog API. Google is also changing the defaults for Network Security Configuration to block all cleartext traffic.
- Privacy for users: Access to microphone, camera, and all SensorManager sensors from apps that are idle will be restricted. While your app’s UID is idle, the microphone reports empty audio and sensors stop reporting events. Cameras used by your app are disconnected and will generate an error if the app tries to use them. Google will also enable encryption of Android backups with a client-side secret.
Google is asking developers to make their app compatible with Android P so that their users can expect a seamless transition when they upgrade. If you find any bugs, you can report them here.