Google today released the first beta of Android Q, which adds enhancements for foldable phones, new privacy and security features, and much more.
The Beta 1 of Android Q is designed for early adopters, and the also released preview SDK is aimed at developers. You can get started with Beta 1 today by enrolling any Pixel device, including the original Pixel and Pixel XL.
Android Q brings a number of additional privacy and security features for users, as well as enhancements for foldables, new APIs for connectivity, new media codecs and camera capabilities, NNAPI extensions, Vulkan 1.1 support, faster app startup, and more.
With Android Q, the OS helps users have more control over when apps can get location. As in prior versions of the OS, apps can only get location once the app has asked you for permission, and you have granted it. Android Q enables users to give apps permission to see their location never, only when the app is in use (running), or all the time (when in the background).
Beyond changes to location, Google is making further updates related to transparency and personal data.
In Android Q, users will be able to control apps' access to the Photos and Videos or the Audio collections via new runtime permissions. For Downloads, apps must use the system file picker, which allows the user to decide which Download files the app can access. For developers, there are changes to how your apps can use shared areas on external storage.
Sometimes an app unexpectedly jumps into the foreground and takes over focus. To reduce these interruptions, Android Q will prevent apps from launching an Activity while in the background. If your app is in the background and needs to get the user's attention quickly -- such as for incoming calls or alarms -- you can use a high-priority notification and provide a full-screen intent.
Google is also limiting access to non-resettable device identifiers, including device IMEI, serial number, and similar identifiers. The device's MAC address is also randomized when connected to different Wi-Fi networks by default -- a setting that was optional in Android 9 Pie.
To help apps to take advantage of foldable and other large-screen devices, Gogole has made a number of improvements in Android Q, including changes to onResume and onPause to support multi-resume and notify your app when it has focus. Google has also changed how the resizeableActivity manifest attribute works, to help developers manage how their apps are displayed on foldable and large screens. To you get started building and testing on these new devices, Gogole has updated the Android Emulator to support multiple-display type switching.
When a user wants to share content like a photo with someone in another app, the process should be fast. In Android Q Google is making this quicker and easier with Sharing Shortcuts, which let users jump directly into another app to share content.
The Sharing Shortcuts mechanism is similar to how App Shortcuts works, so Google has expanded the ShortcutInfo API to make the integration of both features easier. This new API is also supported in the new ShareTarget AndroidX library. This allows apps to use the new functionality, while allowing pre-Q devices to work using Direct Share.
Developers can now also show key system settings directly in the context of their apps, through a new Settings Panel API, which takes advantage of the Slices feature that was introduced in Android 9 Pie.
In addition to the randomized MAC addresses that Android Q provides when connected to different Wi-Fi networks, Google is adding new Wi-Fi standard support, WP3 and OWE, to improve security for home and work networks as well as open/public networks.
In Android Q Google refactored the Wi-Fi stack to improve privacy and performance, but also to improve common use-cases like managing IoT devices and suggesting internet connections -- without requiring the location permission.
You can now request adaptive Wi-Fi in Android Q by enabling high performance and low latency modes. These will be of great benefit where low latency is important to the user experience, such as real-time gaming, active voice calls, and similar use-cases.
Many cameras on mobile devices can simulate narrow depth of field by blurring the foreground or background relative to the subject. They capture depth metadata for various points in the image and apply a static blur to the image, after which they discard the depth metadata.
Starting in Android Q, apps can request a Dynamic Depth image which consists of a JPEG, XMP metadata related to depth related elements, and a depth and confidence map embedded in the same file on devices that advertise support.
Requesting a JPEG + Dynamic Depth image makes it possible for you to offer specialized blurs and bokeh options in apps. You can even use the data to create 3D images or support AR photography use-cases in the future. Google is making Dynamic Depth an open format for the ecosystem, and is working with device-maker partners to make it available across devices running Android Q and later.
Android Q introduces support for the open source video codec AV1. This allows media providers to stream high quality video content to Android devices using less bandwidth. In addition, Android Q supports audio encoding using Opus - a codec optimized for speech and music streaming, and HDR10+ for high dynamic range video on devices that support it.
To enable more consistency for game and graphics developers, Google is working towards a standard, updateable OpenGL driver for all devices built on Vulkan. In Android Q Google is adding experimental support for ANGLE on top of Vulkan on Android devices. ANGLE is a graphics abstraction layer designed for high-performance OpenGL compatibility across implementations. Through ANGLE, the many apps and games using OpenGL ES can take advantage of the performance and stability of Vulkan and benefit from a consistent, vendor-independent implementation of ES on Android devices. In Android Q, Google is planning to support OpenGL ES 2.0, with ES 3.0 next on its roadmap.
Google's goal is to make Vulkan on Android a broadly supported and consistent developer API for graphics. The company is working together with its device manufacturer partners to make Vulkan 1.1 a requirement on all 64-bit devices running Android Q and higher, and a recommendation for all 32-bit devices. Going forward, this will help provide a uniform high-performance graphics API for apps and games to use.
In Android Q Google is also extending support for passive authentication methods such as face, and adding implicit and explicit authentication flows. In the explicit flow, the user must explicitly confirm the transaction in the TEE during the authentication. The implicit flow is designed for a lighter-weight alternative for transactions with passive authentication.
In addition, Android Q adds support for TLS 1.3, a major revision to the TLS standard that includes performance benefits and enhanced security.
Google is also moving the ecosystem toward readiness for 64-bit devices. Later this year, Google Play will require 64-bit support in all apps.