
Posted by Matthew McCullough – VP of Product Administration, Android Developer
Right this moment we’re releasing Android 16 quarterly platform launch 2 (QPR2) Beta 1, offering you with an early alternative to check out the APIs and options which might be shifting Android ahead. This beta focuses on a number of key enhancements:
- Enhanced Consumer Expertise: A greater expertise throughout all kind elements, from telephones to foldables and tablets.
- Enabling Richer Apps: New APIs for artistic expression, productiveness, media, and connectivity.
- Developer Productiveness: new platform options that will help you debug and take a look at your apps.
A minor SDK model
This launch marks the primary Android beta with a minor SDK model permitting us to extra quickly innovate with new platform APIs offered exterior of our normal once-yearly timeline. Not like the foremost platform launch in Q2 that included conduct adjustments that impression app compatibility, the adjustments on this launch are largely additive and designed to attenuate the necessity for added app testing.

Your app can safely name the brand new APIs on units the place they’re accessible by utilizing SDK_INT_FULL and the respective worth from the VERSION_CODES_FULL enumeration.
if (Construct.VERSION.SDK_INT_FULL >= Construct.VERSION_CODES_FULL.BAKLAVA_1) { // Name new APIs from the Android 16 QPR2 launch }
You may as well use the Construct.getMinorSdkVersion() technique to get simply the minor SDK model quantity.
val minorSdkVersion = Construct.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
The unique VERSION_CODES enumeration can nonetheless be used to check towards the SDK_INT enumeration for APIs declared in non minor releases.
if (Construct.VERSION.SDK_INT >= Construct.VERSION_CODES.BAKLAVA) { // Name new APIs from the Android 16 launch }
Since minor releases aren’t meant to have breaking conduct adjustments, they can’t be used within the uses-sdk manifest attributes.
UI, system expertise, and accessibility
This launch introduces refinements to the system UI, consumer expertise, and accessibility, from theming adjustments to enter dealing with to new APIs for adaptive apps.
Darkish theme’s new expanded choice
To create a extra constant consumer expertise for customers who’ve low imaginative and prescient, photosensitivity, or just those that favor a darkish system-wide look, an expanded choice beneath darkish theme is being launched. When enabled by a consumer, the system will intelligently invert the UI of apps that seem gentle regardless of customers having chosen the darkish theme.

The system makes use of your app’s isLightTheme theme attribute to find out whether or not to use inversion. In case your app inherits from one of many customary DayNight themes, that is achieved mechanically for you, in any other case be sure that to declare isLightTheme=”false” in your darkish theme to make sure your app will not be inadvertently inverted. Normal Android Views, Composables, and WebViews might be inverted, whereas customized rendering engines like Flutter won’t. The system additionally mechanically darkens your app’s splash display and adjusts the standing bar colour for distinction.
That is largely meant as an accessibility characteristic. We strongly advocate implementing a local darkish theme, which provides you full management over your app’s look; you may shield your model’s id, guarantee textual content is at all times readable, and forestall any visible glitches from taking place when your UI is mechanically inverted, guaranteeing a sophisticated, dependable expertise in your customers.
Auto-themed app icons
We advocate that apps management the design of their themed app icon by together with a monochrome layer inside their adaptive icon. You may preview the themed model of your app icon utilizing Android Studio.
Android 16 QPR2 can mechanically generate a themed icon in your app if you happen to do not present a devoted one. The system applies a colour filtering algorithm to your current launcher icon to render it in a monochrome type, permitting it to combine with the consumer’s chosen theme.
Interactive chooser classes
This new functionality permits your app’s UI to stay absolutely interactive when the system sharesheet is open. You may show customized UI, dynamically replace the content material or targets within the Chooser, and programmatically management its state. You will use the brand new ChooserManager to begin an interactive session and the ChooserSession object to handle it.
Smoother Android migrations
A brand new Third-party Knowledge Switch API is being launched to allow extra dependable and safe information migration between Android and iOS units. Your app can now opt-in to take part in cross-platform information transfers. This requires updating your app’s information extraction guidelines XML with a brand new <cross-platform-transfer> tag and implementing customized logic within the BackupAgent to export and import app information to and from different platforms. New strategies are additionally being added to BackupAgent, akin to onMeasureFullBackup, to present you extra management over the backup course of for big datasets.
PDF doc modifying
The android.graphics.pdf bundle has been considerably expanded to assist annotating and modifying PDF paperwork. This class offers core APIs for apps that want to create their very own PDF consumer expertise, and is the muse for the Jetpack PDF library, which additionally offers the UI for an embedded PDF viewer. The PdfRenderer.Web page class now means that you can:
With these new APIs, your apps can assist use instances akin to kind filling, doc signing, doc evaluate/collaboration, interactive examine/observe taking, and extra. We’re additionally working to deliver these annotation and modifying capabilities to the Jetpack PDF library to additional simplify the mixing of those options.
Show Topology API
To assist superior multi-display experiences, the brand new Show Topology API offers your app with details about how a number of shows are organized — their relative positions and absolute bounds. A brand new Show.isInternal() technique helps distinguish between built-in and different screens. You may as well register a TopologyListener to obtain real-time updates when the show setup adjustments.
Gadget-aware ViewConfiguration
ViewConfiguration values (e.g., contact slop, lengthy press timeout) can now be tailor-made to particular person digital units. Because of this an app operating on a digital machine will now use configuration values applicable for that machine’s traits, not the host machine’s.
To make sure your app behaves accurately in multi-display eventualities (e.g., an exercise on the cellphone and one other on a related good show), you must migrate from static ViewConfiguration strategies to instance-based strategies by calling ViewConfiguration.get(context).
// As a substitute of this: // val longPressTimeout = ViewConfiguration.getLongPressTimeout() // Do that, utilizing the particular Exercise's context: val vc = ViewConfiguration.get(myActivityContext) val longPressTimeout = vc.longPressTimeout
Extra granular haptic suggestions management
A brand new API means that you can specify the utilization when it comes to VibrationAttributes (e.g., USAGE_TOUCH) when triggering haptic suggestions. This ensures your app’s vibrations align extra exactly with user-defined depth settings for various contexts, like contact vs. accessibility.
Use the brand new View.performHapticFeedback(HapticFeedbackRequest) technique to go a request that specifies each the HapticFeedbackConstant and the specified Utilization. Current calls will proceed to work as earlier than.
Fast Settings Tile classes
To enhance the discoverability of your app’s Fast Settings tiles, now you can optionally assign them to a predefined class. By including a <meta-data> tag to your TileService declaration within the AndroidManifest.xml, your tile could be grouped with related system tiles within the Fast Settings Edit mode.
Instance for a connectivity-related tile:
<service android:title=".MyConnectivityTileService" ... > <intent-filter> <motion android:title="android.service.quicksettings.motion.QS_TILE" /> </intent-filter> <meta-information android:title="android.service.quicksettings.TILE_CATEGORY" android:worth="android.service.quicksettings.CATEGORY_CONNECTIVITY" /> </service>
Extra UI and System Expertise updates
- Managed Mouse Scrolling: A brand new mouse system setting permits customers to allow “Managed Scrolling” for exterior mice, which makes scrolling pace immediately proportional to the bodily wheel motion.
- Image-in-Image (PiP) Refactoring: The underlying mechanics of PiP transitions have been refactored, leading to smoother and extra dependable animations.
- Public System Replace Intent: The android.settings.ACTION_SYSTEM_UPDATE_SETTINGS intent motion is now a public API, offering a standardized method for apps to direct customers to their machine’s system replace web page. See the documentation for how one can launch this intent securely.
- Time Zone Notifications: The system will now notify customers when their time zone is mechanically modified.
- Information Desktop UX: The DocumentsUI file supervisor is receiving a Materials 3 Expressive design refresh and can present “Visible Alerts” for file operations.
- Printer Information Display screen: The Android Default Print Service now shows a extra complete printer data display, together with standing and provide ranges.
Media and Audio
This launch brings assist for brand new audio codecs, offers extra granular management over audio playback, and enhances the quantity expertise for voice interactions.
IAMF decoding assist
Android 16 QPR2 provides software program decoding for Immersive Audio Mannequin and Codecs (IAMF) audio. IAMF is a brand new open-source spatial audio format, accessible beneath a royalty free license from Alliance for Open Media. The IAMF decoder helps Opus, PCM, AAC and FLAC audio inside IAMF recordsdata, in full compliance with the IAMF specification. You may leverage IAMF to ship wealthy, immersive audio experiences in your Android apps.
ExoPlayer will mechanically use the framework IAMF decoder when accessible. For backwards compatibility, the IAMF ExoPlayer Extension will also be used to decode IAMF.
Private Audio Sharing in Output Switcher
Private Audio Sharing for Bluetooth Low Vitality (LE) Audio units is now built-in immediately into the system’s Output Switcher. This technique-level UI enhancement offers a extra intuitive and constant method for customers to handle and share audio out of your app to a number of LE Audio units with out requiring any adjustments to your current audio playback code.
New AAudio APIs for efficiency and management
The native AAudio library for high-performance audio has been up to date. These new APIs present extra management and higher efficiency for demanding audio functions that depend on the NDK, particularly these targeted on power-efficient, high-quality playback.
- Partial Buffer Processing in Callbacks: A brand new information callback, AAudioStream_partialDataCallback, permits your app to specify precisely what number of frames it has processed. This provides you extra flexibility when working with giant information buffers (like in compressed offload eventualities), as you not want to offer your entire requested buffer directly.
- PCM Offload over MMAP: To enhance energy effectivity, AAudio now helps PCM offload over the MMAP path. You may request this by setting the efficiency mode to AAUDIO_PERFORMANCE_MODE_POWER_SAVING_OFFLOADED. A brand new API, AAudioStream_flushFromFrame, can be accessible for MMAP offload streams to reset the playback place when a consumer seeks or skips a observe.
Extra Media and Audio updates
- HDR/SDR Brightness Slider: A brand new system-level slider permits customers to regulate the perceived brightness of HDR content material. Your app’s HDR content material will mechanically adapt to this consumer desire with none required code adjustments.
Connectivity
New APIs can be found to assist rising connectivity requirements, improve machine administration, and provides customers extra management over community privateness.
Companion Gadget Administration enhancements
The Companion Gadget Supervisor (CDM) is receiving a number of updates to enhance cross-app interactions and consumer management in system Settings.
- Customized machine icons: Your app can now present a customized icon for self-managed machine associations by supplying a Bitmap utilizing the brand new setDeviceIcon() technique on the AssociationRequest.Builder. The icon might be displayed in system dialogs and settings, making a extra recognizable and trusted consumer expertise. You may as well retrieve the icon for an current affiliation utilizing AssociationInfo.getDeviceIcon().
- Affiliation elimination notifications: Your app can now pay attention for the EVENT_ASSOCIATION_REMOVED callback through startObservingDevicePresence. This occasion fires when a consumer “forgets” a tool in system Settings or when your app’s information is cleared, permitting your app to keep up an correct connection state.
- Cross-App verification: System apps can now confirm in case your companion app has a reputable affiliation with a tool and monitor the presence of units managed by your app utilizing the DeviceId created throughout affiliation with the brand new createAndSetDeviceId API.
Extra connectivity updates
MediaRouter Community Privateness enhancements
To assist casting to units over new mediums like Bluetooth and UWB, the MediaRouter framework is evolving. Your app can now solid to a wider array of units, together with in-car shows and fitness center gear, whereas contributing to a extra privacy-preserving discovery mannequin.
The beneficial strategy is to make use of the system Output Switcher, which handles discovery over delicate mediums with out requiring your app to carry additional permissions. In case your app makes use of a customized in-app picker and also you wish to uncover units over these new mediums, you will want to request permissions from the NEARBY_DEVICES permission group (e.g., BLUETOOTH_SCAN). New MediaRoute2Info.Builder strategies can be found for route suppliers to declare required permissions.
Privateness and Safety
This launch continues to boost consumer privateness and machine safety with new options for locking units and managing delicate information.
Safe Lock Gadget
A brand new system-level safety state, Safe Lock Gadget, is being launched. When enabled (e.g., remotely through “Discover My Gadget”), the machine locks instantly and requires the first PIN, sample, or password to unlock, heightening safety. When energetic, notifications and fast affordances on the lock display might be hidden, and biometric unlock could also be quickly disabled.
Cellphone Theft Safety toggle
A user-facing toggle is being added to Theft Safety Settings, permitting customers to allow or disable the “Failed Authentication Lock” safety characteristic (launched in Android 15) that mechanically locks down your machine after a number of failed login makes an attempt.
Extra Safety updates
- Keyinfo Enchancment: The KeyInfo class now offers a way isUnlockedDeviceRequired() which checks whether or not the important thing can be utilized solely when the machine is unlocked.
Developer productiveness
New options and APIs can be found to streamline debugging, testing, and profiling.
Widget engagement metrics
New AppWidgetManager APIs will let you question for consumer interplay occasions together with your widgets inside a given time vary, together with clicks, scrolls, and impressions, offering information you should use that will help you enhance your widget’s design.
Early warnings for 16KB web page measurement compatibility
That can assist you put together for the longer term requirement that each one apps are 16 KB page-aligned, Android will now present alignment warnings on 4 KB manufacturing units for debuggable apps put in through ADB. In case your app will not be 16 KB-aligned, a dialog will seem at launch, itemizing the particular native libraries that should be mounted — permitting you to handle them forward of the Play Retailer deadline.

Enhanced profiling with new system triggers
The ProfilingManager has added assist for brand new system-initiated profiling triggers, together with when your app is killed by the consumer from the Recents display, Drive Cease, or the duty supervisor. You may as well now request the presently operating background system hint utilizing ProfilingManager.requestRunningSystemTrace(), permitting you to seize profiling that has occurred earlier than the request takes place. Notice that the background hint runs intermittently and won’t be accessible on a regular basis.
Debug printing with a brand new developer toggle
A brand new “Verbose print logging” toggle is now accessible in Developer Choices. When enabled, the Android Print Framework and related providers will output further debug data to logcat, which might help you troubleshoot printing-related points in your apps.
Extra sturdy testing for desktop and multi-display experiences
To facilitate extra sturdy testing of your apps on related shows, new public APIs can be found in UiAutomation to programmatically seize screenshots on non-default shows. Moreover, the AccessibilityWindowInfo.refresh() technique is now public, permitting accessibility providers to make sure they’re working with probably the most up-to-date window data.
You may combine these new UiAutomation capabilities into your take a look at suites to increase protection in your app’s desktop mode or exterior monitor use instances. For accessibility service builders, calling refresh() can enhance the reliability of your service.
- API for Backported Fixes: Android 16 QPR2 comprises assist for the upcoming androidx.core:core-backported-fixes library, which can enable your app to programmatically question if a selected important bug has been mounted on a tool, enabling you to roll out options that rely on the repair a lot quicker, with out ready for an OS launch.
- GUI Apps in Linux Terminal: The Linux terminal characteristic is being expanded to assist operating Linux GUI functions immediately inside the terminal setting digital machine.
- RootView Modified Listener: The WindowInspector class now consists of addGlobalWindowViewsListener(), which permits your app or testing framework to be notified in real-time when root views (like Toasts) are added or eliminated, bettering telemetry and take a look at effectivity.
Program timeline
The Android 16 QPR2 beta program runs from August 2025 till the ultimate public launch in This autumn. At key improvement milestones, we’ll ship updates in your improvement and testing environments. Every replace consists of SDK instruments, system photographs, emulators, API reference, and API diffs. We’ll spotlight new APIs and options so that you can check out as they’re prepared to check in blogs and on the Android 16 developer web site.

We’re concentrating on October of 2025 for our Platform Stability milestone. At this milestone, we’ll ship remaining SDK/NDK APIs. From that point you’ll have a number of months earlier than the ultimate launch to finish any integrations. Try the launch timeline particulars for milestones and updates.
You may enroll any supported Pixel machine to get this and future Android Beta updates over-the-air. For those who don’t have a Pixel machine, you may use the 64-bit system photographs with the Android Emulator in Android Studio. If you’re already within the Android Beta program, you may be supplied an over-the-air replace to Beta 1. We’ll replace the system photographs and SDK often all through the Android 16 QPR2 launch cycle.
If you’re within the Canary program and wish to enter the Beta program, you will want to wipe your machine and manually flash it to the beta launch.
For the perfect improvement expertise with Android 16 QPR2, we advocate that you simply use the newest Canary of the characteristic drop of Android Studio (Narwhal).
We’re on the lookout for your suggestions so please report points and submit characteristic requests on the suggestions web page. The sooner we get your suggestions, the extra we are able to embody in our work on the ultimate launch.
Thanks for serving to to form the way forward for the Android platform.
