Android 15 introduces several changes that impact how apps function, regardless of the target SDK version.
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.
Benefits
Action required
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.
Required Changes for:
All Apps
Apps in Private Space use separate user profiles. Update your app's logic to avoid assuming non-main profile installs are work profiles.
Medical Apps
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.
Launcher apps
If you develop a launcher app, you must do the following before apps in the private space will be visible:
App store apps
To receive the 'Install Apps' intent from Private Space, declare an 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
Camera and media Improved Audio Resource Management 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 playback requests. Direct and offload audio tracks are used for:
Key Benefits:
Developer Impact:
Enhanced Predictive Back Animations
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:
Force-Stopping Apps Now Affects Widgets
Starting with Android 15, force-stopping an app temporarily disables its widgets. When a user force-stops an app, the system:
Enhanced User Privacy
Media Projection Status Bar Chip 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.
Check if your app is impacted 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: