Changements de comportement : toutes les applications

La plate-forme Android 15 inclut des modifications de comportement susceptibles d'affecter votre application. Les modifications de comportement suivantes s'appliquent à toutes les applications lorsqu'elles s'exécutent sur Android 15, quel que soit le targetSdkVersion. Vous devez tester votre application, puis la modifier si nécessaire afin de la prendre en charge correctement, le cas échéant.

Veillez également à consulter la liste des modifications de comportement qui n'affectent que les applications ciblant Android 15.

Fonctionnalité de base

Android 15 modifie ou étend diverses fonctionnalités de base du système Android.

Modifications apportées à l'état d'arrêt du package

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 also cancels all pending intents when the app enters the stopped state on a device running Android 15. When the user's actions remove the app from the stopped state, the ACTION_BOOT_COMPLETED broadcast is 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.

Compatibilité avec les tailles de page de 16 Ko

Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, Android supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

Devices with larger page sizes can have improved performance for memory-intensive workloads. As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. We plan to make 16 KB page compatibility required for app uploads to the Google Play store next year.

As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will likely be configured with 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB devices enables your app to run on these devices and helps your app benefit from the associated performance improvements.

To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).

Benefits and performance gains

Devices configured with 16 KB page sizes use slightly more memory on average, but also gain various performance improvements for both the system and apps:

  • Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
  • Reduced power draw during app launch: 4.56% reduction on average
  • Faster camera launch: 4.48% faster hot starts on average, and 6.60% faster cold starts on average
  • Improved system boot time: improved by 1.5% (approximately 0.8 seconds) on average

These improvements are based on our initial testing, and results on actual devices will likely differ. We'll provide additional analysis of potential gains for apps as we continue our testing.

Check if your app is impacted

Si votre application utilise du code natif, vous devez la recompiler pour qu'elle soit compatible avec les appareils de 16 Ko. Si vous ne savez pas si votre application utilise du code natif, vous pouvez utiliser l'analyseur d'APK pour déterminer la présence de code natif.

Si votre application n'utilise que du code écrit en langage de programmation Java ou Kotlin, y compris toutes les bibliothèques ou tous les SDK, elle est déjà compatible avec les appareils de 16 Ko. Néanmoins, nous vous recommandons de tester votre application dans un environnement de 16 Ko pour vérifier qu'il n'y a pas de régressions inattendues dans son comportement.

Modifications requises pour que certaines applis prennent en charge l'espace privé

L'espace privé est une nouvelle fonctionnalité d'Android 15 qui permet aux utilisateurs de créer un espace distinct sur leur appareil dans lequel les applications sensibles sont à l'écart des regards indiscrets, tout en bénéficiant d'une couche d'authentification supplémentaire. Étant donné que la visibilité des applications de l'espace privé est limitée, certains types d'applications doivent prendre des mesures supplémentaires pour pouvoir voir les applications de l'espace privé d'un utilisateur et interagir avec elles.

Toutes les applications

Étant donné que les applications de l'espace privé sont conservées dans un profil utilisateur distinct, semblable aux profils professionnels, les applications ne doivent pas supposer que les copies installées de leur application qui ne figurent pas dans le profil principal se trouvent dans le profil professionnel. Si votre application utilise une logique liée aux applications de profil professionnel qui formulent cette hypothèse, vous devez ajuster cette logique.

Lanceur d'applications

Si vous développez une application de lancement, vous devez effectuer les opérations suivantes pour que les applications de l'espace privé soient visibles:

  1. Votre application doit être définie comme application de lancement par défaut de l'appareil, c'est-à-dire qu'elle doit disposer du rôle ROLE_HOME.
  2. Votre application doit déclarer l'autorisation normale ACCESS_HIDDEN_PROFILES dans son fichier manifeste.

Les applications de lancement qui déclarent l'autorisation ACCESS_HIDDEN_PROFILES doivent gérer les cas d'utilisation d'espace privé suivants:

  1. Votre application doit disposer d'un conteneur de lanceur distinct pour les applications installées dans l'espace privé.
  2. L'utilisateur doit pouvoir masquer et afficher le conteneur de l'espace privé.
  3. L'utilisateur doit pouvoir verrouiller et déverrouiller le conteneur de l'espace privé.
  4. Lorsqu'elle est verrouillée, aucune application du conteneur d'espace privé ne doit être visible ou visible via des mécanismes tels que la recherche.

Applications de plate-forme de téléchargement d'applications

L'espace privé inclut un bouton "Installer des applications" qui lance un intent implicite pour installer des applications dans l'espace privé de l'utilisateur. Pour que votre application reçoive cet intent implicite, déclarez un élément <intent-filter> dans le fichier manifeste de votre application avec un <category> correspondant à CATEGORY_APP_MARKET.

Augmentation de la version minimale du SDK cible de 23 à 24

Android 15 s'appuie sur les modifications apportées dans Android 14 et étend cette sécurité. Sous Android 15, les applications dont la targetSdkVersion est inférieure à 24 ne peuvent pas être installées. Exiger que les applications respectent les niveaux d'API modernes permet de renforcer la sécurité et la confidentialité.

Les logiciels malveillants ciblent souvent des niveaux d'API inférieurs afin de contourner les mesures de sécurité et de protection de la confidentialité introduites dans les versions plus récentes d'Android. Par exemple, certaines applications de logiciel malveillant utilisent une targetSdkVersion de 22 pour éviter d'être soumises au modèle d'autorisation d'exécution introduit en 2015 par Android 6.0 Marshmallow (niveau d'API 23). Cette modification d'Android 15 rend plus difficile pour les logiciels malveillants de contourner les améliorations de sécurité et de confidentialité. Si vous tentez d'installer une application ciblant un niveau d'API inférieur, l'installation échouera et un message semblable au suivant s'affichera dans Logcat:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Sur les appareils passant à Android 15, toutes les applications dont la version de targetSdkVersion est inférieure à 24 restent installées.

Si vous devez tester une application ciblant un niveau d'API plus ancien, utilisez la commande ADB suivante :

adb install --bypass-low-target-sdk-block FILENAME.apk

Appareil photo et contenus multimédias

Android 15 apporte les modifications suivantes au comportement de l'appareil photo et du contenu multimédia pour toutes les applications.

La lecture directe et le déchargement de la piste audio invalident désormais les pistes audio précédemment ouvertes ou les déchargent lorsque les limites de ressources sont atteintes

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.)

Expérience utilisateur et UI du système

Android 15 inclut certaines modifications destinées à créer une expérience utilisateur plus cohérente et intuitive.

Animations pour la prévisualisation du Retour activées pour les applis qui l'ont activée

Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:

  • Ensure that your app has been properly migrated to use the predictive back gesture.
  • Ensure that your fragment transitions work with predictive back navigation.
  • Migrate away from animation and framework transitions and use animator and androidx transitions instead.
  • Migrate away from back stacks that FragmentManager doesn't know about. Use back stacks managed by FragmentManager or by the Navigation component instead.

Les widgets sont désactivés lorsque l'utilisateur force l'arrêt d'une application.

Si un utilisateur force l'arrêt d'une application sur un appareil exécutant Android 15, le système désactive temporairement tous les widgets de l'application. Les widgets sont grisés et l'utilisateur ne peut pas interagir avec eux. En effet, à partir d'Android 15, le système annule tous les intents en attente d'une application lorsque celle-ci est arrêtée de force.

Le système les réactivera la prochaine fois que l'utilisateur lancera l'application.

Pour en savoir plus, consultez Modifications de l'état d'arrêt d'un package.

Abandons

À chaque version, des API Android spécifiques peuvent devenir obsolètes ou devoir être refactorisées pour offrir une meilleure expérience aux développeurs ou prendre en charge les nouvelles fonctionnalités de la plate-forme. Dans ce cas, nous abandonnons officiellement les API obsolètes et redirigeons les développeurs vers d'autres API à utiliser à la place.

L'abandon signifie que nous n'assurons plus la compatibilité officielle avec les API, mais elles resteront disponibles pour les développeurs. Pour en savoir plus sur les abandons notables de cette version d'Android, consultez la page Abandons.