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.