People were expecting the first Android Q  Beta to launch this week and Google has delivered (a bit later than anticipated). Contrary to previous years, Google is not starting with a "Developer Preview." This is being called Android Q Beta 1. We've already talked a lot about the new features coming to Android Q, but Google has shared some details about the big ones in this beta.

Privacy Protections

As we've talked about previously, privacy is a big area of focus in Android Q. It's the first thing Google brings up in their details about the update. Users have more control over when apps can get location with a new option for "Allow only while the app is in use." You won't have to worry about an app pinging your location in the background.

Privacy is more than just location sharing. There are more controls for allowing apps to access shared files and new runtime permissions to control access to photos, videos, and audio. Apps must use the system file picker for downloads and there are changes for developers on how apps can use shared area on external storage. You can read more about that here.

Android Q will prevent apps from launching an activity while in the background and taking over your screen. Google is encouraging developers to use high-priority notifications instead more info about that here). Other privacy features include limited access to device identifiers such as IMEI and serial number. MAC addresses will be randomized when connected to different Wi-Fi networks by default as well.

Foldables

Android Q includes more support for the trendy foldable phone form factor. There are changes to the onResume and onPause functions to support multi-resume and notify an app when it has focus. They've also changed how the resizableActivity manifest attribute works to help developers manage how apps are displayed on foldable and large screens. The Android Emulator now supports these new multiple-display types.

Sharing Shortcuts

Android Q makes sharing easier with Sharing Shortcuts. This lets users jump directly into another app to share content. Developers can publish share targets that launch a specific activity and these are displayed in the share UI. Sharing Shortcuts work similarly to App Shortcuts, so Google is expanding the ShortcutInfo API to make the integration of both easier. The API will also allow pre-Android Q devices to use the functionality in Direct Share.

Android's share menu has long been complained about for being laggy and annoying. This update could finally fix those issues, but we'll have to see how it works in action. Since the new share API uses a push rather than pull model, Google claims it's much faster since it doesn't have to populate the menu every time it's called.

Settings Panels

A new Settings Panel API makes it possible to show key system settings directly in the context of an app. This takes advantage of the Slices feature that was included in Android Pie. The settings panel is a floating UI that can be invoked from an app to show system settings and toggles. They give the example of a browser being able to display a panel with connectivity settings.

Connectivity

Android Q has increased the location protection around Bluetooth, cellular, and Wi-Fi network scanning. They are now requiring fine location permission. Google is also adding new Wi-Fi standard support, WP3 and OWE, to improve security for home and work networks as well as open/public networks. Adaptive Wi-Fi can now be requested by enabling high performance and low latency modes. Google says this will help in areas like gaming and voice calls.

Camera, Media, & Graphics

In Android Q, apps can request Dynamic Depth images that consist of JPEG, XMP metadata for depth elements, and depth and confidence maps embedded in the same files. This will make it possible to offer specialized blurs and bokeh effects in apps. Google says the data can also be used to create 3D images or support AR photography in the future. Dynamic Depth is an open format and they're working with OEMs to make it available on as many devices as possible.

Android Q includes support for some new audio and video codecs. It supports the open source video codec AV1, audio encoding using Opus, and HDR10+. The MediaCodecInfo API introduces an easier way to determine the video rendering capabilities of an Android device. This makes it easier to always choose the best possible video quality to render.

ANGLE on Vulkan

Google is working on a standard, updateable OpenGL driver for all devices built on Vulkan. Android Q adds experimental support for ANGLE on top of Vulkan. ANGLE allows apps and games that use OpenGL ES to take advantage of the performance and stability of Vulkan and benefit from a vendor-independent implementation of ES. Android Q is planning to support OpenGL ES 2.0.

The goal is to make Vulkan a broadly supported developer API for graphics. Google is working with OEMs to make Vulkan 1.1 a requirement on all 64-bit devices running Android Q and above.

ART Performance

Android Q continues to improve the ART runtime to help apps start faster and use less memory. Google Play is now delivering cloud-based profiles along with APKs.

These are anonymized, aggregate ART profiles that let ART pre-compile parts of your app even before it’s run, giving a significant jump-start to the overall optimization process. Cloud-based profiles benefit all apps and they’re already available to devices running Android P and higher.

Android Q optimizes the Zygote process by starting an app's process earlier and moving it to a security container so it's ready immediately. They're also adding Generational Garbage Collection to ART’s Concurrent Copying (CC) Garbage Collector.


You can read more about Android Q at the Android Developer Blog. OTA and factory images for the Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, and Pixel 3 XL are available for download here. You can also enroll in the Android Beta program here. Stay tuned for much, much more about Android Q!