Migrer des applications vers Android 12

Ce document offre une vue d'ensemble des phases de développement et de test types. Il peut vous aider à élaborer un plan d'aptitude adapté au calendrier de lancement de la plate-forme et à offrir une expérience de qualité à vos utilisateurs sur Android 12.

À 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 mettre à jour pour l'adapter aux modifications de la plate-forme.

Les utilisateurs peuvent commencer à recevoir la nouvelle plate-forme dès la publication du code source sur AOSP (projet Android Open Source). Il est donc important que vos applications soient prêtes, qu'elles fonctionnent comme prévu pour les utilisateurs et, idéalement, qu'elles tirent parti des nouvelles fonctionnalités et des nouvelles API pour exploiter tout le potentiel de la nouvelle plate-forme.

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

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

Assurer la compatibilité avec Android 12

Il est important de tester les fonctionnalités de votre application existante sur Android 12 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, et d'y apporter les ajustements nécessaires.

Vous pouvez généralement ajuster votre application et publier une mise à jour sans avoir à modifier la targetSdkVersion de l'application. De même, vous n'avez pas besoin d'utiliser de nouvelles API ni de modifier la compileSdkVersion de l'application. Toutefois, cela peut dépendre de la manière dont votre application est compilée et des fonctionnalités de la plate-forme qu'elle utilise.

Avant de commencer les tests, veillez à vous familiariser avec les modifications de comportement de toutes les applications. Ces modifications peuvent affecter votre application, même si vous ne modifiez pas sa targetSdkVersion.

Obtenir Android 12

Flashez une image système Android 12 sur votre appareil ou téléchargez une image système pour Android Emulator.

Examiner les modifications

Examinez les modifications de comportement du système pour identifier les éléments de votre application pouvant être affectés.

Tester

Installez votre application sur votre appareil ou votre émulateur, puis exécutez des tests. Concentrez-vous sur les modifications de comportement du système et parcourez tous les flux d'applications.

Mettre à jour

N'apportez que les modifications de code nécessaires pour vous adapter aux modifications de comportement ou résoudre les problèmes. Recompilez avec le même niveau d'API que celui initialement ciblé par votre application. Cibler Android 12 n'est pas nécessaire.

Publier

Signez, importez et publiez votre Android App Bundle ou APK mis à jour.

Effectuer des tests de compatibilité

Dans la plupart des cas, les tests de compatibilité avec Android 12 sont semblables aux tests d'applications ordinaires. C'est le moment de consulter les consignes fondamentales relatives à la qualité des applications et les bonnes pratiques en matière de test.

Pour effectuer des tests, installez votre application publiée sur un appareil équipé d'Android 12, 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 de toutes les applications introduites dans Android 12. Ces modifications peuvent avoir une incidence sur le fonctionnement de votre application ou la faire planter.

Veillez également à examiner et tester les interfaces non SDK limitées. Vous devez remplacer toute interface limitée utilisée par votre application par un SDK public ou un équivalent 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 12, 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 permettra à vos utilisateurs de tester l'application plus tôt et facilitera leur passage à Android 12.

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

Une fois que vous avez publié une version compatible de votre application, vous devez la rendre entièrement compatible avec Android 12. Pour ce faire, mettez à jour sa targetSdkVersion et tirez parti des nouvelles API et fonctionnalités d'Android 12. Vous pouvez effectuer ces mises à jour dès que vous le souhaitez, en tenant compte des exigences Google Play pour cibler la nouvelle plate-forme.

Consultez les modifications de comportement qui affectent les applications ciblant Android 12 afin de vous assurer que votre application est entièrement compatible avec Android 12. Ces modifications de comportement ciblées peuvent entraîner des problèmes fonctionnels que vous devez alors résoudre. Dans certains cas, ces modifications nécessitent un travail de développement important. C'est pourquoi nous vous recommandons d'en prendre connaissance et de les résoudre le plus tôt possible. Pour identifier plus facilement les modifications de comportement spécifiques qui affectent votre application, utilisez 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 12.

Obtenir le SDK Android 12

Installez la dernière version preview d'Android Studio pour compiler avec Android 12. Assurez-vous de disposer d'un appareil ou d'un émulateur Android 12.
Mettez à jour votre targetSdkVersion et autres configurations de compilation.

Examiner les modifications de comportement

Consultez les modifications de comportement qui s'appliquent aux applications ciblant Android 12. Identifiez les éléments de votre application pouvant être affectés et réfléchissez à comment résoudre ces problèmes.

Vérifier si de nouvelles modifications ont été apportées à la confidentialité

Apportez les modifications de code et d'architecture nécessaires pour vous conformer à la confidentialité des utilisateurs d'Android 12.

Adopter les fonctionnalités d'Android 12

Profitez des API Android 12 pour intégrer de nouvelles fonctionnalités à vos applications. Recompilez pour Android 12.

Tester

Effectuez des tests sur un appareil ou un émulateur Android 12. Concentrez-vous sur les éléments de votre application pouvant être affectés par des modifications de comportement. Essayez de nouvelles fonctionnalités utilisant de nouvelles API. Faites part de vos commentaires concernant la plate-forme et l'API. Signalez tout problème lié à la plate-forme, à l'API ou aux SDK tiers.

Dernière mise à jour

Une fois les API Android 12 finalisées, mettez à jour votre targetSdkVersion et autres configurations de compilation, effectuez les mises à jour supplémentaires et testez votre application.

Publier

Signez, importez et publiez votre Android App Bundle ou APK mis à jour.

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

Pour commencer à tester la compatibilité complète avec Android 12, utilisez la dernière version preview d'Android Studio pour télécharger le SDK Android 12 et tous les autres outils dont vous avez besoin. Ensuite, mettez à jour les fichiers targetSdkVersion et compileSdkVersion de votre application, puis recompilez-la. Pour en savoir plus, consultez le guide de configuration du SDK.

Tester votre application Android 12

Une fois l'application compilée et installée sur un appareil équipé d'Android 12, commencez les tests pour vous assurer qu'elle fonctionne correctement lorsque vous ciblez Android 12. Certains changements de comportement ne s'appliquent que lorsque votre application cible la nouvelle plate-forme. Nous vous recommandons 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 12. 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.

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 12, 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 12 inclut des boutons d'activation/de désactivation de la compatibilité qui facilitent 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 12, les boutons d'activation/de désactivation peuvent vous aider. Pour en savoir plus, consultez les modifications apportées au framework de compatibilité (Android 12).