Posted by Matthew McCullough – VP of Product Administration, Android Developer
At the 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 can be transferring Android ahead. This beta focuses on a number of key enhancements:
- Enhanced Person Expertise: A greater expertise throughout all kind elements, from telephones to foldables and tablets.
- Enabling Richer Apps: New APIs for inventive expression, productiveness, media, and connectivity.
- Developer Productiveness: new platform options that will help you debug and check 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 outdoors of our ordinary once-yearly timeline. In contrast to the main platform launch in Q2 that included conduct adjustments that affect 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 out there 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 }
It’s also possible to 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 match 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, person 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 person expertise for customers who’ve low imaginative and prescient, photosensitivity, or just those that choose a darkish system-wide look, an expanded choice underneath darkish theme is being launched. When enabled by a person, 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 normal DayNight themes, that is carried out robotically for you, in any other case ensure to declare isLightTheme=”false” in your darkish theme to make sure your app is just not inadvertently inverted. Commonplace Android Views, Composables, and WebViews will probably be inverted, whereas customized rendering engines like Flutter won’t. The system additionally robotically darkens your app’s splash display and adjusts the standing bar shade for distinction.
That is largely meant as an accessibility characteristic. We strongly suggest implementing a local darkish theme, which supplies you full management over your app’s look; you’ll be able to shield your model’s identification, guarantee textual content is all the time readable, and forestall any visible glitches from occurring when your UI is robotically inverted, guaranteeing a cultured, dependable expertise in your customers.
Auto-themed app icons
We suggest 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 robotically generate a themed icon in your app in case you do not present a devoted one. The system applies a shade filtering algorithm to your current launcher icon to render it in a monochrome type, permitting it to combine with the person’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 may 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
PDF doc enhancing
The android.graphics.pdf package deal has been considerably expanded to assist annotating and enhancing PDF paperwork. This class supplies core APIs for apps that want to create their very own PDF person expertise, and is the inspiration for the Jetpack PDF library, which additionally supplies 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 circumstances similar to kind filling, doc signing, doc evaluate/collaboration, interactive examine/be aware taking, and extra. We’re additionally working to deliver these annotation and enhancing 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 supplies 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. It’s also possible to register a TopologyListener to obtain real-time updates when the show setup adjustments.
Machine-aware ViewConfiguration
ViewConfiguration values (e.g., contact slop, lengthy press timeout) can now be tailor-made to particular person digital units. Which means an app working on a digital gadget will now use configuration values applicable for that gadget’s traits, not the host gadget’s.
To make sure your app behaves appropriately in multi-display eventualities (e.g., an exercise on the telephone and one other on a related sensible show), it is best to migrate from static ViewConfiguration strategies to instance-based strategies by calling ViewConfiguration.get(context).
// As an alternative of this: // val longPressTimeout = ViewConfiguration.getLongPressTimeout() // Do that, utilizing the precise 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 by way of 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 move 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
Instance for a connectivity-related tile:
<service android:identify=".MyConnectivityTileService" ... > <intent-filter> <motion android:identify="android.service.quicksettings.motion.QS_TILE" /> intent-filter> <meta-information android:identify="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 instantly 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 means for apps to direct customers to their gadget’s system replace web page. See the documentation for launch this intent securely.
- Time Zone Notifications: The system will now notify customers when their time zone is robotically modified.
- Recordsdata Desktop UX: The DocumentsUI file supervisor is receiving a Materials 3 Expressive design refresh and can present “Visible Indicators” for file operations.
- Printer Data Display: 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 spanking new audio codecs, supplies extra granular management over audio playback, and enhances the amount 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, out there underneath a royalty free license from Alliance for Open Media. The IAMF decoder helps Opus, PCM, AAC and FLAC audio inside IAMF information, in full compliance with the IAMF specification. You may leverage IAMF to ship wealthy, immersive audio experiences in your Android apps.
ExoPlayer will robotically use the framework IAMF decoder when out there. For backwards compatibility, the IAMF ExoPlayer Extension may 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 instantly into the system’s Output Switcher. This method-level UI enhancement supplies a extra intuitive and constant means 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 purposes 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 massive information buffers (like in compressed offload eventualities), as you not want to supply your complete 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 out there for MMAP offload streams to reset the playback place when a person seeks or skips a monitor.
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 robotically adapt to this person desire with none required code adjustments.
Connectivity
New APIs can be found to assist rising connectivity requirements, improve gadget administration, and provides customers extra management over community privateness.
Companion Machine Administration enhancements
The Companion Machine Supervisor (CDM) is receiving a number of updates to enhance cross-app interactions and person management in system Settings.
- Customized gadget icons: Your app can now present a customized icon for self-managed gadget associations by supplying a Bitmap utilizing the brand new setDeviceIcon() technique on the AssociationRequest.Builder. The icon will probably be displayed in system dialogs and settings, making a extra recognizable and trusted person expertise. It’s also possible to retrieve the icon for an current affiliation utilizing AssociationInfo.getDeviceIcon().
- Affiliation elimination notifications: Your app can now hear for the EVENT_ASSOCIATION_REMOVED callback by way of startObservingDevicePresence. This occasion fires when a person “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 official 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 health club tools, whereas contributing to a extra privacy-preserving discovery mannequin.
The advisable method 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 have 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 reinforce person privateness and gadget safety with new options for locking units and managing delicate information.
Safe Lock Machine
A brand new system-level safety state, Safe Lock Machine, is being launched. When enabled (e.g., remotely by way of “Discover My Machine”), the gadget locks instantly and requires the first PIN, sample, or password to unlock, heightening safety. When energetic, notifications and fast affordances on the lock display will probably be hidden, and biometric unlock could also be briefly 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 robotically locks down your gadget after a number of failed login makes an attempt.
Extra Safety updates
- Keyinfo Enchancment: The KeyInfo class now supplies a technique isUnlockedDeviceRequired() which checks whether or not the important thing can be utilized solely when the gadget is unlocked.
Developer productiveness
New options and APIs can be found to streamline debugging, testing, and profiling.
Widget engagement metrics
New AppWidgetManager APIs assist you to question for person interplay occasions along with your widgets inside a given time vary, together with clicks, scrolls, and impressions, offering information you should utilize 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 long run 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 by way of ADB. In case your app is just not 16 KB-aligned, a dialog will seem at launch, itemizing the precise native libraries that have to 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 spanking new system-initiated profiling triggers, together with when your app is killed by the person from the Recents display, Pressure Cease, or the duty supervisor. It’s also possible to now request the at the moment working background system hint utilizing ProfilingManager.requestRunningSystemTrace(), permitting you to seize profiling that has occurred earlier than the request takes place. Be aware that the background hint runs intermittently and won’t be out there on a regular basis.
Debug printing with a brand new developer toggle
A brand new “Verbose print logging” toggle is now out there in Developer Choices. When enabled, the Android Print Framework and related providers will output further debug data to logcat, which may also help you troubleshoot printing-related points in your apps.
Extra strong testing for desktop and multi-display experiences
To facilitate extra strong 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 check suites to broaden protection in your app’s desktop mode or exterior monitor use circumstances. For accessibility service builders, calling refresh() can enhance the reliability of your service.
- API for Backported Fixes: Android 16 QPR2 accommodates assist for the upcoming androidx.core:core-backported-fixes library, which can enable your app to programmatically question if a particular important bug has been mounted on a tool, enabling you to roll out options that depend upon the repair a lot sooner, with out ready for an OS launch.
- GUI Apps in Linux Terminal: The Linux terminal characteristic is being expanded to assist working Linux GUI purposes instantly inside the terminal setting digital machine.
- RootView Modified Listener: The WindowInspector class now contains 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 check effectivity.
Program timeline
The Android 16 QPR2 beta program runs from August 2025 till the ultimate public launch in This fall. At key improvement milestones, we’ll ship updates in your improvement and testing environments. Every replace contains SDK instruments, system pictures, 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 focusing on October of 2025 for our Platform Stability milestone. At this milestone, we’ll ship closing 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 gadget to get this and future Android Beta updates over-the-air. When you don’t have a Pixel gadget, you’ll be able to use the 64-bit system pictures with the Android Emulator in Android Studio. If you’re already within the Android Beta program, you can be supplied an over-the-air replace to Beta 1. We’ll replace the system pictures 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 have to wipe your gadget and manually flash it to the beta launch.
For the perfect improvement expertise with Android 16 QPR2, we suggest 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.