<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 and media Connectivity Core functionality Developer productivity and tools Graphics Internationalization Large screens and form factors Non-SDK interface restrictions Performance and battery Privacy Security User experience and system UI New features and APIs Change (all apps) Change (apps targeting 15+) Deprecation

| Category | Type | Name |
|---|---|---|
| Accessibility | New features and APIs | [Better Braille](https://developer.android.com/about/versions/15/features#braille) In Android 15, we've made it possible for [TalkBack](https://developer.android.com/guide/topics/ui/accessibility/testing#talkback) to support Braille displays that are using the HID standard over both USB and secure Bluetooth. |
| Camera and media | Change (all apps) | [Direct and offload audio playback invalidates previously open direct or offload audio tracks when resource limits are reached](https://developer.android.com/about/versions/15/behavior-changes-all#direct-audio) Beginning with Android 15, when an app requests direct playback, the system invalidates any currently open direct `AudioTrack` objects which prevent fulfilling the new track request. |
| Camera and media | Change (apps targeting 15+) | [Restrictions on requesting audio focus](https://developer.android.com/about/versions/15/behavior-changes-15#audio-focus) Apps that target Android 15 must be the top app or running an audio-related foreground service in order to request audio focus. |
| Camera and media | New features and APIs | [Low Light Boost](https://developer.android.com/about/versions/15/features#low-light-boost) Android 15 introduces Low Light Boost, an auto-exposure mode available to both [Camera 2](https://developer.android.com/media/camera/camera2) and the [night mode camera extension](https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics#EXTENSION_NIGHT). |
| Camera and media | New features and APIs | [In-app Camera Controls](https://developer.android.com/about/versions/15/features#camera-controls) Android 15 adds extensions for more control over the camera hardware and its algorithms on supported devices. |
| Camera and media | New features and APIs | [HDR headroom control](https://developer.android.com/about/versions/15/features#hdr-headroom) Android 15 lets you control the HDR headroom with [`setDesiredHdrHeadroom`](https://developer.android.com/reference/kotlin/android/view/Window#setdesiredhdrheadroom) to strike a balance between SDR and HDR content. |
| Camera and media | New features and APIs | [Loudness control](https://developer.android.com/about/versions/15/features#loudness-control) Android 15 introduces the [`LoudnessCodecController`](https://developer.android.com/reference/android/media/LoudnessCodecController) API, based on the [CTA-2075](https://shop.cta.tech/products/loudness-standard-for-over-the-top-television-and-online-video-distribution-for-mobile-and-fixed-devices-ansi-cta-2075) loudness standard. This API can help you manage audio loudness inconsistencies to make sure users don't have to constantly adjust volume when switching between content or apps. |
| Camera and media | New features and APIs | [Virtual MIDI 2.0 Devices](https://developer.android.com/about/versions/15/features#virtual-midi-devices) Android 15 extends UMP support to virtual MIDI apps, enabling composition apps to control synthesizer apps as a virtual MIDI 2.0 device just like they would with an USB MIDI 2.0 device. |
| Camera and media | New features and APIs | [More efficient AV1 software decoding](https://developer.android.com/about/versions/15/features#av1-encoding) [dav1d](https://code.videolan.org/videolan/dav1d), the popular AV1 software decoder from VideoLAN is now available for Android devices that don't support AV1 decode in hardware. |
| Camera and media | Deprecation | [Use `Spatializer` instead of `Virtualizer`](https://developer.android.com/about/versions/15/deprecations#virtualizer-deprecation) In Android 15, we're deprecating the [`Virtualizer`](https://developer.android.com/reference/android/media/audiofx/Virtualizer) class. |
| Connectivity | New features and APIs | [Satellite support](https://developer.android.com/about/versions/15/features#satellite) Android 15 continues to extend platform support for satellite connectivity and includes some UI elements to ensure a consistent user experience across the satellite connectivity landscape. |
| Connectivity | New features and APIs | [Smoother NFC experiences](https://developer.android.com/about/versions/15/features#nfc) Android 15 is working to make the tap to pay experience more seamless and reliable while continuing to support Android's robust NFC app ecosystem. |
| Connectivity | New features and APIs | [Wallet role](https://developer.android.com/about/versions/15/features#wallet-role) Android 15 introduces a Wallet role that allows tighter integration with the user's preferred wallet app. |
| Core functionality | Change (all apps) | [Changes to package stopped state](https://developer.android.com/about/versions/15/behavior-changes-all#enhanced-stop-states) In Android 15, apps are only be removed from the [`FLAG_STOPPED`](https://developer.android.com/reference/android/content/pm/ApplicationInfo#FLAG_STOPPED) state through direct or indirect user action. In addition to the existing restrictions, the system also cancels all [pending intents](https://developer.android.com/reference/android/app/PendingIntent) when the app enters the stopped state on Android 15. |
| Core functionality | Change (all apps) | [Support for 16 KB page sizes](https://developer.android.com/about/versions/15/behavior-changes-all#16-kb) Beginning with Android 15, the Android system supports development devices that are configured to use a page size of 16 KB. If you use native code in your app, you should rebuild your app with support for 16 KB devices, and all developers should test their apps using a 16 KB environment to verify that there are no unexpected regressions in app behavior. |
| Core functionality | Change (all apps) | [Required changes for some apps to support private space](https://developer.android.com/about/versions/15/behavior-changes-all#private-space-changes) [Private space](https://developer.android.com/about/versions/15/features#private-space) is a feature in Android 15 that lets users create a separate space on their device where they can keep sensitive apps away from prying eyes, under an additional layer of authentication. Because apps in the private space have restricted visibility, some types of apps need to take additional steps to be able to see and interact with apps in a user's private space. |
| Core functionality | Change (all apps) | [PNG-based emoji font removed](https://developer.android.com/about/versions/15/behavior-changes-all#png-emoji-font) The legacy, PNG-based emoji font file (`NotoColorEmojiLegacy.ttf`) has been removed, leaving just the vector-based file. |
| Core functionality | Change (all apps) | [Minimum installable target API level](https://developer.android.com/about/versions/15/behavior-changes-all#minimum-target-api-level) Apps with a `targetSdkVersion` lower than `24` can't be installed. |
| Core functionality | Change (apps targeting 15+) | [Media processing foreground service type](https://developer.android.com/about/versions/15/behavior-changes-15#mediaprocessing-fgs-type) Android 15 introduces a new foreground service type, [`mediaProcessing`](https://developer.android.com/about/versions/15/changes/foreground-service-types#media-processing). This service type is appropriate for operations like transcoding media files. |
| Core functionality | Change (apps targeting 15+) | [Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground services](https://developer.android.com/about/versions/15/behavior-changes-15#fgs-boot-completed) For apps targeting Android 15, `BOOT_COMPLETED` receivers are not allowed to launch some types of foreground services. |
| Core functionality | Change (apps targeting 15+) | [Changes to when apps can modify the global state of Do Not Disturb mode](https://developer.android.com/about/versions/15/behavior-changes-15#dnd-changes) Apps that target Android 15 can no longer change the global state or policy of Do Not Disturb (DND) on a device (either by modifying user settings, or turning off DND mode). |
| Core functionality | Change (apps targeting 15+) | [OpenJDK API changes](https://developer.android.com/about/versions/15/behavior-changes-15#openjdk-api-changes) As part of the OpenJDK API updates, there are some changes that can affect app compatibility, such as changes to some string formatting APIs, language code handling, and random int sequences. |
| Core functionality | Deprecation | [WebSQL deprecated in Android WebView](https://developer.android.com/about/versions/15/deprecations#websql-webview) WebSQL-related methods from `WebSettings` are deprecated. |
| Developer productivity and tools | New features and APIs | [OpenJDK 17 updates](https://developer.android.com/about/versions/15/features#core-libraries) Android 15 continues the work of refreshing Android's core libraries to align with the features in the latest OpenJDK LTS releases. |
| Developer productivity and tools | New features and APIs | [PDF improvements](https://developer.android.com/about/versions/15/features#pdf) Android 15 includes substantial improvements to the [`PdfRenderer`](https://developer.android.com/reference/android/graphics/pdf/PdfRenderer) APIs. |
| Developer productivity and tools | New features and APIs | [Automatic language switching refinements](https://developer.android.com/about/versions/15/features#language-switching) Android 15 adds additional controls to help apps tune automatic language switching to their use case. |
| Developer productivity and tools | New features and APIs | [Improved OpenType Variable Font API](https://developer.android.com/about/versions/15/features#opentype-variable-font-api) Android 15 improves the usability of the OpenType variable font. |
| Developer productivity and tools | New features and APIs | [Granular line break controls](https://developer.android.com/about/versions/15/features#line-breaks) Starting in Android 15, a [`TextView`](https://developer.android.com/reference/android/widget/TextView) and the underlying line breaker can preserve the given portion of text in the same line to improve readability. |
| Developer productivity and tools | New features and APIs | [App archiving](https://developer.android.com/about/versions/15/features#app-archiving) Android 15 includes OS level support for app archiving and unarchiving, making it easier for all app stores to implement it. |
| Graphics | New features and APIs | [Modernizing Android's GPU access](https://developer.android.com/about/versions/15/features#modern-gpu-apis) Android 15 includes [ANGLE](https://chromium.googlesource.com/angle/angle) as an optional layer for running OpenGL® ES on top of Vulkan; ANGLE is already shipping as the GL system driver on some new devices, and new Android devices will move to only support OpenGL through ANGLE. |
| Graphics | New features and APIs | [Improvements for `Canvas`](https://developer.android.com/about/versions/15/features#canvas) Android 15 continues our modernization of Android's `Canvas` graphics system with new capabilities. |
| Internationalization | New features and APIs | [CJK variable font](https://developer.android.com/about/versions/15/features#cjk-variable-font) Starting with Android 15, the font file for Chinese, Japanese, and Korean (CJK) languages, NotoSansCJK, is a variable font. |
| Internationalization | New features and APIs | [Inter-character justification](https://developer.android.com/about/versions/15/features#inter-character-justification) Starting with Android 15, text can be justified utilizing letter spacing by using [`JUSTIFICATION_MODE_INTER_CHARACTER`](https://developer.android.com/reference/android/text/Layout#JUSTIFICATION_MODE_INTER_CHARACTER). |
| Internationalization | New features and APIs | [Automatic line break configuration](https://developer.android.com/about/versions/15/features#automatic-line-break) In Android 15, apps can apply phrase-based line breaks only for short lines of text, using the [`LINE_BREAK_WORD_STYLE_AUTO`](https://developer.android.com/reference/kotlin/android/graphics/text/LineBreakConfig#line_break_style_auto) option. |
| Internationalization | New features and APIs | [Additional Japanese Hentaigana Font](https://developer.android.com/about/versions/15/features#hentaigana-font) In Android 15, a font file for old Japanese Hiragana (known as Hentaigana) is bundled by default. |
| Large screens and form factors | New features and APIs | [Improved large screen multitasking](https://developer.android.com/about/versions/15/features#large-screen-multitasking) Android 15 gives users better ways to multitask on large screen devices. |
| Large screens and form factors | New features and APIs | [Cover screen support](https://developer.android.com/about/versions/15/features#cover-screen) Your app can [declare a property](https://developer.android.com/reference/android/view/WindowManager#COMPAT_SMALL_COVER_SCREEN_OPT_IN) that Android 15 uses to allow your `Application` or `Activity` to be presented on the small cover screens of supported flippable devices. |
| Non-SDK interface restrictions | Change (apps targeting 15+) | [Updates to non-SDK interface restrictions](https://developer.android.com/about/versions/15/changes/non-sdk-15) Android 15 includes updated lists of restricted non-SDK interfaces based on collaboration with Android developers and the latest internal testing. |
| Performance and battery | New features and APIs | [`ApplicationStartInfo` API](https://developer.android.com/about/versions/15/features#app-start-info) The [`ApplicationStartInfo`](https://developer.android.com/reference/android/app/ApplicationStartInfo) API on Android 15 helps provide insight into app startup including startup state, time spent in launch phases, how your app was started when your `Application` class was instantiated, and more. |
| Performance and battery | New features and APIs | [Detailed app size information](https://developer.android.com/about/versions/15/features#app-size-info) Android 15 adds the [`StorageStats.getAppBytesByDataType([type])`](https://developer.android.com/reference/android/app/usage/StorageStats#getAppBytesByDataType(int)) API, which lets you get insight into how your app is using up all that space, including APK file splits, AOT and speedup related code, dex metadata, libraries, and guided profiles. |
| Performance and battery | New features and APIs | [App-managed profiling](https://developer.android.com/about/versions/15/features#app-managed-profiling) Android 15 includes the [`ProfilingManager`](https://developer.android.com/reference/android/os/ProfilingManager) class, which lets you collect profiling information from within your app. |
| Performance and battery | New features and APIs | [SQLite database improvements](https://developer.android.com/about/versions/15/features#sqlite) Android 15 introduces SQLite APIs that expose advanced features from the underlying SQLite engine that target specific performance issues that can manifest in apps. |
| Performance and battery | New features and APIs | [Android Dynamic Performance Framework updates](https://developer.android.com/about/versions/15/features#dynamic-performance) Android 15 continues our investment in the Android Dynamic Performance Framework (ADPF), a set of APIs that allow games and performance intensive apps to interact more directly with power and thermal systems of Android devices. |
| Privacy | New features and APIs | [Screen recording detection](https://developer.android.com/about/versions/15/features#screen-recording-detection) Android 15 adds [support for apps](https://developer.android.com/reference/android/view/WindowManager#addScreenRecordingCallback(java.util.concurrent.Executor,%20java.util.function.Consumer%3Cjava.lang.Integer%3E)) to detect that they are being recorded. |
| Privacy | New features and APIs | [Expanded `IntentFilter` capabilities](https://developer.android.com/about/versions/15/features#expanded-intentfilter) Android 15 builds in support for more precise `Intent` resolution through [`UriRelativeFilterGroup`](https://developer.android.com/reference/android/content/UriRelativeFilterGroup), which contains a set of [`UriRelativeFilter`](https://developer.android.com/reference/android/content/UriRelativeFilter) objects that form a set of `Intent` matching rules that must each be satisfied, including URL query parameters, URL fragments, and blocking or exclusion rules. |
| Privacy | New features and APIs | [Private space](https://developer.android.com/about/versions/15/features#private-space) Private space lets users create a separate space on their device where they can keep sensitive apps away from prying eyes, under an additional layer of authentication. Apps in the private space show up in a separate container in the launcher, and are hidden from the recents view, notifications, settings, and from other apps when the private space is locked. |
| Privacy | New features and APIs | [Query most-recent user selection for Selected Photos Access](https://developer.android.com/about/versions/15/features#selected-photos-access) Apps can highlight only the most-recently-selected photos and videos when [partial access](https://developer.android.com/about/versions/14/changes/partial-photo-video-access) to media permissions is granted. |
| Privacy | New features and APIs | [Privacy Sandbox on Android](https://developer.android.com/about/versions/15/features#privacy-sandbox) Android 15 includes the latest Android Ad Services extensions, incorporating the latest version of the Privacy Sandbox on Android. This addition is part of our work to develop technologies that improve user privacy and enable effective, personalized advertising experiences for mobile apps. |
| Privacy | New features and APIs | [Health Connect](https://developer.android.com/about/versions/15/features#health-connect) Android 15 integrates the latest extensions around Health Connect by Android, a secure and centralized platform to manage and share app-collected health and fitness data. This update adds support for data types across fitness, nutrition, skin temperature, training plans, and more. |
| Privacy | New features and APIs | [Partial screen sharing](https://developer.android.com/about/versions/14/features/app-screen-sharing) Android 15 supports partial screen sharing so users can share or record just an app window rather than the entire device screen. This feature, first enabled in Android 14 QPR2, includes `MediaProjection` callbacks that allow your app to customize the partial screen sharing experience. |
| Security | Change (apps targeting 15+) | [Restricted TLS versions](https://developer.android.com/about/versions/15/behavior-changes-15#restricted-tls-versions) Android 15 restricts the usage of TLS versions 1.0 and 1.1. These versions had previously been deprecated in Android, but are now disallowed for apps targeting Android 15. |
| Security | Change (apps targeting 15+) | [Secured background activity launches](https://developer.android.com/about/versions/15/behavior-changes-15#secured-bal) For apps targeting Android 15, we've included further changes to prevent malicious background apps from bringing other apps to the foreground, elevating their privileges, and abusing user interaction. |
| Security | Change (apps targeting 15+) | [Safer intents](https://developer.android.com/about/versions/15/behavior-changes-15#safer-intents) For apps targeting Android 15, intents that target specific components must accurately match the target's intent-filter specifications, and intents without an action no longer match any intent filters. |
| Security | New features and APIs | [Integrate Credential Manager with autofill](https://developer.android.com/identity/autofill/credential-manager-autofill) Starting with Android 15, developers can [link specific views like username or password fields with Credential Manager requests](https://developer.android.com/identity/autofill/credential-manager-autofill), making it easier to provide a tailored user experience during the sign-in process. |
| Security | New features and APIs | [Integrate single tap sign-up and sign-in with biometric prompts](https://developer.android.com/identity/sign-in/single-tap-biometric) Credential Manager [integrates biometric prompts into the credential creation and sign-in processes](https://developer.android.com/identity/sign-in/single-tap-biometric), eliminating the need for providers to manage biometric prompts. |
| Security | New features and APIs | [Key management for end-to-end encryption](https://developer.android.com/about/versions/15/features#key-mgmt-e2ee) Use the `E2eeContactKeysManager` class to facilitate end-to-end encryption (E2EE) in your Android apps. |
| Security | New features and APIs | [Permission checks on content URIs](https://developer.android.com/about/versions/15/features#content-uri) Android 15 introduces a set of APIs that perform permission checks on content URIs. |
| User experience and system UI | Change (all apps) | [Predictive back animations enabled for apps that opted in](https://developer.android.com/about/versions/15/behavior-changes-all#predictive-back) The developer option for [predictive back animations](https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture) has been removed. Instead, system animations such as back-to-home, cross-task, and cross-activity appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. |
| User experience and system UI | Change (apps targeting 15+) | [Edge-to-edge enforcement](https://developer.android.com/about/versions/15/behavior-changes-15#edge-to-edge) For apps that target Android 15, we're including several changes related to edge-to-edge. Your app's user experience might be negatively impacted by these changes if your app has UI elements near the top or bottom of the screen and your app doesn't handle insets. |
| User experience and system UI | Change (apps targeting 15+) | [Stable configuration](https://developer.android.com/about/versions/15/behavior-changes-15#stable-configuration) If your app targets Android 15 or higher, `Configuration` no longer excludes the system bars. |
| User experience and system UI | Change (apps targeting 15+) | [`elegantTextHeight` attribute defaults to `true`](https://developer.android.com/about/versions/15/behavior-changes-15#elegant-text-height) For apps targeting Android 15, the [`elegantTextHeight`](https://developer.android.com/reference/android/R.attr#elegantTextHeight) [`TextView`](https://developer.android.com/reference/android/widget/TextView) attribute becomes `true` by default, replacing the compact font used by default with some scripts that have large vertical metrics with one that is much more readable. |
| User experience and system UI | Change (apps targeting 15+) | [`TextView` width changes for complex letter shapes](https://developer.android.com/about/versions/15/behavior-changes-15#textview-width) In previous versions of Android, some cursive fonts or languages that have complex shaping might draw the letters in the previous or next character's area. In some cases, such letters were clipped at the beginning or ending position. Starting in Android 15, a `TextView` allocates width for drawing enough space for such letters and allows apps to request extra paddings to the left to prevent clipping. |
| User experience and system UI | Change (apps targeting 15+) | [Locale-aware default line height for `EditText`](https://developer.android.com/about/versions/15/behavior-changes-15#locale-aware-line-height) For apps targeting Android 15, a minimum line height is reserved for `EditText` to match the reference font for the specified `Locale`. |
| User experience and system UI | New features and APIs | [Richer widget previews with Generated Previews API](https://developer.android.com/about/versions/15/features#gen-previews) Beginning in Android 15 we are adding support for generated previews. This means that app widget providers can generate [`RemoteViews`](https://developer.android.com/reference/android/widget/RemoteViews) to use as the picker preview, instead of a static resource. |
| User experience and system UI | New features and APIs | [Picture-in-picture](https://developer.android.com/about/versions/15/features#picture-in-picture) Starting from Android 15, the [`Activity#onPictureInPictureUiStateChanged`](https://developer.android.com/reference/android/app/Activity#onPictureInPictureUiStateChanged(android.app.PictureInPictureUiState)) callback now gets triggered as soon as the picture-in-picture animation starts. |
| User experience and system UI | New features and APIs | [Improved Do Not Disturb rules](https://developer.android.com/about/versions/15/features#dnd-rules) [`AutomaticZenRule`](https://developer.android.com/reference/android/app/AutomaticZenRule) lets apps customize Attention Management (Do Not Disturb) rules and decide when to activate or deactivate them. Android 15 greatly enhances these rules with the goal of improving the user experience. |
| User experience and system UI | New features and APIs | [Set `VibrationEffect` for notification channels](https://developer.android.com/about/versions/15/features#vibrations) Android 15 supports setting rich vibrations for incoming notifications by channel. |
| User experience and system UI | New features and APIs | [Media projection status bar chip and auto stop](https://developer.android.com/about/versions/15/features#media-projection-chip-auto-stop) Android 15 QPR1 adds a prominent status bar indicator for media projection (screen sharing, casting, and recording) to ensure users are aware of ongoing media projection and to provide an accessible control for stopping the projection. Also, in-progress media projection is automatically stopped when the device screen is locked. |