Consignes fondamentales relatives à la qualité des applications

Dernière mise à jour : 20/03/2026

Pour créer une application de qualité, suivez les consignes relatives à la qualité des applications.

Ces consignes définissent le niveau de qualité minimal que toutes les applications doivent respecter.

Qualité adaptative des applications

Les applications Android s'exécutent sur une grande variété d'appareils, des téléphones compacts aux tablettes, en passant par les appareils pliables, les ordinateurs de bureau, les écrans connectés, les systèmes d'info-divertissement pour voiture, les téléviseurs et les appareils XR. Les modes de fenêtrage tels que l'écran partagé et le fenêtrage du bureau permettent aux applications de s'exécuter dans des parties redimensionnables d'un écran.

Suivez les consignes relatives à la qualité des applications adaptatives, en plus des consignes fondamentales relatives à la qualité des applications, pour :

  • Créer des applications optimisées pour tous les facteurs de forme et toutes les tailles d'écran
  • Améliorer le classement de vos applications dans les fiches et la recherche Google Play
  • Acquérir plus d'utilisateurs et améliorer la rétention

Consignes

Les consignes de base suivantes vous aident à créer une application de base de haute qualité.

Expérience utilisateur

Les modèles de conception graphique et d'interaction de votre appli doivent respecter les standards d'Android, pour une expérience utilisateur cohérente et intuitive.

Si possible, utilisez des composants Material Design plutôt que les composants de la plate-forme Android pour créer l'interface utilisateur de votre application. Material Design offre une apparence Android moderne et une cohérence de l'UI entre les différentes versions d'Android.

ID Tests Description
Facilité d'utilisation
Usability:UX T-Usability:Core,
T-SD-Card
L'application offre une expérience utilisateur cohérente pour tous les cas d'utilisation et sur tous les facteurs de forme.
Facilité d'utilisation : Switcher T-Usability:Switcher,
T-SD-Card
L'application passe en arrière-plan lorsque le focus bascule vers une autre application. L'application revient au premier plan lorsqu'elle est réactivée à partir du sélecteur d'applications Récents.
Facilité d'utilisation : sommeil T-Usability:Sleep,
T-SD-Card
Lorsque l'application est au premier plan, elle se met en pause lorsque l'appareil se met en veille et reprend lorsque l'appareil se réactive.
Facilité d'utilisation : verrouillage T-Usability:Lock,
T-SD-Card
Lorsque l'application est au premier plan, elle se met en pause lorsque l'appareil est verrouillé et reprend lorsque l'appareil est déverrouillé.
Interface utilisateur
UI:Parity T-UI:Transitions

Les orientations d'affichage et les états de pliage offrent globalement les mêmes fonctionnalités et les mêmes actions, et préservent la parité fonctionnelle.

UI:Fullscreen T-UI:Transitions

L'application remplit la fenêtre de l'application dans les deux orientations et n'est pas au format letterbox en raison des changements de configuration, y compris le pliage et le dépliage de l'appareil.

En cas de légère variation de la géométrie de l'écran, l'utilisation du format letterbox sur une toute petite zone est tolérée.

UI:Transitions T-UI:Transitions L'appli gère les transitions rapides entre les différentes orientations de l'écran et le pliage/dépliage des appareils, sans problèmes d'affichage ni perte d'état.
Qualité visuelle
Visuel : display T-Visual:Display

L'appli affiche les graphismes, textes, images et autres éléments de l'interface utilisateur sans distorsion, flou ni pixélisation notable.

  • L'appli utilise des drawables vectoriels lorsque cela est possible.
  • L'application utilise des graphismes de haute qualité pour toutes les tailles d'écran et tous les facteurs de forme ciblés.
  • Aucun crénelage n'est visible au bord des menus, des boutons et des autres éléments de l'interface utilisateur.
Visuel : lisibilité T-Visual:Readability L'application garantit la lisibilité du texte et des blocs de texte en limitant la longueur des lignes à 45 à 75 caractères (espaces compris) pour chacune des langues prises en charge par l'application.
Visuel : Thèmes T-Visual:Themes Le contenu de l'application et tous les contenus Web auxquels elle accède sont compatibles avec les thèmes clair et sombre.
Navigation
T-Nav:Back L'application est compatible avec la navigation standard via le bouton Retour et n'affiche pas de commande personnalisée servant de bouton de retour.
T-Nav:Back L'application est compatible avec la navigation par gestes pour accéder et revenir à l'écran d'accueil.
T-Nav:State,
T-Nav:Back

Elle préserve l'état de l'utilisateur ou son propre état lorsqu'elle quitte le premier plan, et empêche la perte accidentelle de données en cas de retour en arrière ou d'un autre changement d'état.

Lors du retour au premier plan, l'appli restaure l'état préservé et les éventuelles transactions avec état en attente. Exemples : modifications apportées à des champs modifiables, progression dans un jeu, menus, vidéos et autres sections de l'application.

  • Lorsque l'appli est réactivée à partir du sélecteur d'applis Récents, l'utilisateur retrouve l'état exact dans lequel elle se trouvait lors de la dernière utilisation.
  • Lorsque l'appli est réactivée suite à une sortie de veille de l'appareil (état verrouillé), l'utilisateur retrouve l'état exact dans lequel elle se trouvait lors de la dernière utilisation.
  • Lorsque l'appli est réactivée depuis Accueil ou Toutes les applis, elle doit effectuer l'une des opérations suivantes, en fonction du temps écoulé depuis sa dernière utilisation :
    • Si elle a été utilisée pour la dernière fois il y a peu de temps (quelques minutes), elle doit rétablir un état le plus proche possible de son état précédent.
    • Si elle n'a pas été utilisée depuis plus longtemps, essayez de faire en sorte que l'appli retrouve un état le plus proche possible de son état précédent, sinon démarrez-la sur l'écran d'accueil ou un autre état par défaut.
Notifications
Notify:Info T-Notify : info

Les notifications fournissent des informations pertinentes sur votre application.

  • N'utilisez pas les notifications pour faire de la promotion croisée ou de la publicité pour un autre produit, car cette pratique est strictement interdite sur le Play Store.
  • Les canaux de notification sont définis selon les bonnes pratiques au lieu de diffuser toutes les notifications à partir d'un seul canal.
  • Il convient de sélectionner la priorité de notification adéquate.
  • Empilez plusieurs notifications dans un seul groupe de notifications, si possible.
  • Définissez des délais d'expiration pour les notifications si c'est judicieux.
  • Les notifications ne sont permanentes que si elles sont liées à des événements en cours, comme la lecture de musique ou un appel téléphonique. Pour en savoir plus, consultez la section Fonctionnalité.
Notification : Messagerie T-Notify : info

Pour les applis de chat, les applis de réseau social et les conversations :

Accessibilité
Accès : cibles T-Access:Targets Les cibles tactiles font au moins 48 dp. Consultez les consignes de mise en page et typographie pour le Material Design.
Access:Contrast T-Access:Contrast

Le texte et les contenus de premier plan de l'application présentent les rapports de contraste suivants avec l'arrière-plan de l'application :

  • 3:1 pour le texte et les graphismes de grande taille
  • Rapport de 4,5:1 pour le texte de petite taille (moins de 18 pt ou moins de 14 pt s'il est en gras)

En savoir plus sur les couleurs et le contraste

Accès : description T-Access : description Décrivez chaque élément d'interface utilisateur, sauf TextView, avec contentDescription.

Fonctionnement

Votre application doit implémenter le comportement fonctionnel suivant.

ID Tests Description
Audio
Audio : Init T-Audio:Init

Lorsque l'utilisateur lance la lecture audio, l'appli doit effectuer l'une des opérations suivantes dans un délai d'une seconde :

  • Lancer la lecture de l'audio
  • Afficher un indicateur visuel signalant que les données audio sont en cours de préparation
Audio:Focus T-Audio:Focus L'appli doit demander la priorité audio quand la lecture audio commence, et abandonner la priorité audio quand la lecture s'arrête.
Audio : interruption T-Audio:Interrupt L'appli doit savoir gérer les demandes de priorité audio provenant d'autres applis. Par exemple, elle peut baisser le volume de lecture lorsqu'une autre appli lit un contenu vocal.
Audio : arrière-plan T-Audio:Background L'application doit prendre en charge la lecture en arrière-plan.
Audio : notification T-Audio:Notification Lorsque l'application lit un contenu audio en arrière-plan, elle doit créer une notification stylisée avec MediaStyle.
Audio : reprendre T-Audio:Resume Si l'application est en arrière-plan et que le son est en pause, le son est réactivé lorsque l'application revient au premier plan, ou l'application doit indiquer à l'utilisateur que la lecture est en pause.
Vidéo
Vidéo : PIP T-Video:PiP Si l'appli lit de la vidéo, elle doit gérer la lecture Picture-in-picture.
Vidéo : encodage T-Video:Encoding Si l'appli encode de la vidéo, elle doit utiliser la norme de compression vidéo HEVC.
Partage
Sharing:Sheet T-Sharing:Sheet L'application doit utiliser Android Sharesheet pour partager des contenus. Elle peut suggérer des cibles qui ne sont pas disponibles pour les solutions personnalisées.
Services en arrière-plan
Background:Services T-Background:Services

L'appli évite d'exécuter des services inutilement longs en arrière-plan pour assurer le bon fonctionnement de l'appareil de l'utilisateur.

Remarque : Le système applique différentes restrictions aux services d'arrière-plan.

Voici quelques exemples d'utilisations incorrectes des services d'arrière-plan :

  • Maintien d'une connexion réseau pour les notifications
  • Maintien d'une connexion Bluetooth
  • Maintien du GPS allumé

Pour en savoir plus, consultez la présentation des tâches en arrière-plan.

Performances et stabilité

Votre application doit offrir des performances, une stabilité, une compatibilité et une réactivité optimales.

ID Tests Description
Performances
Performance : démarrage T-Performance:Startup L'appli se charge rapidement, ou affiche un indicateur de progression ou un autre signal similaire si le chargement prend plus de deux secondes.
Performances : FPS T-Performance:FPS L'application effectue un rendu des frames toutes les 16 millisecondes (ou moins) pour afficher au moins 60 frames par seconde. Pour obtenir de l'aide concernant les problèmes d'affichage, consultez Lenteurs d'affichage.
Performances : strict T-Performance : strict Si StrictMode est activé (consultez la section sur les tests StrictMode), aucun clignotement rouge (avertissement StrictMode lié aux performances) n'est visible lorsque vous testez l'application.
Stabilité
Stabilité : ANR T-Stability:ANR L'application ne plante pas et ne bloque pas le thread UI, ce qui entraînerait des erreurs ANR (Android Not Responding). Utilisez le rapport pré-lancement de Google Play pour identifier les problèmes de stabilité potentiels. Après le déploiement, surveillez la page Android Vitals dans la Google Play Console.
SDK
SDK:Platform T-SDK:Platform L'application s'exécute sur la dernière version publique de la plate-forme Android sans planter ni nuire gravement aux fonctionnalités de base.
SDK:Target T-SDK:Latest L'appli cible le dernier SDK Android nécessaire pour répondre aux exigences de Google Play, en définissant la valeur targetSdk dans le fichier build.gradle du module de l'appli.
SDK:Compile T-SDK:Latest L'application est conçue avec le dernier SDK Android en définissant la valeur compileSdk dans le fichier build.gradle du module de l'application.
SDK:3P T-SDK:3P,
T-SDK:Non

Tous les SDK Google ou tiers utilisés sont à jour. Toutes les améliorations apportées à ces SDK concernant la stabilité, la compatibilité ou la sécurité doivent être disponibles rapidement pour les utilisateurs.

Pour les SDK Google, utilisez les SDK fournis par les services Google Play, s'ils sont disponibles. Ces SDK sont rétrocompatibles, reçoivent des mises à jour automatiques, réduisent la taille de votre package d'appli et utilisent efficacement les ressources sur l'appareil.

SDK:Non T-SDK : Non L'application n'utilise pas d'interfaces autres que les SDK.
SDK:Debug T-SDK:Debug Aucune bibliothèque de débogage n'est incluse dans l'application de production, car cela pourrait entraîner des problèmes de performances et de sécurité.
Batterie
Batterie : gérer T-Battery : gérer

L'appli gère correctement les fonctionnalités de gestion de l'alimentation Sommeil et Mise en veille des applications.

Les applications peuvent demander une exemption de maintenance de l'alimentation. Consultez Prise en charge d'autres scénarios d'utilisation dans Adapter votre application aux fonctionnalités Sommeil et Mise en veille des applications.

Confidentialité et sécurité

L'appli traite les données utilisateur et les informations personnelles de manière sécurisée, et fournit les niveaux d'autorisation appropriés.

Les applications publiées sur le Google Play Store doivent également respecter les règles de Google Play concernant les données utilisateur afin de protéger la confidentialité des utilisateurs.

ID Tests Description
Autorisations
Autorisations : min T-Permissions:Min L'application ne demande que le nombre minimum absolu d'autorisations nécessaires pour prendre en charge le cas d'utilisation actuel. Pour certaines autorisations, comme la position, l'application utilise si possible une spécification approximative plutôt que précise. Consultez Réduire le nombre de demandes d'autorisation.
Autorisations : sensibles T-Permissions:Sensitive

L'application ne demande l'autorisation d'accéder à des données sensibles (comme les groupes d'autorisations SMS ou Journal d'appels ou la position) ou à des services payants (comme Téléphone ou SMS) que lorsque ces données ou services sont directement liés à ses principaux scénarios d'utilisation. Les implications liées à ces autorisations doivent être communiquées de façon visible à l'utilisateur.

Selon la façon dont votre application utilise les autorisations, il existe peut-être une autre manière de traiter le scénario d'utilisation de votre application sans devoir accéder à des informations sensibles. Par exemple, plutôt que de demander des autorisations liées aux contacts d'un utilisateur, utilisez un intent implicite pour demander l'accès.

Autorisations : exécution T-Permissions:Runtime L'application demande des autorisations d'exécution lorsque la fonctionnalité est demandée, plutôt qu'au démarrage de l'application.
Autorisations : expliquer T-Permissions:Explain L'application explique clairement pourquoi des autorisations sont nécessaires.
Autorisations : dégradation T-Permissions : dégradation L'appli effectue une dégradation élégante si les utilisateurs refusent ou révoquent une autorisation. L'application ne doit pas bloquer l'accès à l'utilisateur.
Données et fichiers
Data:Sensitive T-Data:Sensitive,
T-Data:Handling
Toutes les données sensibles sont stockées dans la mémoire de stockage interne de l'appli.
Données : journal T-Data:Log Aucune donnée utilisateur personnelle ou sensible n'est enregistrée dans le journal système ou dans un journal propre à l'appli.
Données : ID T-Data:IDs L'application n'utilise aucun identifiant de matériel non réinitialisable (code IMEI, par exemple), à des fins d'identification.
Identité
Identity:Hints T-Identity:Hints L'application fournit des suggestions de saisie automatique pour les identifiants de compte et d'autres informations sensibles (informations de carte de crédit, adresses physiques, numéros de téléphone, etc.).
Identity:CredMan T-Identity:CredMan L'application intègre Credential Manager pour Android afin de proposer une expérience de connexion fluide qui unifie la prise en charge des clés d'accès, de l'identité fédérée et des mots de passe.
Identité : bio T-Identity:Bio L'application accepte l'authentification biométrique pour protéger les transactions financières ou les informations sensibles (documents importants de l'utilisateur, par exemple).
Composants de l'appli
Composants : exportation T-Components:Export

L'application définit explicitement l'attribut android:exported pour toutes les activités, services, broadcast receivers et en particulier pour les fournisseurs de contenu.

Seuls les composants d'appli qui partagent des données avec d'autres applis ou qui doivent être appelés par d'autres applis sont exportés.

Composants : autorisations T-Components : autorisations

L'ensemble des intents et des diffusions respectent les bonnes pratiques :

Composants : protection T-Components:Protection

Tous les composants qui partagent des contenus entre les applications utilisent android:protectionLevel="signature" pour les autorisations personnalisées. C'est le cas pour les activités, les services, les broadcast receivers et en particulier pour les fournisseurs de contenu.

Les applications ne doivent pas dépendre de l'accès à une liste de packages installés.

Mise en réseau
Réseau : trafic T-Network:Traffic Le trafic réseau est intégralement envoyé via le protocole SSL.
Network:Config T-Network:Config L'appli déclare une configuration de sécurité réseau.
Réseau : Play T-Network:Play Si l'application utilise les services Google Play, le fournisseur de sécurité est initialisé au démarrage de l'application.
WebViews
WebViews:Config T-WebViews:Config,
T-WebViews:Nav
N'utilisez pas setAllowUniversalAccessFromFileURLs() pour accéder au contenu local. Utilisez plutôt WebViewAssetLoader.
WebViews:JavaScript T-WebViews:JavaScript,
T-WebViews:Nav

Les WebViews n'utilisent pas addJavaScriptInterface() avec du contenu non approuvé.

Sur Android 6.0 (niveau d'API 23 et versions ultérieures), utilisez plutôt les canaux de message HTML.

Exécution
Exécution : groupes T-Execution:Bundles

L'application ne charge pas dynamiquement du code extérieur à son APK. Utilisez les Android App Bundles, qui incluent Play Feature Delivery et Play Asset Delivery.

Depuis août 2021, l'utilisation d'Android App Bundle est obligatoire pour toutes les nouvelles applications du Google Play Store.

Cryptographie
Crypto:Algorithms T-Crypto:Algorithms L'application utilise de puissants algorithmes cryptographiques et un générateur de nombres aléatoires fournis par la plate-forme. Elle n'implémente pas d'algorithmes personnalisés.

Google Play

Activez la publication de votre application sur Google Play.

ID Tests Description
Règles
Play:Policies T-Play : règles L'application respecte à la lettre le Règlement relatif au contenu Google Play pour les développeurs. Elle ne propose pas de contenus inappropriés et n'utilise pas la propriété intellectuelle ni la marque d'autres personnes.
Play:Maturity T-Play : règles La classification par âge de l'application est définie de manière appropriée, en fonction des Consignes de classification du contenu.
Page d'informations sur l'appli
Play : graphismes T-Play:Graphics,
T-Play:Assets

L'image de présentation de l'application respecte les consignes décrites dans cet article d'aide. Vérifiez les points suivants :

  • La fiche de l'application contient une image de présentation de haute qualité.
  • L'image de présentation ne contient pas de photos d'appareil, de captures d'écran ni de petits caractères qui sont illisibles lorsqu'ils sont affichés en taille réduite sur la plus petite taille d'écran ciblée par votre application.
  • L'image de présentation ne ressemble pas à une publicité.
Play:NonAndroid T-Play:Assets Les captures d'écran et vidéos de l'application ne montrent ni ne mentionnent d'appareils autres qu'Android.
Play:Misleading T-Play:Assets Les captures d'écran ou vidéos de l'application ne représentent pas ses contenus ni son expérience utilisateur de manière trompeuse.
Assistance utilisateur
Play:Bugs T-Play : règles Les bugs courants signalés par les utilisateurs dans l'onglet Avis de la page Google Play sont résolus s'ils sont reproductibles et surviennent sur de nombreux appareils différents. Si un bug ne survient que sur quelques appareils, vous devez quand même le résoudre si ces appareils sont particulièrement populaires ou récents.

Environnement de test

Configurez un environnement de test comme suit :

  • Tests avec un émulateur : Android Emulator est un excellent moyen pour tester votre application sous différentes versions d'Android et résolutions d'écran. Configurez des appareils émulés (AVD) pour représenter les facteurs de forme et les combinaisons matériel/logiciel les plus courants pour votre base d'utilisateurs cible. Testez différents facteurs de forme à l'aide des émulateurs suivants (au minimum) :

    • Appareils pliables : appareil de 7,6 pouces avec écran pliable (classé avec les téléphones dans AVD Manager)
    • Tablette : Pixel C 9,94 pouces (2 560 x 1 800 px)
    • Test des notifications d'applis mobiles : associez un appareil mobile / émulateur à un émulateur Wear OS (Wear OS de forme ronde 1,84 pouces).
  • Appareils physiques : votre environnement de test doit inclure quelques appareils physiques représentant les principaux facteurs de forme et combinaisons matériel/logiciels disponibles pour les consommateurs. Il n'est pas nécessaire d'effectuer des tests sur tous les appareils disponibles sur le marché. Concentrez-vous sur quelques appareils représentatifs, voire un ou deux appareils par facteur de forme.

  • Bancs de test d'appareils : vous pouvez également utiliser des services tiers comme Firebase Test Lab pour tester votre application sur un large éventail d'appareils.

  • Faites vos tests avec la dernière version d'Android : en plus de tester votre appli avec des versions d'Android représentatives de votre base d'utilisateurs cible, vous devez toujours la tester sur la dernière version d'Android pour vous assurer que les nouveaux comportements n'ont pas d'incidence sur l'expérience utilisateur de votre appli.

Pour obtenir d'autres conseils sur les tests, y compris les tests unitaires, les tests d'intégration et les tests d'UI, consultez Principes fondamentaux des tests des applications Android.

StrictMode

Pour tester les performances, activez StrictMode dans votre application. Utilisez StrictMode pour détecter les opérations susceptibles de nuire aux performances, aux accès réseau, ainsi qu'aux opérations de lecture et d'écriture de fichiers. Recherchez les opérations susceptibles de poser problème, aussi bien sur le thread principal que sur d'autres threads.

Configurez une règle de surveillance par thread à l'aide de StrictMode.ThreadPolicy.Builder et activez tous les dispositifs de surveillance compatibles dans ThreadPolicy à l'aide de detectAll().

Activez la notification visuelle des cas de non-respect des règles pour ThreadPolicy à l'aide de penaltyFlashScreen().

Tests

Les tests fondamentaux de qualité des applications vous aident à évaluer la qualité de base de votre application. Vous pouvez combiner les tests ou intégrer des groupes de tests dans votre programme de test.

Expérience utilisateur

ID Fonctionnalité Description
Facilité d'utilisation
T-Usability:Core Usability:UX

Accédez à l'ensemble des sections de l'appli (intégralité des écrans, boîtes de dialogue, paramètres et parcours utilisateur).

Procédez comme suit :
  • Si l'appli permet de modifier ou créer des contenus, de jouer ou de lire des contenus multimédias, pensez à tester ces procédures.
  • Quand vous testez votre appli, introduisez des interruptions provenant d'autres applis, par exemple des notifications ou des appels téléphoniques. Appliquez des changements temporaires aux attributs de l'appareil (connectivité réseau, fonctionnement de la batterie, disponibilité du GPS, charge système, etc.).
  • Accédez à tous les parcours d'achat via une appli et testez-les.
T-Usability:Switcher Usability:Switcher Depuis chaque écran de l'appli, passez à une autre appli en cours d'exécution, puis revenez à l'appli à tester à l'aide du sélecteur d'applis Récents.
T-Usability:Sleep Facilité d'utilisation : Sommeil Appuyez sur le bouton Marche/Arrêt pour mettre l'appareil en veille, puis appuyez à nouveau dessus pour réactiver l'écran.
T-Usability:Lock Usability:Lock Configurez le verrouillage de l'écran de l'appareil. Appuyez sur le bouton Marche/Arrêt pour mettre l'appareil en veille afin de le verrouiller. Appuyez de nouveau sur le bouton Marche/Arrêt pour réactiver l'écran et déverrouiller l'appareil.
Carte SD
T-SD-Card Usability:UX

Effectuez des tests de fonctionnalité de base avec l'application installée sur la carte SD d'un appareil (si l'application est compatible avec cette méthode d'installation).

Pour déplacer l'application sur une carte SD, consultez les paramètres de l'application.

Interface utilisateur
T-UI:Transitions UI:Parity,
UI:Fullscreen,
UI:Transitions

À partir de chaque écran de l'appli, faites pivoter l'appareil entre les modes paysage et portrait, et pliez et dépliez-le au moins trois fois.

Vérifiez que l'application effectue les opérations suivantes :
  • Parité des fonctions dans toutes les orientations d'affichage et tous les états de pliage
  • Remplit la fenêtre de l'application dans toutes les orientations d'affichage et tous les états de pliage, et n'est pas au format letterbox
  • Maintient l'état et ne présente aucun problème d'affichage lors des transitions rapides entre les orientations et le pliage/dépliage de l'appareil
Qualité visuelle
T-Visual:Display Visuel : écran Utilisez toutes les fonctionnalités de votre application. Vérifiez que tous les éléments visuels, y compris les graphiques, le texte, les images et les autres éléments de l'interface utilisateur, ne sont pas déformés, flous ni pixélisés.
T-Visual:Readability Visuel : lisibilité

Examinez tous les blocs de texte de l'application. Vérifiez que la longueur des lignes de texte et des blocs de texte est limitée à 45 à 75 caractères (espaces compris) pour une meilleure lisibilité.

Vérifiez les points suivants :
  • La composition est acceptée dans tous les facteurs de forme compatibles.
  • Aucune lettre ni aucun mot tronqué
  • Aucun retour à la ligne inapproprié n'est visible sur les boutons ou les icônes.
  • Espacement suffisant entre le texte et les éléments situés autour
T-Visual:Themes Visuel : thèmes Vérifiez que tout le texte est lisible dans les thèmes clair et sombre. Vérifiez que tous les éléments visuels sont clairement discernables et esthétiques dans les thèmes clair et sombre.
Navigation
T-Nav:Back Nav:BackButton,
Nav:BackGesture

Accédez à l'ensemble des sections de l'appli (intégralité des écrans, boîtes de dialogue, paramètres et parcours utilisateur).

Sur chaque écran de l'application, appuyez sur le bouton Retour ou faites un geste de retour en arrière. L'application doit revenir à l'écran précédent ou à l'écran d'accueil.

T-Nav:State Nav:State Depuis chaque écran de l'appli, appuyez sur le bouton Accueil de l'appareil ou balayez l'écran vers le haut dans la navigation par gestes, puis relancez l'appli depuis l'écran Toutes les applis.
Notifications
T-Notify:Info Notify:Info,
Notify:Messaging
Déclenchez tous les types de notifications que l'appli peut afficher et examinez-les dans le panneau des notifications. Développez les notifications le cas échéant (Android 4.1 et versions ultérieures), puis appuyez sur toutes les actions disponibles.
Accessibilité
T-Access:Targets Accès : cibles Vérifiez que la taille et la position des cibles tactiles restent cohérentes et accessibles dans toutes les tailles d'écran et quelles que soient les configurations. Pour en savoir plus sur l'accessibilité, consultez Accessibility Scanner.
T-Access:Contrast Access:Contrast Vérifiez le contraste de tous les éléments visuels.
T-Access:Description Access:Description Vérifiez que tous les éléments d'interface utilisateur autres que TextView comportent des descriptions de contenu.

Fonctionnement

ID Fonctionnalité Description
Audio
T-Audio:Init Audio : Init Lancer la lecture audio Vérifiez que l'application commence à lire le contenu audio dans un délai d'une seconde ou fournit un indicateur visuel signalant que les données audio sont en cours de préparation pour la lecture.
T-Audio:Focus Audio : se concentrer Lancer la lecture audio L'application doit demander la priorité audio. Lorsque la lecture audio s'arrête, l'application doit abandonner la priorité audio (ce qui se produit automatiquement pour les applications qui ciblent Android 12 (niveau d'API 31) et les versions ultérieures).
T-Audio:Interrupt Audio : interruption Lancer la lecture audio Lancez la lecture audio dans une autre application. Votre application doit répondre au changement de priorité audio et arrêter la lecture audio ou réduire le volume de lecture.
T-Audio:Background Audio : arrière-plan Lancer la lecture audio Interagissez avec une autre application non audio en tant qu'application au premier plan. L'application doit continuer à lire l'audio en arrière-plan.
T-Audio:Notification Audio : notification Lancer la lecture audio Interagissez avec une autre application non audio en tant qu'application au premier plan. Vérifiez que votre application continue de lire l'audio en arrière-plan et qu'elle a créé une notification stylisée avec MediaStyle. Consultez Utiliser les commandes multimédias de manière appropriée.
T-Audio:Resume Audio : reprendre Lancer la lecture audio Interagissez avec une autre application non audio en tant qu'application au premier plan. Interagissez avec votre application pour la mettre au premier plan. L'audio doit reprendre ou le volume doit être rétabli. Sinon, l'application doit indiquer à l'utilisateur que la lecture est en pause.
T-Video:PiP Vidéo : PiP Activez la lecture de vidéos en mode Picture-in-picture dans l'application.
T-Video:Encoding Vidéo : Encodage Vérifiez que l'application encode la vidéo à l'aide de la norme de compression vidéo HEVC.
Partage
T-Sharing:Sheet Partage : feuille Créez un intent et démarrez une activité en appelant startActivity() avec l'intent comme argument. Consultez Utiliser Android Sharesheet. Votre application doit afficher la feuille de partage Android.
Services en arrière-plan
T-Background:Services Contexte : Services

Utilisez toutes les fonctionnalités principales de votre application. Vérifiez qu'aucun service d'arrière-plan de longue durée n'est démarré.

Passez à une autre application pour envoyer votre application en arrière-plan. Accédez à Paramètres et vérifiez si votre application exécute des services en arrière-plan. Sur Android 4.0 ou version ultérieure, accédez à l'écran Applications, puis recherchez l'application dans l'onglet En cours d'exécution.

Performances et stabilité

ID Fonctionnalité Description
Performances
T-Performance:Startup Performances : démarrage Démarrez votre application. Vérifiez qu'elle se charge rapidement ou qu'elle fournit un indicateur de progression ou un signal similaire si le chargement prend plus de deux secondes.
T-Performance:FPS Performances : FPS Utilisez toutes les fonctionnalités principales de votre application. Vérifiez que l'application affiche au moins 60 images par seconde. Utilisez l'option Rendu HWUI du profil pour tester votre application.
T-Performance:Strict Performances : strictes

Activez StrictMode dans votre application et utilisez toutes les fonctionnalités principales. Vérifiez que l'application ne génère aucun avertissement de performances StrictMode, c'est-à-dire qu'aucun clignotement rouge n'est visible lorsque vous testez l'application. Les clignotements rouges signalent les comportements insatisfaisants concernant le stockage, l'accès au réseau ou la gestion de la mémoire (comme les fuites de mémoire).

Soyez particulièrement attentif à la récupération de mémoire et à son impact sur l'expérience utilisateur.

Stabilité
T-Stability:ANR Stabilité : ANR Utilisez toutes les fonctionnalités principales de votre application. Vérifiez que l'application ne plante pas et ne bloque pas le thread UI, ce qui entraînerait des erreurs ANR (Android Not Responding). Consultez le rapport pré-lancement de Google Play pour identifier les problèmes de stabilité potentiels.
SDK
T-SDK:Platform SDK:Platform Exécutez votre application sur la dernière version publique de la plate-forme Android. Utilisez toutes les fonctionnalités principales. Vérifiez que l'application ne plante pas et qu'elle s'exécute sans perte de fonctionnalité de base.
T-SDK:Latest SDK:Target,
SDK:Compile
Examinez le fichier manifeste Android et la configuration de compilation pour vous assurer que l'application est compilée avec le dernier SDK disponible (targetSdk et compileSdk).
T-SDK:3P SDK:3P Examinez le fichier build.gradle de votre application pour identifier d'éventuelles dépendances obsolètes.
T-SDK:Non SDK : Non Utilisez l'outil lint d'Android Studio afin de détecter l'utilisation d'interfaces autres que les SDK. Pour découvrir d'autres méthodes de test, consultez Restrictions concernant les interfaces non SDK.
T-SDK:Debug SDK:Debug Consultez le fichier build.gradle de votre application pour vérifier si des bibliothèques de débogage sont incluses.
Batterie
T-Battery:Manage Batterie : gérer

Utilisez toutes les fonctionnalités principales de l'application en mode Sommeil et Mise en veille des applications. Vérifiez que les alarmes, les minuteurs, les notifications et les synchronisations fonctionnent correctement dans la période de maintenance du mode Sommeil et lorsque l'application quitte le mode Mise en veille des applications.

Testez le comportement des fonctionnalités Sommeil et Mise en veille des applications à l'aide des commandes ADB (pour connaître les exigences et les consignes, consultez Tester avec les fonctionnalités Sommeil et Mise en veille des applications).

Pour diagnostiquer une décharge inattendue de la batterie, utilisez le profileur d'énergie d'Android Studio ou l'outil Battery Historian ainsi que des tâches programmées en arrière-plan.

Confidentialité et sécurité

ID Fonctionnalité Description
Autorisations
T-Permissions:Min Autorisations : Min Passez en revue les autorisations requises par votre appli dans le fichier manifeste, au moment de l'exécution et dans les paramètres de l'appli sur l'appareil (Paramètres > Infos sur l'appli).
T-Permissions:Sensitive Autorisations : sensibles Utilisez toutes les fonctionnalités de votre application qui demandent des autorisations. Vérifiez que l'appli ne demande l'autorisation d'accéder à des données ou services sensibles que pour ses principaux cas d'utilisation. Vérifiez que les implications de l'octroi d'autorisations pour les données et services sensibles sont clairement communiquées à l'utilisateur.
T-Permissions:Runtime Autorisations : exécution Utilisez toutes les fonctionnalités de votre application qui nécessitent des autorisations. Vérifiez que les autorisations sont demandées de manière différée, c'est-à-dire uniquement lorsque les fonctionnalités sont utilisées, et non au démarrage de l'application.
T-Permissions:Explain Autorisations : expliquer Utilisez toutes les fonctionnalités de votre application qui nécessitent des autorisations. Vérifiez que l'application explique à l'utilisateur pourquoi les autorisations sont nécessaires.
T-Permissions:Degrade Autorisations : dégradation Utilisez toutes les fonctionnalités de votre application qui nécessitent des autorisations. Refusez ou révoquez les autorisations. Vérifiez que l'application propose un autre cas d'utilisation et continue de fonctionner.
Données et fichiers
T-Data:Sensitive Data:Sensitive Examinez toutes les données stockées dans la mémoire de stockage interne. Vérifiez que les données stockées en externe ne sont pas sensibles.
T-Data:Handling Data:Sensitive Examinez comment les données chargées depuis l'espace de stockage externe sont gérées et traitées.
T-Data:Log Données : journal Utilisez toutes les fonctionnalités principales de l'application tout en surveillant le journal de l'appareil. Vérifiez qu'aucune information privée sur l'utilisateur n'est enregistrée.
T-Data:IDs Données : ID Utilisez toutes les principales fonctionnalités de l'application. Vérifiez que l'application n'utilise aucun identifiant matériel (code IMEI, par exemple) à des fins d'identification.
Identité
T-Identity:Hints Identity:Hints Utilisez toutes les fonctionnalités de l'application qui nécessitent une saisie de l'utilisateur. Vérifiez que l'application fournit des suggestions de saisie automatique pour les champs de saisie de données telles que les identifiants de compte et d'autres informations sensibles.
T-Identity:CredMan Identity:CredMan Connectez-vous à votre application. Vérifiez que l'application intègre Credential Manager pour Android afin d'unifier la prise en charge des clés d'accès, de l'identité fédérée et des mots de passe pour la connexion.
T-Identity:Bio Identity:Bio Utilisez toutes les fonctionnalités de l'application qui nécessitent une authentification. Vérifiez que l'application protège les transactions financières ou les informations sensibles (documents importants de l'utilisateur, par exemple) avec l'authentification biométrique.
Composants de l'appli
T-Components:Export Composants : exporter Vérifiez tous les composants d'appli définis dans le fichier manifeste Android pour contrôler que l'état d'exportation est correct. La propriété exportée doit être définie explicitement pour tous les composants.
T-Components:Permissions Composants : autorisations Passez en revue les autorisations requises par votre appli dans le fichier manifeste, au moment de l'exécution et dans les paramètres de l'appli sur l'appareil (Paramètres > Infos sur l'appli).
T-Components:Protection Composants : Protection Examinez tous les fournisseurs de contenu définis dans le fichier manifeste Android. Assurez-vous que chaque fournisseur dispose d'un protectionLevel approprié.
Mise en réseau
T-Network:Traffic Réseau : trafic Déclarez une configuration de sécurité réseau qui désactive le trafic en texte clair, puis testez l'application.
T-Network:Config Network:Config Examinez la configuration de la sécurité réseau de l'application. Vérifiez qu'aucune vérification lint n'échoue sur la configuration.
T-Network:Play Réseau : Play Vérifiez que le fournisseur de sécurité est initialisé au démarrage de l'application pour les services Google Play.
WebViews
T-WebViews:Config WebViews:Config Examinez la configuration de la sécurité réseau de l'application. Vérifiez qu'aucune vérification lint n'échoue sur la configuration.
T-WebViews:JavaScript WebViews:JavaScript Pour chaque WebView, accédez à une page nécessitant JavaScript.
T-WebViews:Nav WebViews:Config,
WebViews:JavaScript
Dans chaque WebView, essayez d'accéder à des sites et à des contenus qui ne sont pas chargés directement par votre application.
Exécution
T-Execution:Bundles Exécution : bundles Vérifiez que l'application utilise des Android App Bundles et ne charge pas dynamiquement du code extérieur à son APK.
Cryptographie
T-Crypto:Algorithms Crypto:Algorithms Vérifiez que l'application utilise de puissants algorithmes cryptographiques et un générateur de nombres aléatoires fournis par la plate-forme. Vérifiez également que l'application n'implémente pas d'algorithmes personnalisés.

Google Play

ID Fonctionnalité Description
Règles
T-Play:Policies Play:Policies,
Play:Maturity,
Play:Bugs
Connectez-vous à la Google Play Console pour consulter votre profil de développeur, la description de l'appli, les captures d'écran, l'image de présentation, la classification du contenu et les commentaires des utilisateurs.
Page d'informations sur l'appli
T-Play:Graphics Play:Graphics Téléchargez votre image de présentation et vos captures d'écran, puis réduisez leur taille pour qu'elle corresponde à la taille d'affichage sur les appareils et facteurs de forme que vous ciblez.
T-Play:Assets Play:Graphics,
Play:NonAndroid,
Play:Misleading
Examinez l'ensemble des assets graphiques, contenus multimédias, textes, bibliothèques de code et autres contenus inclus dans l'appli ou le fichier d'extension téléchargeable.

Archiver

Versions précédentes des consignes fondamentales relatives à la qualité des applications :