After over a year of being in development, Android 9 Pie is finally here. Yesterday, Google pushed the source code to Android Open Source Project and began rolling it out to Pixel devices.

The new version adds performance improvements via the Android runtime (ART) by expanding its use of execution profiles for optimizing apps and reducing memory footprints.

Android 9 is also optimized for Kotlin, with several new compiler optimizations. Google is continuing to work with JetBrains to further optimize Kotlin’s generated code.

Android 9 includes many new features and improvements. According to Google, it is “a smarter smartphone, with machine learning at the core.” With Android 9, your phone will learn as you use it, picking up on your preferences over time.

“Android 9 harnesses the power of machine learning to make your phone smarter, simpler, and tailored to you,” Dave Burke, VP of Engineering for Android at Google wrote in a post.

By partnering with DeepMind, Google was able to produce a feature called Adaptive Battery, which uses machine learning to prioritize system resources for the apps users care most about.

It adds Slices, which are UI templates that can display interactive content from apps in the Google Search app and eventually Google Assistant. Slices will enable users to perform tasks faster by allowing for engagement outside of the fullscreen app experience.

Another way it is driving app engagement is with App Actions, which surface apps to the user at the right time depending on the app’s semantic intents and the user’s context.

It also extended the machine learning identify entities in text input to support additional types such as Dates and Flight Numbers via the TextClassifier API.

Android 9 also includes an updated version of the Neural networks API, expanding Android’s support for accelerated machine learning. The latest API adds support for nine new ops including Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub, and Squeeze.

UI improvements in Android 9 include the display cutout, new system navigation, more useful notifications and smart reply, and a magnifier widget to make it easier to select text. “We’re excited about making your smartphone more intelligent. But it’s also important that the technology fades to the back for users. In Android 9, we’ve evolved Android’s UI to be simpler and more approachable — for developers, these changes help improve the way users find, use, and manage your apps,” Burke wrote.

In terms of privacy, Google has made the experience for biometric sensors more consist across sensor types and apps. It also added a dialog that prompts the user for a supported type of biometric authentication. This release uses the BiometricPrompt API to create a universal prompt, rather than requiring applications to create their own dialog. The API also support Face and Iris authentication.

Other security features include Android Protected Confirmation, stronger protection for private keys, built-in support for DNS over TLS, HTTPS is now default, and compiler-based security migrations. It also restricts access to the mic, camera, and all SensorManager sensors from idle apps.

Improvement to the camera include being able to open streams from two or more cameras at the same time on devices that support the multi-camera API. Google has also added new Session parameters which helps to reduce delays during capture, Surface sharing for letting camera clients handle different use cases without having to stop and start camera streaming, and APIs for display-based flash support.

Android 9 adds support for HEIF image encoding, making it easy to send HEIF images from the server. HEIF is a photo format that improves compression to save on storage and data. It has also added the ImageDecoder API, providing a simpler way to decode images to bitmaps or drawables.

The addition of the Dynamics Processing API enables you to isolate specific frequencies and make quiet sounds louder and vice-versa to enhance the acoustic quality of apps.

New connectivity features include Wi-Fi RTT for indoor positioning, data cost sensitivity in JobScheduler, and an implementation of the GlobalPlatform Open Mobile API for NFC payments and secure transactions.