Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Strict Mode en Android : Détection d’Erreurs Thread
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Strict Mode en Android : Détection d’Erreurs Thread

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
Partager

Les applications Android peuvent souffrir de problèmes de réactivité lorsqu’elles ne gèrent pas correctement les threads.

Ces problèmes peuvent entraîner des erreurs ANR (Application Not Responding), affectant l’expérience utilisateur et causant potentiellement des plantages.

L’article présente Strict Mode, un outil pour détecter et corriger les erreurs de thread, assurant ainsi une interface utilisateur fluide et réactive.

Table de matière
Strict Mode Android : IntroductionConfigurer Strict Mode pour Détection ViolationsOptions de Configuration Strict Mode AndroidActivation Strict Mode : Erreurs ThreadConclusion sur l'Interface Utilisateur RéactiveFAQConclusion

Formation Créer une Architecture Moderne pour Applications Android

Apprenez à construire des applications Android avec une architecture moderne et performante!

Découvrir cette formation

Nous allons explorer un outil appelé Strict Mode . Cet outil est essentiel pour vérifier et détecter les erreurs d’utilisation des threads dans les applications Android, notamment les erreurs liées aux traitements asynchrones.

Question : Pourquoi Utiliser des Traitements Asynchrones ?

Les traitements asynchrones sont utilisés pour éviter de longs traitements dans le thread principal de l’application. Le thread principal est crucial car il gère l’interface utilisateur (UI), et il est important qu’il reste réactif.

Strict Mode Android : Introduction

Strict Mode est un outil qui aide à maintenir la réactivité du thread principal en permettant de détecter les mauvaises pratiques, comme les écritures et les lectures sur disque, qui devraient être exécutées dans des threads distincts plutôt que dans le thread principal. Il peut également détecter d’autres erreurs, telles que l’utilisation incorrecte des threads.

Schéma d'Android avec écritures disk et threads
Erreur Courante : Si des traitements longs s’exécutent dans ce thread, cela peut entraîner des erreurs ANR (Application Not Responding ), qui se manifestent par des boîtes de dialogue ou même par des plantages de l’application.

Configurer Strict Mode pour Détection Violations

Pour utiliser Strict Mode , il faut l’activer très tôt dans le cycle de vie de l’application. Voici comment procéder :

  1. Créer une classe Application :Vous devez créer une nouvelle classe qui héritera de la classe Application. Par exemple, on peut l’appeler SMApplication.
Capture d'écran de la structure du projet Android
  1. Surcharger la méthode onCreate :Dans cette méthode, vous allez initialiserStrict Modeet définir les règles que vous souhaitez appliquer.

Voici un exemple de code pour configurer Strict Mode :

				
					
class SMApplication : Application() {
  override fun onCreate() {
    super.onCreate()
        // Configuration de Strict Mode pour surveiller les threads
        val threadPolicy =
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()       // Détecte les lectures de disque dans le thread principal
            .detectDiskWrites()       // Détecte les écritures de disque dans le thread principal
            .detectNetwork()         // Détecte les accès réseau dans le thread principal
            .penaltyLog()             // Log les violations détectées
            .build() StrictMode.setThreadPolicy(threadPolicy)
  }
}

				
			
Composant
Description
detectDiskReads()
Détecte les lectures de disque sur le thread principal (ex : opérations I/O).
detectDiskWrites()
Détecte les écritures de disque sur le thread principal.
detectNetwork()
Détecte les accès réseau sur le thread principal (problèmes de performance).
penaltyLog()
Log les violations détectées pour faciliter le débogage.
StrictMode.setThreadPolicy()
Applique la politique définie pour le thread principal.

Options de Configuration Strict Mode Android

Strict Mode permet de surveiller deux types de violations :

  1. Violations liées à la machine virtuelle (VM) :Surveiller les objets liés àSQLite.Surveiller les objets qui implémententCloseable.Détecter les ressources non libérées.
  2. Violations liées aux threads :Lectures/écritures sur disque: Vérifie si ces opérations sont effectuées dans le thread principal.Accès réseau: Détecte les appels réseau effectués dans le thread principal.Accès aux ressources: Vérifie les accès incorrects aux ressources.

Pour chaque type de violation, vous pouvez définir les moyens de notification :

  • Log :Enregistre les violations dans les logs du système.
  • Crash :Fait planter l’application en cas de violation.
  • Boîte de dialogue :Affiche une boîte de dialogue pour signaler la violation.
Avertissement StrictMode pour AndroidInternetTxt

Exemple d’Application

Prenons une application qui liste des plages. Cette application va lire un fichier depuis le stockage interne pour afficher une liste de plages dans une interface utilisateur. Si nous activons Strict Mode , nous pourrons détecter des opérations de lecture/écriture sur disque effectuées dans le thread principal.

Pour mettre en œuvre Strict Mode dans cette application, nous créons une nouvelle classe SMApplication qui étend Application, comme décrit précédemment. Ensuite, nous devons lier cette classe au manifeste de l’application :

				
					
 <application
android:name=".SMApplication"
>
</application>

				
			

Activation Strict Mode : Erreurs Thread

Après avoir configuré et activé Strict Mode , nous exécutons l’application. Lors de l’exécution, Strict Mode va surveiller les opérations définies, et si une violation est détectée, elle sera consignée dans les logs.

Par exemple, voici comment une violation de lecture de disque pourrait apparaître dans les logs :

				
					
StrictMode : Disk read violation StrictMode : policy = 13 violationMask = 2

				
			

Cela indique qu’une opération de lecture de disque a été détectée dans le thread principal, ce qui n’est pas recommandé car cela peut entraîner une interface utilisateur non réactive.

Conclusion sur l'Interface Utilisateur Réactive

Strict Mode est un outil précieux pour les développeurs Android, car il permet de maintenir la réactivité de l’interface utilisateur en détectant les mauvaises pratiques liées à l’utilisation des threads. En utilisant Strict Mode , les développeurs peuvent identifier et corriger les problèmes avant qu’ils ne deviennent critiques, améliorant ainsi la stabilité et la performance de leurs applications.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Pourquoi utiliser Strict Mode pour les threads en Android ?
Strict Mode est crucial pour assurer que les applications Android restent réactives. Il détecte les erreurs de thread, comme les lectures ou écritures de disque dans le thread principal, qui peuvent entraîner des ANR (Application Not Responding). En surveillant ces mauvaises pratiques, les développeurs peuvent optimiser l’interface utilisateur et éviter les plantages inattendus causés par des traitements asynchrones incorrects.
Comment activer Strict Mode dans une application Android ?
Pour activer Strict Mode, créez une classe Application dans votre projet Android et surchargez la méthode onCreate. Configurez ensuite ThreadPolicy dans cette méthode pour détecter les lectures de disque, les écritures de disque et les accès réseau dans le thread principal. Appliquez ces règles à l’aide de StrictMode.setThreadPolicy. Cela permet de consigner les violations et de maintenir la réactivité de l’application.
Quelles violations Strict Mode peut-il détecter ?
Strict Mode peut détecter deux types de violations : celles liées à la machine virtuelle (comme les objets SQLite non fermés) et celles liées aux threads (telles que les lectures/écritures de disque ou les accès réseau dans le thread principal). Ces violations peuvent être signalées via des logs, des plantages ou des boîtes de dialogue, permettant ainsi aux développeurs de corriger ces problèmes pour optimiser la performance de l’application.
Quels sont les avantages de l'utilisation de Strict Mode ?
L’utilisation de Strict Mode dans les applications Android offre plusieurs avantages. En détectant les violations de thread, il aide à maintenir une interface utilisateur réactive, réduit les risques de plantages et améliore la performance globale de l’application. Cette surveillance proactive permet aux développeurs de corriger les mauvaises pratiques avant qu’elles ne deviennent problématiques, assurant ainsi une meilleure expérience utilisateur.
Comment Strict Mode améliore-t-il la stabilité des applications Android ?
Strict Mode améliore la stabilité des applications Android en détectant et signalant les mauvaises pratiques de programmation qui peuvent nuire à la réactivité de l’interface utilisateur. En identifiant les traitements asynchrones incorrects et en consignant les erreurs de thread, les développeurs peuvent corriger ces problèmes rapidement, ce qui minimise les risques d’ANR (Application Not Responding) et assure un fonctionnement fluide et stable de l’application.

Conclusion

En utilisant Strict Mode, les développeurs peuvent améliorer la stabilité et la réactivité de leurs applications Android. Quels autres outils utilisez-vous pour optimiser la performance de vos applications ?

ÉTIQUETÉ : Android
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Strict Mode en Android : Détection d’Erreurs Thread

© Alphorm - Tous droits réservés