<br />

The following table lists all documented features and behavior changes that
might affect app developers. Use this list to find changes that affect you,
and then click the corresponding link to read the documentation.  
Accessibility Camera Connectivity Core functionality Graphics Health and fitness Internationalization Device form factors Media Performance and battery Privacy Security User experience and system UI New features and APIs Change (all apps) Change (apps targeting 16+)

| Category | Type | Name |
|---|---|---|
| Core functionality | Change (all apps) | [ART internal changes](https://developer.android.com/about/versions/16/behavior-changes-all#art-changes) Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher. As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates. |
| Core functionality | Change (all apps) | [JobScheduler quota optimizations](https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt) Android 16 adjusts the regular and expedited job execution runtime quota based on a few factors: which app standby bucket the application is in, whether the job starts execution while the app is in a top state, and whether the job is executing while running a Foreground Service. |
| Core functionality | Change (all apps) | [Abandoned empty jobs stop reason](https://developer.android.com/about/versions/16/behavior-changes-all#abandoned-job-stop-reason) To detect and reduce abandoned jobs, apps should use the new `STOP_REASON_TIMEOUT_ABANDONED` job stop reason that the system assigns for abandoned jobs, instead of `STOP_REASON_TIMEOUT`. |
| Core functionality | Change (all apps) | [Ordered broadcast priority scope no longer global](https://developer.android.com/about/versions/16/behavior-changes-all#ordered-broadcast-priority) In Android 16, broadcast delivery order using the [`android:priority`](https://developer.android.com/guide/topics/manifest/intent-filter-element) attribute or [`IntentFilter#setPriority()`](https://developer.android.com/reference/android/content/IntentFilter#setPriority(int)) across different processes will not be guaranteed. Broadcast priorities for ordered broadcasts will only be respected within the same application process rather than across all system processes. |
| Core functionality | Change (all apps) | [16 KB page size compatibility mode](https://developer.android.com/about/versions/16/behavior-changes-all#16-kb-compatibility-mode) Android 15 introduced support for 16 KB memory pages to optimize performance of the platform. Android 16 adds a compatibility mode, allowing some apps built for 4 KB memory pages to run on a device configured for 16 KB memory pages. |
| Core functionality | Change (apps targeting 16+) | [Fixed rate work scheduling optimization](https://developer.android.com/about/versions/16/behavior-changes-16#schedule-at-fixed-rate) For apps targeting targeting Android 16 or higher, at most one missed execution of [`scheduleAtFixedRate`](https://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService#scheduleAtFixedRate(java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit)) will be immediately executed when the app returns to a valid lifecycle. |
| Core functionality | New features and APIs | [Two Android API releases in 2025](https://developer.android.com/about/versions/16/features#two-android) In Android 16, the preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion. We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps. |
| User experience and system UI | Change (all apps) | [Deprecating disruptive accessibility announcements](https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y) Android 16 deprecates accessibility announcements, characterized by the use of [`announceForAccessibility`](https://developer.android.com/reference/android/view/View#announceForAccessibility(java.lang.CharSequence)) or the dispatch of [`TYPE_ANNOUNCEMENT`](https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_ANNOUNCEMENT) accessibility events. |
| User experience and system UI | Change (all apps) | [Support for 3-button navigation](https://developer.android.com/about/versions/16/behavior-changes-all#three-button-predictive-back) Android 16 brings predictive back support to the 3-button navigation for apps that have properly migrated to predictive back. |
| User experience and system UI | Change (all apps) | [Automatic themed app icons](https://developer.android.com/about/versions/16/behavior-changes-all#themed-app-icons) Android 16 will automatically apply themes to app icons to create a cohesive home screen experience. |
| User experience and system UI | Change (apps targeting 16+) | [Elegant font APIs deprecated and disabled](https://developer.android.com/about/versions/16/behavior-changes-16#elegant-text-height) Android 16 deprecates the `elegantTextHeight` attribute, and the attribute will be ignored once your app targets Android 16. |
| User experience and system UI | Change (apps targeting 16+) | [Edge to edge opt-out going away](https://developer.android.com/about/versions/16/behavior-changes-16#edge-to-edge) For apps targeting Android 16 or higher, the `R.attr#windowOptOutEdgeToEdgeEnforcement` attribute has been removed, requiring apps that were using it to handle window insets. |
| User experience and system UI | Change (apps targeting 16+) | [Migration or opt-out required for predictive back](https://developer.android.com/about/versions/16/behavior-changes-16#predictive-back) For apps targeting Android 16, system animations such as back-to-home, cross-task, and cross-activity now appear for apps by default. To reflect this in the system, the default value of `android:enableOnBackInvokedCallback` is now `true`, and calls to `OnBackPressed` and `KeyEvent.KEYCODE_BACK` are ignored. |
| User experience and system UI | New features and APIs | [Predictive back updates](https://developer.android.com/about/versions/16/features#predictive-back-updates) Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Android 16 additionally adds the [`finishAndRemoveTaskCallback()`](https://developer.android.com/reference/android/window/SystemOnBackInvokedCallbacks#finishAndRemoveTaskCallback(android.app.Activity)) and [`moveTaskToBackCallback`](https://developer.android.com/reference/android/window/SystemOnBackInvokedCallbacks#moveTaskToBackCallback(android.app.Activity)). |
| User experience and system UI | New features and APIs | [Richer haptics](https://developer.android.com/about/versions/16/features#rich-haptics) Android 16 adds [haptic APIs](https://developer.android.com/reference/android/os/vibrator/package-summary) that let apps define the amplitude and frequency curves of a haptic effect while abstracting away differences between device capabilities. |
| User experience and system UI | New features and APIs | [Progress-centric notifications](https://developer.android.com/about/versions/16/features/progress-centric-notifications) Android 16 introduces progress-centric notifications to help users seamlessly track user-initiated, start-to-end journeys. These notifications have upgraded visibility on system surfaces and top ranking in the notification drawer. |
| User experience and system UI | New features and APIs | [Content handling for live wallpapers](https://developer.android.com/about/versions/16/features#live-wallpapers) In Android 16, the live wallpaper framework is gaining a new content API to address the challenges of dynamic, user-driven wallpapers. |
| Security | Change (all apps) | [Improved security against Intent redirection attacks](https://developer.android.com/about/versions/16/behavior-changes-all#intent-redirect-attacks) Android 16 introduces by-default security hardening solutions to `Intent` redirection exploits. |
| Security | Change (all apps) | [Companion apps no longer notified of discovery timeouts](https://developer.android.com/about/versions/16/behavior-changes-all#companion-device-timeout) CDM will no longer notify the app when a device is not found. |
| Security | Change (apps targeting 16+) | [MediaStore version lockdown](https://developer.android.com/about/versions/16/behavior-changes-16#mediastore-lockdown) For apps targeting Android 16 or higher, `MediaStore#getVersion()` will now be unique to each app. |
| Security | Change (apps targeting 16+) | [Safer Intents](https://developer.android.com/about/versions/16/behavior-changes-16#safer-intents) For apps targeting Android 16 or higher, the platform provides security improvements to the Android's intent resolution mechanism. |
| Security | Change (apps targeting 16+) | [GPU syscall filtering](https://developer.android.com/about/versions/16/behavior-changes-16#gpu-syscall-filtering) For apps targeting Android 16 or higher, a high-level SEPolicy is created to allow for fine-grained IOCTL control for the GPU. |
| Security | New features and APIs | [Key sharing API](https://developer.android.com/about/versions/16/features#key-sharing) Android 16 adds APIs that support sharing access to [Android Keystore](https://developer.android.com/privacy-and-security/keystore) keys with other apps. |
| Device form factors | Change (all apps) | [Virtual device owner overrides](https://developer.android.com/about/versions/16/behavior-changes-all#virtual-device-owner-overrides) Virtual device owners, limited to select trusted and privileged apps, can now override app settings on devices the virtual device owners manage. |
| Device form factors | Change (apps targeting 16+) | [Adaptive layouts](https://developer.android.com/about/versions/16/behavior-changes-16#adaptive-layouts) For apps targeting Android 16 or higher, the platform ignores manifest attributes and runtime APIs that restrict screen orientation, aspect ratio, and resizability. |
| Device form factors | New features and APIs | [Standardized picture and audio quality framework for TVs](https://developer.android.com/about/versions/16/features#media-quality-apis) Android 16 introduces the [`MediaQuality`](https://developer.android.com/reference/android/media/quality/package-summary) package that exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically. |
| Connectivity | Change (all apps) | [Improved bond loss handling](https://developer.android.com/about/versions/16/behavior-changes-all#improved-bond-loss-handling) Android 16 improves the handling of bond loss events. |
| Connectivity | Change (apps targeting 16+) | [New intents to handle bond loss and encryption changes](https://developer.android.com/about/versions/16/behavior-changes-16#new-intents-to-handle-bond-loss) For apps targeting Android 16 or higher, the platform provides two new intents for bond loss and encryption changes. |
| Connectivity | Change (apps targeting 16+) | [New way to remove bluetooth bond](https://developer.android.com/about/versions/16/behavior-changes-16#bond-removal-api) Apps targeting targeting Android 16 or higher can now use the `removeBond` API to remove bluetooth bonds. |
| Connectivity | New features and APIs | [Ranging with enhanced security](https://developer.android.com/about/versions/16/features#secure-ranging) Android 16 adds support for [robust security features](https://developer.android.com/reference/android/net/wifi/rtt/SecureRangingConfig) in Wi-Fi location on supported devices with Wi-Fi 6 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. |
| Connectivity | New features and APIs | [Companion device manager device presence](https://developer.android.com/about/versions/16/features#device-presence) In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. |
| Connectivity | New features and APIs | [Generic ranging APIs](https://developer.android.com/about/versions/16/features#generic-ranging) Android 16 includes the new [`RangingManager`](https://developer.android.com/reference/android/ranging/RangingManager), which provides ways to determine the distance and angle on supported hardware between the local device and a remote device. |
| Health and fitness | Change (apps targeting 16+) | [Health and fitness permissions](https://developer.android.com/about/versions/16/behavior-changes-16#health-fitness-permissions) For apps targeting Android 16 or higher, health and fitness permissions are transitioning to a more granular set of permissions under `android.permissions.health` that are used by Health Connect. |
| Privacy | Change (apps targeting 16+) | [Local Network Permission](https://developer.android.com/about/versions/16/behavior-changes-16#local-network-permission) For apps targeting Android 16 or higher, the platform will require apps to declare a permission to access the local network. |
| Privacy | Change (apps targeting 16+) | [App-owned photos](https://developer.android.com/about/versions/16/behavior-changes-16#owned-photos) Apps targeting Android 16 and higher now pre-select app-owned photos and videos in the photo picker, allowing users to deselect items to revoke future app access. |
| Privacy | New features and APIs | [Health Connect updates](https://developer.android.com/about/versions/16/features#health-connect) Health Connect adds `ACTIVITY_INTENSITY`, a new datatype defined according to World Health Organization guidelines around moderate and vigorous activity. Health Connect also contains updated APIs supporting health records. This allows apps to read and write medical records in [FHIR format](https://hl7.org/fhir/) with explicit user consent. This API is in an early access program. If you want to participate, [sign up to be part of our early access program](https://forms.gle/43HJz4Fm2UQLWy5W8). |
| Privacy | New features and APIs | [Privacy Sandbox on Android](https://developer.android.com/about/versions/16/features#privacy-sandbox) Android 16 incorporates the latest version of the [Privacy Sandbox on Android](https://developers.google.com/privacy-sandbox/overview/android), part of our ongoing work to develop technologies where users know their privacy is protected. |
| Performance and battery | New features and APIs | [Start component in ApplicationStartInfo](https://developer.android.com/about/versions/16/features#start-component) Android 16 adds [`getStartComponent()`](https://developer.android.com/reference/android/app/ApplicationStartInfo#getStartComponent()) to distinguish what component type triggered the start, which can be helpful for optimizing the startup flow of your app. |
| Performance and battery | New features and APIs | [Adaptive refresh rate](https://developer.android.com/about/versions/16/features#arr) Android 16 introduces [`hasArrSupport()`](https://developer.android.com/reference/android/view/Display#hasArrSupport()) and [`getSuggestedFrameRate(int)`](https://developer.android.com/reference/android/view/Display#getSuggestedFrameRate(int)) while restoring [`getSupportedRefreshRates()`](https://developer.android.com/reference/android/view/Display#getSupportedRefreshRates()) to make it easier for your apps to take advantage of ARR. |
| Performance and battery | New features and APIs | [Better job introspection](https://developer.android.com/about/versions/16/features#feature-pending-job-reason-history) In Android 16, we're introducing `JobScheduler#getPendingJobReasons()`, which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system. We're also introducing `JobScheduler#getPendingJobReasonsHistory()`, which returns the a list of the most recent pending job reason changes. |
| Performance and battery | New features and APIs | [System-triggered profiling](https://developer.android.com/about/versions/16/features#system-triggered-profiling) Android 16 introduces system-triggered profiling to [`ProfilingManager`](https://developer.android.com/reference/android/app/Activity#reportFullyDrawn()). Apps can register interest in receiving traces for certain triggers such as cold start [`reportFullyDrawn`](https://developer.android.com/reference/android/os/ProfilingManager) or ANRs, and then the system starts and stops a trace on the app's behalf. After the trace completes, the results are delivered to the app's data directory. |
| Performance and battery | New features and APIs | [Headroom APIs in ADPF](https://developer.android.com/about/versions/16/features#headroom-apis) In Android 16, the [`SystemHealthManager`](https://developer.android.com/sdk/api_diff/b-beta2-incr/changes/android.os.health.SystemHealthManager) introduces the [`getCpuHeadroom`](https://developer.android.com/reference/android/os/health/SystemHealthManager#getCpuHeadroom(android.os.CpuHeadroomParams)) and [`getGpuHeadroom`](https://developer.android.com/reference/android/os/health/SystemHealthManager#getGpuHeadroom(android.os.GpuHeadroomParams)) APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. |
| Media | New features and APIs | [Photo picker improvements](https://developer.android.com/about/versions/16/features#photo-picker-improvements) Android 16 includes improvements to the photo picker such as new APIs that enable apps to embed the photo picker into their view hierarchy and new APIs that enable searching from the cloud media provider for the Android photo picker. |
| Media | New features and APIs | [Advanced Professional Video](https://developer.android.com/about/versions/16/features#apv) Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production. |
| Camera | New features and APIs | [Precise color temperature and tint adjustments](https://developer.android.com/about/versions/16/features#color-temperature-tint) Android 16 adds camera support for fine color temperature and tint adjustments to better support professional video recording applications. |
| Camera | New features and APIs | [Hybrid auto-exposure](https://developer.android.com/about/versions/16/features#hybrid-auto-exposure) Android 16 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. |
| Camera | New features and APIs | [Motion photo capture intent actions](https://developer.android.com/about/versions/16/features#motion-photos) Android 16 adds standard Intent actions --- [`ACTION_MOTION_PHOTO_CAPTURE`](https://developer.android.com/reference/android/provider/MediaStore#ACTION_MOTION_PHOTO_CAPTURE), and [`ACTION_MOTION_PHOTO_CAPTURE_SECURE`](https://developer.android.com/reference/android/provider/MediaStore#ACTION_MOTION_PHOTO_CAPTURE_SECURE) --- which request that the camera application capture a motion photo and return it. |
| Camera | New features and APIs | [Camera night mode scene detection](https://developer.android.com/about/versions/16/features#night-mode-scene-detection) To help your app know when to switch to and from a night mode camera session, Android 16 adds [`EXTENSION_NIGHT_MODE_INDICATOR`](https://developer.android.com/reference/android/hardware/camera2/CaptureResult#EXTENSION_NIGHT_MODE_INDICATOR). If supported, you can use [`CaptureResult`](https://developer.android.com/reference/android/hardware/camera2/CaptureResult) within Camera2. |
| Camera | New features and APIs | [UltraHDR image enhancements](https://developer.android.com/about/versions/16/features#ultra-hdr) Android 16 adds support for [UltraHDR images](https://developer.android.com/media/platform/hdr-image-format) in the HEIC file format. |
| Internationalization | New features and APIs | [Vertical text](https://developer.android.com/about/versions/16/features#vertical-text) Android 16 adds low-level support for rendering and measuring text vertically to provide foundational vertical writing support for library developers. |
| Internationalization | New features and APIs | [Measurement system customization](https://developer.android.com/about/versions/16/features#measurement-systems) Android 16 adds the ability to customize your measurement system in regional preferences within Settings. |
| Accessibility | New features and APIs | [Improved accessibility APIs](https://developer.android.com/about/versions/16/features#a11y-apis) Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as [TalkBack](https://developer.android.com/guide/topics/ui/accessibility/testing#talkback). |
| Accessibility | New features and APIs | [Phone as microphone input for voice calls with LEA hearing aids](https://developer.android.com/about/versions/16/features#lea-phone-input) Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. |
| Accessibility | New features and APIs | [Ambient volume controls for LEA hearing aids](https://developer.android.com/about/versions/16/features#lea-ambient-volume) Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. |
| Graphics | New features and APIs | [Custom graphical effects with AGSL](https://developer.android.com/about/versions/16/features#agsl) Android 16 adds [`RuntimeColorFilter`](https://developer.android.com/reference/android/graphics/RuntimeColorFilter) and [`RuntimeXfermode`](https://developer.android.com/reference/android/graphics/RuntimeXfermode), allowing you to author complex effects like Threshold, Sepia, and Hue Saturation and apply them to draw calls. |