Pour toucher de nouveaux utilisateurs, vous devez prendre en charge un nombre croissant de versions de la plate-forme Android et de caractéristiques des appareils. Pour améliorer l'expérience utilisateur, optimisez votre application pour les configurations de RAM, les tailles et les résolutions d'écran courantes.
Assurer la compatibilité avec différentes tailles d'écran
Votre application peut offrir une meilleure expérience utilisateur à des milliards d'utilisateurs si elle est compatible avec des écrans de différentes tailles et résolutions. Cette section décrit quelques méthodes pour y parvenir.
Utiliser des pixels indépendants de la densité (dp)
- Définir les dimensions de la mise en page en pixels ne fonctionne pas bien, car la densité de pixels varie selon les écrans. Ainsi, le même nombre de pixels peut correspondre à différentes tailles physiques sur différents appareils.
- Pour surmonter ce problème, Android prend en charge le pixel indépendant de la densité (dp), qui correspond à la taille physique d'un pixel à 160 points par pouce (densité mdpi).
- Définir des mises en page avec des dp permet de s'assurer que la taille physique de votre interface utilisateur est cohérente, quel que soit l'appareil. Consultez le guide Android sur la compatibilité avec plusieurs écrans pour connaître les bonnes pratiques concernant l'utilisation des pixels indépendants de la densité.
Tester le texte et les graphiques sur les densités d'écran ldpi et mdpi
- Testez votre texte et vos graphiques sur des écrans à densité faible et moyenne (ldpi et mdpi), car il s'agit de densités courantes, en particulier sur les appareils à bas prix. Recherchez le texte qui peut être illisible sur les écrans à faible densité, où les petits détails ne sont pas visibles.
- Les appareils dotés d'écrans à faible densité ont généralement des caractéristiques techniques moins élevées. Pour vous assurer que votre application fonctionne correctement sur ces appareils, envisagez de réduire ou d'éliminer les charges de traitement graphique importantes, telles que les animations et les transitions.
- Pour en savoir plus sur la compatibilité avec différentes densités, consultez la formation Android sur la compatibilité avec différentes densités.
Tester les mises en page sur les petites et moyennes tailles d'écran
- Vérifiez que vos mises en page se mettent à l'échelle correctement en effectuant des tests sur des écrans plus petits. À mesure que la taille des écrans diminue, soyez très sélectif quant aux éléments d'interface utilisateur visibles, car l'espace disponible est limité.
- Les consignes Material Design décrivent les métriques et les keylines pour s'assurer que vos mises en page peuvent s'adapter à différentes densités d'écran.
- Pour en savoir plus sur la compatibilité avec différentes tailles d'écran, consultez la formation Android sur la compatibilité avec différentes tailles d'écran.
Assurer la rétrocompatibilité
Tous vos utilisateurs n'utilisent pas forcément des appareils équipés de la dernière version de la plate-forme Android. Voici quelques façons d'améliorer la rétrocompatibilité pour rendre votre application disponible au plus grand nombre.
Définissez correctement vos targetSdkVersion et minSdkVersion.
-
Les applications doivent être conçues et cibler la version la plus récente d'Android pour s'assurer qu'elles offrent le comportement le plus actuel sur un large éventail d'appareils. Cela permet tout de même d'assurer la rétrocompatibilité avec les anciennes versions.
Voici les bonnes pratiques pour cibler correctement les niveaux d'API :
-
targetSdkVersiondoit être la dernière version d'Android. Cibler la version la plus récente permet à votre application d'hériter des nouveaux comportements d'exécution lorsqu'elle s'exécute sur des versions plus récentes d'Android. Veillez à tester votre application sur les versions plus récentes d'Android lorsque vous mettez à jourtargetSdkVersion, car cela peut affecter le comportement de l'application. -
minSdkVersiondéfinit la version minimale d'Android compatible. La définition deminSdkVersionentraîne également le signalement par les outils de compilation Android d'une utilisation incorrecte des nouvelles API qui peuvent ne pas être disponibles dans les anciennes versions de la plate-forme. Vous êtes ainsi protégé contre toute rupture involontaire de la rétrocompatibilité.
-
- Consultez les tableaux de bord Android, la Google Play Console pour votre application et les études de marché dans vos marchés cibles pour évaluer les versions d'Android à cibler en fonction de vos utilisateurs cibles.
Utiliser les bibliothèques Android Support
-
Assurez-vous que votre application offre une expérience cohérente sur toutes les versions de l'OS en utilisant la bibliothèque Android Support.
Cette bibliothèque fournit des versions rétrocompatibles des API du framework Android, ainsi que des fonctionnalités qui ne sont disponibles que via les API de la bibliothèque, telles que
AppCompatActivityet la bibliothèque Material Design Support. - Voici quelques-uns des points clés :
- Bibliothèque de compatibilité v4 et v7 : de nombreuses API de framework pour les anciennes versions d'Android, telles que
ViewPager,ActionBar,RecyclerViewetPalette. - Bibliothèque Support Material Design : API permettant d'ajouter des composants et des modèles Material Design à vos applications.
- Bibliothèque de compatibilité multidex : compatible avec les grandes applications qui comportent plus de 65 000 méthodes. Cela peut se produire si votre application utilise de nombreuses bibliothèques.
- Bibliothèque de compatibilité v4 et v7 : de nombreuses API de framework pour les anciennes versions d'Android, telles que
- Pour en savoir plus sur les bibliothèques Support disponibles, consultez la section Fonctionnalités des bibliothèques Support du site Android Developers.
Utiliser les services Google Play
- Les services Google Play offrent le meilleur des API Google, indépendamment de la version de la plate-forme Android. Envisagez d'utiliser les fonctionnalités des services Google Play pour offrir l'expérience Google la plus fluide possible sur les appareils Android.
- Les services Google Play incluent également des API utiles telles que
GcmNetworkManager, qui fournit une grande partie de l'APIJobSchedulerd'Android 5.0 pour les anciennes versions d'Android. - Les mises à jour des services Google Play sont distribuées automatiquement par le Google Play Store, et les nouvelles versions de la bibliothèque cliente sont fournies par le biais du gestionnaire de SDK Android.
Utiliser efficacement la mémoire
La mémoire est un élément essentiel de l'expérience utilisateur. Une bonne gestion de la mémoire peut rendre votre application plus stable et plus performante. Dans certains cas, son utilisation efficace peut être la seule chose qui rende votre application utilisable. Voici quelques conseils pour aider votre application à utiliser la mémoire de manière judicieuse.
Réduire l'espace mémoire utilisé sur les appareils à bas prix
- Ajustez dynamiquement votre empreinte mémoire pour assurer la compatibilité sur les appareils avec différentes configurations de RAM.
- Des méthodes comme
isLowRamDevice()etgetMemoryClass()vous aident à déterminer les contraintes de mémoire au moment de l'exécution. Ces informations vous permettent de réduire l'utilisation de la mémoire. Par exemple, vous pouvez utiliser des images de résolution inférieure sur les appareils disposant de peu de mémoire. - Pour en savoir plus sur la gestion de la mémoire de votre application, consultez la formation Android Gérer la mémoire de votre application.
Éviter les processus de longue durée
- Les processus de longue durée restent résidents en mémoire et peuvent ralentir l'appareil. Dans la plupart des cas, votre application doit se réactiver pour un événement donné, traiter les données et s'arrêter. Vous devez utiliser Firebase Cloud Messaging (FCM) et
GcmNetworkManagerpour éviter les services d'arrière-plan de longue durée et réduire la pression sur la mémoire de l'appareil de l'utilisateur.
Utilisation de la mémoire de référence
Android Studio fournit des outils de profilage et de benchmarking de la mémoire, ce qui vous permet de mesurer l'utilisation de la mémoire au moment de l'exécution. L'analyse comparative de l'espace mémoire utilisé par votre application vous permet de surveiller l'utilisation de la mémoire sur plusieurs versions de l'application. Cela peut vous aider à détecter une augmentation involontaire de l'espace mémoire. Utilisez l'outil Profileur de mémoire pour effectuer les opérations suivantes :
- Déterminez si des schémas d'événements de récupération de mémoire indésirables peuvent être à l'origine de problèmes de performances.
- Identifiez les types d'objets qui sont ou restent alloués de manière inattendue ou inutile.
- Identifiez l'emplacement du problème dans votre code.
Pour en savoir plus sur l'analyse comparative de l'utilisation de la mémoire, consultez Afficher le tas et les allocations avec le Profileur de mémoire.
Optimiser pour les appareils exécutant Android (édition Go)
Android (édition Go) est une expérience optimisée pour les appareils d'entrée de gamme avec 1 Go de RAM ou moins, à partir d'Android Oreo (édition Go). Pour que votre application fonctionne correctement sur les appareils Android (édition Go), vous devez tenir compte des consignes suivantes :
- targetSdkVersion doit correspondre à la dernière version d'Android. Les appareils Android (édition Go) n'exécutent qu'Android Oreo (API 27 ou version ultérieure).
- L'application doit fonctionner correctement sur les appareils disposant d'une RAM ≤ 1 Go. Gardez à l'esprit les optimisations de mémoire listées dans la section Utiliser la mémoire de manière efficace ci-dessus et utilisez Android Vitals pour identifier et corriger les comportements insatisfaisants tels que l'affichage lent et les images figées.
- La fonctionnalité Picture-in-picture (PIP) peut être désactivée sur les appareils. Avant que votre application n'utilise le mode PIP, vérifiez qu'il est disponible en appelant
hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE). - La taille de l'application sur l'appareil doit être inférieure à 40 Mo.
- La taille de l'ensemble proportionnel (PSS) de l'utilisation de la RAM par l'application ne doit pas dépasser 90 Mo. Pour les jeux, la valeur PSS de l'utilisation de la RAM ne doit pas dépasser 150 Mo. Pour en savoir plus sur la valeur PSS, consultez le guide Examiner votre utilisation de la RAM.
- Le temps de démarrage de l'application doit être minimal et inférieur à cinq secondes.
-
SYSTEM_ALERT_WINDOW(qui permet aux applications de dessiner une fenêtre au-dessus d'autres applications) peut être désactivée sur les appareils Android Go disposant d'une faible quantité de RAM. Avant de dessiner par-dessus d'autres applications, vérifiez si votre application dispose de cette autorisation en appelant Settings.canDrawOverlays(). Si votre application ne peut pas obtenir l'autorisation, effectuez une dégradation élégante de votre application afin que l'utilisateur puisse continuer à l'utiliser, en désactivant éventuellement la fonctionnalité qui requiert l'autorisationSYSTEM_ALERT_WINDOW.
Nous recommandons à la plupart des développeurs d'optimiser leur application existante, qui sera disponible sur tous les appareils Android (édition Go), car cela permettra à l'ensemble de leur audience de bénéficier d'une application plus rapide et plus légère.
Vous pouvez utiliser la fonctionnalité "Plusieurs APK" de la Play Console pour distribuer un APK spécifique pour les appareils Android (édition Go). Toutefois, vous ne devez le faire qu'en veillant à ne pas compromettre l'expérience (par exemple, en évitant de supprimer des fonctionnalités).
L'APK ciblant les appareils Android (édition Go) doit déclarer <uses-feature android:name="android.hardware.ram.low" android:required="true">, cibler au moins le niveau d'API 26 et avoir un code de version plus élevé que l'APK pour les autres éditions.
Résultats associés
Ressources supplémentaires
Pour en savoir plus sur la prise en charge de différents appareils, consultez la ressource suivante :