Behavior changes: all apps

The Android 15 platform includes behavior changes that might affect your app. The following behavior changes apply to all apps when they run on Android 15, regardless of targetSdkVersion. You should test your app and then modify it as needed to support these properly, where applicable.

Make sure to also review the list of behavior changes that only affect apps targeting Android 15.

Core functionality

Android 15 modifies or expands various core capabilities of the Android system.

Changes to package stopped state

The intention of the package FLAG_STOPPED state (which users can engage in AOSP builds by long-pressing an app icon and selecting "Force Stop") has always been to keep apps in this state until the user explicitly removes the app from this state by directly launching the app or indirectly interacting with the app (through the sharesheet or a widget, selecting the app as live wallpaper, etc.). In Android 15, we are updating the behavior of the system to be aligned with this intended behavior. Apps should only be removed from the stopped state through direct or indirect user action.

To support the intended behavior, in addition to the existing restrictions, the system will also cancel all pending intents when the app enters the stopped state on Android 15. When the user's actions remove the app from the stopped state, the ACTION_BOOT_COMPLETED broadcast will be delivered to the app providing an opportunity to re-register any pending intents.

You can call the new ApplicationStartInfo.wasForceStopped() method to confirm whether the app was put into the stopped state.

Camera and media

Android 15 makes the following changes to camera and media behavior for all apps.

Direct and offload audio playback now invalidates previously open direct

or offload audio tracks when resource limits are reached

Before Android 15, if an app requested direct or offload audio playback while another app was playing audio and the resource limits were reached, the app would fail to open a new AudioTrack.

Beginning with Android 15, when an app requests direct or offload playback and the resource limits are reached, the system invalidates any currently open AudioTrack objects which prevent fulfilling the new track request.

(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)

Deprecations

With each release, specific Android APIs might become obsolete or need to be refactored to provide a better developer experience or support new platform capabilities. In these cases, we officially deprecate the obsolete APIs and direct developers to alternative APIs to use instead.

Deprecation means that we've ended official support for the APIs, but they will continue to remain available to developers. To learn more about notable deprecations in this release of Android, see the deprecations page.