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 dans d'autres cas, vous devrez peut-être la modifier pour l'adapter aux changements de la plate-forme.

Étant donné que les utilisateurs peuvent commencer à bénéficier de 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 pour les utilisateurs et, idéalement, pour tirer le meilleur parti des nouvelles fonctionnalités et API.

Ce document offre une vue d'ensemble des phases de développement et de test types. Cela peut vous aider à élaborer un plan d'aptitude adapté au calendrier de lancement de la plate-forme et assurer 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 version finale)

Cette page décrit les étapes générales de chacune de ces phases. Lorsque vous êtes prêt à commencer, consultez la page 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 affecter le comportement de votre application. Il est donc important de tester votre application de manière anticipée et approfondie, puis d'apporter les ajustements nécessaires à votre application.

En règle générale, vous pouvez ajuster votre application et publier une mise à jour sans avoir à modifier la 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 manière dont votre application est compilée et des fonctionnalités de la plate-forme qu'elle utilise. Les sections suivantes décrivent les étapes.

Avant de commencer, veillez à vous familiariser avec les modifications de comportement qui peuvent 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 au type de test que vous effectuez habituellement lorsque vous préparez la publication de votre application. C'est le bon moment pour consulter les consignes fondamentales relatives à la qualité des applications et les bonnes pratiques en matière de test.

Installez simplement votre application publiée sur un appareil équipé d'Android 11, puis parcourez 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. Veillez en particulier à passer en revue les principales modifications apportées à la confidentialité et à tester les correctifs que vous allez appliquer pour les adapter.

Veillez également à consulter et à tester les utilisations d'interfaces non SDK limitées, et à passer à des SDK publics ou à des équivalents NDK. 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 leur transition vers 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 à assurer la compatibilité totale avec Android 11 en mettant à jour sa targetSdkVersion et en tirant parti des nouveaux aPI et fonctionnalités Android 11. Vous pouvez le faire dès que vous le souhaitez, en tenant compte des exigences de Google Play pour cibler la nouvelle plate-forme.

Afin de vous assurer que votre application est entièrement compatible avec Android 11, nous vous recommandons de commencer 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 développement important. Il est donc préférable de les connaître dès le début. Pour vous aider à évaluer l'impact, vous pouvez également utiliser les boutons d'activation/de désactivation de la compatibilité afin de tester votre application actuelle avec certaines modifications activées.

Pour assurer une compatibilité complète avec Android 11, procédez comme suit :

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

Pour commencer à prendre en charge Android 11, téléchargez d'abord le SDK Android 11 (et tous les autres outils nécessaires) dans Android Studio. Remplacez ensuite targetSdkVersion et compileSdkVersion par "30", puis recompilez l'application. 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. Veillez en particulier à examiner les modifications apportées à la confidentialité et à tester les correctifs que vous allez appliquer pour les adapter. Nous vous conseillons également de vérifier que votre application respecte les consignes fondamentales relatives à la qualité des applications et les bonnes pratiques pour les tests.

Veillez à consulter et à 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. Dans le cas d'une application débogable, les boutons d'activation/de désactivation vous permettent de:

  • 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 activables 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. Consultez la documentation correspondante pour en savoir plus.