Migrer des applications vers Android 11

À chaque version d'Android, nous introduisons de nouvelles fonctionnalités et des modifications de comportement visant à rendre Android plus utile, plus sécurisé et plus performant. Dans de nombreux cas, votre application fonctionnera exactement comme prévu, mais vous devrez peut-être parfois la modifier pour l'adapter aux modifications de la plate-forme.

Étant donné que les utilisateurs peuvent commencer à recevoir la nouvelle plate-forme dès que le code source est publié sur AOSP (projet Android Open Source), il est important que les applications soient prêtes, fonctionnent comme prévu et exploitent idéalement les nouvelles fonctionnalités et API pour tirer le meilleur parti de la nouvelle plate-forme.

Ce document offre une vue d'ensemble des phases de développement et de test types. Vous pourrez ainsi préparer un plan d'aptitude adapté au calendrier de lancement de la plate-forme et offrir une expérience de qualité à vos utilisateurs sur Android 11.

Une migration type comporte deux phases pouvant être simultanées :

  • Assurer la compatibilité des applications (avec la version finale d'Android 11)
  • Cibler les nouvelles fonctionnalités et API de la plate-forme (dès que possible après la sortie de la version finale)

Cette page décrit les étapes générales de chacune de ces phases. Lorsque vous êtes prêt à commencer, consultez Obtenir Android 11.

Assurer la compatibilité avec Android 11

Il est important de tester les fonctionnalités de votre application existante sur Android 11 afin de garantir une expérience optimale aux utilisateurs qui effectuent la mise à jour vers la dernière version d'Android. Certaines modifications de la plate-forme peuvent avoir un impact sur le comportement de votre application. Il est donc important de tester votre application de manière anticipée et approfondie, et d'y apporter les ajustements nécessaires.

En règle générale, vous pouvez ajuster votre application et publier une mise à jour sans avoir à modifier le targetSdkVersion de l'application. De même, vous ne devriez pas avoir besoin d'utiliser de nouvelles API ni de modifier le compileSdkVersion de l'application, bien que cela puisse dépendre de la façon dont votre application est compilée et des fonctionnalités de la plate-forme qu'elle utilise. Les sections suivantes décrivent les étapes à suivre.

Avant de commencer, assurez-vous de vous familiariser avec les modifications de comportement susceptibles d'affecter votre application, même si vous ne modifiez pas sa targetSdkVersion.

Effectuer des tests de compatibilité

Dans la plupart des cas, les tests de compatibilité avec Android 11 sont semblables aux tests que vous effectuez normalement lorsque vous préparez la publication de votre application. C'est le moment de consulter les consignes fondamentales relatives à la qualité des applications et les bonnes pratiques de test.

Il vous suffit d'installer votre application publiée sur un appareil équipé d'Android 11, puis de parcourir tous les flux et toutes les fonctionnalités à la recherche de problèmes. Pour vous aider à réaliser vos tests, examinez les modifications de comportement introduites dans Android 11 qui peuvent affecter le fonctionnement de votre application ou la faire planter. En particulier, veillez à consulter les principales modifications apportées à la confidentialité et à tester les correctifs que vous implémentez pour les prendre en compte.

Veillez également à examiner et à tester les utilisations d'interfaces non SDK limitées, et à passer à des SDK publics ou à des équivalents NDK à la place. Surveillez les avertissements Logcat qui mettent en évidence ces accès et utilisez la méthode StrictMode detectNonSdkApiUsage() pour les intercepter par programmation.

Enfin, veillez à tester complètement les bibliothèques et les SDK de votre application pour vous assurer qu'ils fonctionnent comme prévu sur Android 11, et suivez les bonnes pratiques en matière de confidentialité, de performances, d'expérience utilisateur, de gestion des données et d'autorisations. Si vous rencontrez un problème, essayez d'installer la dernière version du SDK ou contactez le développeur du SDK pour obtenir de l'aide.

Une fois les tests terminés et les mises à jour effectuées, nous vous recommandons de publier immédiatement votre application compatible. Cela permet à vos utilisateurs de tester l'application plus tôt et vous aide à faciliter la transition lorsqu'ils passent à Android 11.

Mettre à jour le ciblage de l'application et intégrer de nouvelles API

Une fois que vous avez publié la version compatible de votre application comme décrit précédemment, l'étape suivante consiste à ajouter une compatibilité complète avec Android 11 en mettant à jour sa targetSdkVersion et en profitant des nouvelles API et fonctionnalités d'Android 11. Vous pouvez le faire dès que vous le souhaitez, en tenant compte des exigences Google Play pour cibler la nouvelle plate-forme.

Lorsque vous planifiez votre travail pour assurer la compatibilité complète avec Android 11, commencez par examiner les modifications de comportement qui s'appliquent aux applications ciblant Android 11. Ces modifications de comportement ciblées peuvent entraîner des problèmes fonctionnels que vous devrez peut-être résoudre. Dans certains cas, elles peuvent nécessiter un travail de développement important. C'est pourquoi il est préférable de les connaître dès le début. Pour vous aider à évaluer les impacts, vous pouvez également utiliser les boutons d'activation/de désactivation de la compatibilité afin d'activer certaines modifications lors de vos tests.

La procédure suivante explique comment assurer une compatibilité complète avec Android 11.

Obtenir le SDK, modifier le ciblage et compiler avec de nouvelles API

Pour commencer à utiliser la compatibilité complète avec Android 11, téléchargez d'abord le SDK Android 11 (et tous les autres outils nécessaires) dans Android Studio. Ensuite, remplacez les targetSdkVersion et compileSdkVersion de l'application par "30", puis recompilez-la. Pour en savoir plus, consultez le guide de configuration.

Tester votre application Android 11

Une fois l'application compilée et installée sur un appareil équipé d'Android 11, commencez les tests pour vous assurer qu'elle fonctionne correctement lorsque vous ciblez Android 11. Certaines modifications de comportement ne s'appliquent que lorsque votre application cible la nouvelle plate-forme. Nous vous conseillons donc de consulter ces modifications avant de commencer.

Comme pour les tests de compatibilité de base, parcourez tous les flux et toutes les fonctionnalités à la recherche de problèmes. Axez vos tests sur les modifications de comportement pour les applications ciblant Android 11. En particulier, veillez à examiner les modifications apportées à la confidentialité et à tester les correctifs que vous implémentez pour les prendre en compte. Nous vous conseillons également de vérifier que votre application respecte les consignes fondamentales relatives à la qualité des applications et les bonnes pratiques en matière de test.

Assurez-vous d'examiner et de tester les utilisations d'interfaces non SDK limitées qui peuvent s'appliquer. Surveillez les avertissements Logcat qui mettent en évidence ces accès et utilisez la méthode StrictMode detectNonSdkApiUsage() pour les intercepter par programmation.

Enfin, veillez à tester complètement les bibliothèques et les SDK de votre application pour vous assurer qu'ils fonctionnent comme prévu sur Android 11, et suivez les bonnes pratiques en matière de confidentialité, de performances, d'expérience utilisateur, de gestion des données et d'autorisations. Si vous rencontrez un problème, essayez d'installer la dernière version du SDK ou contactez le développeur du SDK pour obtenir de l'aide.

Tester à l'aide des boutons d'activation/de désactivation de la compatibilité avec les applications

Android 11 introduit une nouvelle fonctionnalité pour les développeurs qui facilite le test de votre application avec des modifications de comportement ciblées. Si votre application est débogable, voici ce que les boutons d'activation/de désactivation vous permettent de faire:

  • Tester les modifications ciblées sans réellement modifier la targetSdkVersion de l'application. Vous pouvez utiliser les boutons d'activation/de désactivation pour forcer l'activation de certaines modifications du comportement afin d'évaluer l'impact sur votre application.
  • Axer votre test sur des modifications spécifiques. Plutôt que d'avoir à traiter toutes les modifications ciblées en même temps, les boutons d'activation/de désactivation vous permettent de désactiver toutes les modifications ciblées, à l'exception de celles que vous souhaitez tester.
  • Gérer les boutons d'activation/de désactivation via adb. Vous pouvez utiliser les commandes adb pour activer et désactiver les modifications à activer/désactiver dans votre environnement de test automatisé.
  • Déboguer plus rapidement grâce aux ID de modification standards. Les modifications pouvant être activées/désactivées possèdent un ID et un nom uniques que vous pouvez utiliser pour déboguer rapidement l'origine du problème dans la sortie du journal.

Lorsque vous préparez la modification du ciblage de votre application ou que vous développez activement la compatibilité avec Android 11, les boutons d'activation/de désactivation peuvent vous aider. Pour en savoir plus, consultez la documentation correspondante.