Android 15 introduces several changes that impact how apps function, regardless of the target SDK version. These Android 15 behavior changes affect all applications and require developers to understand the new Android 15 updates to ensure their apps continue working properly. Whether you're developing for Android 15 or maintaining existing applications, these changes will significantly influence your app's behavior and user experience.
Android 15 introduces an update to align with the original intent of the FLAG_STOPPED state. This state, accessible by long-pressing an app icon and selecting 'Force Stop' in AOSP builds, will now persist until the user actively engages with the app, either directly (launching the app) or indirectly (interacting via sharesheet, widget, or live wallpaper). The stopped state triggers cancellation of pending intents. Upon exit from stopped state, the app receives ACTION_BOOT_COMPLETED broadcast, enabling re-registration of intents. Use the ApplicationStartInfo.wasForceStopped() method to check if your app was force-stopped.
Android 15 introduces support for devices with 16 KB memory page sizes, optimizing performance for devices with larger RAM. If your app uses NDK libraries, you'll need to rebuild it to work on 16 KB devices. This ensures compatibility and unlocks performance benefits.
Android 15 introduces Private Space, allowing users to separate sensitive apps with additional authentication. Some apps require changes to interact with apps in Private Space.
Apps in Private Space use separate user profiles. Update your app's logic to avoid assuming non-main profile installs are work profiles.
Private Space locking disables foreground/background activities, including notifications, for apps within. Medical apps relying on critical notifications should assess impact and inform users to avoid installing in Private Space.
If you develop a launcher app, you must do the following before apps in the private space will be visible:
To receive the 'Install Apps' intent from Private Space, declare an intent filter with CATEGORY_APP_MARKET in your app's manifest file.
Android removes legacy PNG-based emoji font (NotoColorEmojiLegacy.ttf). Update your app to use vector-based font or platform APIs for text rendering. To determine if your app will be impacted, search your code for references to NotoColorEmojiLegacy.ttf. You can choose to adapt your app in a number of ways:
Android 15 builds upon the security foundation established in Android 14, further strengthening protections for users. In Android 15, apps with a targetSdkVersion lower than 24 can no longer be installed. Android 15 requires apps to target API level 24 or higher to ensure:
Attempting to install an app targeting a lower API level results in an installation failure, with a message like the following one appearing in Logcat:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
Prior to Android 15, apps would fail to open a new AudioTrack when resource limits were reached during direct or offload audio playback. In Android 15, when resource limits are reached, the system will now invalidate existing open AudioTrack objects to accommodate new direct or offload playbook requests. Direct and offload audio tracks are used for:
Starting with Android 15, predictive back animations are now enabled by default for apps that have opted into the predictive back gesture, either fully or at the activity level. This change eliminates the need for the developer option, and system animations such as back-to-home, cross-task, and cross-activity will now be visible for these apps.
Ensure seamless integration with predictive back navigation:
Starting with Android 15, force-stopping an app temporarily disables its widgets. When a user force-stops an app, the system:
When the user launches the app again, the system re-enables the widgets, restoring full functionality.
Android 15 introduces a prominent status bar chip to alert users to ongoing screen sharing, casting, or recording, addressing potential privacy risks. Users can tap the chip to stop their screen from being shared, cast, or recorded. For added convenience and security, screen projection now automatically suspends when your device screen locks.
By default, your app includes the new status bar chip and automatically suspends screen projection when the lock screen activates. Ensure seamless functionality by implementing the MediaProjection.Callback onStop() method and verifying your app's response to:
These Android 15 behavior changes represent significant updates that all developers need to consider when building or updating their applications. Understanding these changes will help ensure your apps continue to function properly and provide the best possible user experience on Android 15 devices.