how fix memory leak android apps using ddms tool
Comment tester et corriger les fuites de mémoire pour les applications Android:
L'optimisation de la mémoire est un défi plus important pour tout développeur avant de pousser une application vers le Play Store.
comment implémenter une table de hachage en java
Les performances d'une application sont tout aussi importantes que ses fonctionnalités. Cet article est basé sur le Analyse de tas d'une application via DDMS (Dalvik Debug Monitor Service).
La plupart des applications Android fonctionnent sur JAVA et ont également des problèmes de thread.
Note importante - L'outil Dalvik Debug Monitor Server (DDMS) est disponible uniquement dans Android Studio 3.0 et les versions inférieures. Si vous utilisez Studio 3.0 et supérieur, assurez-vous d'utiliser Android Profiler pour profiler l'utilisation du processeur, de la mémoire et du réseau de votre application.
Ce tutoriel vous aidera à comprendre et à optimiser les fuites de mémoire pour une application Android à l'aide de l'outil DDMS. L'analyse de la mémoire donnera une idée de la mémoire et l'optimisation des valeurs de mémoire entraînera ainsi moins de fuite de mémoire.
Ce que vous apprendrez:
- Termes couramment utilisés
- DDMS (serveur Dalvik Debug Monitor)
- Étapes pour lancer DDMS via ADT
- Étapes pour lancer DDMS via Android Studio
- Conclusion
- lecture recommandée
Termes couramment utilisés
Voici quelques-uns des termes courants que nous utiliserons dans ce projet:
- Tas - C'est la mémoire Runtime qui est disponible pour l'allocation et est distribuée dynamiquement. Cela dépend de la plate-forme.
- Tas de Dalvik - Le tas Dalvik est une combinaison de classes et de données par zygote.
- Zygote - Zygote aide à lancer les processus d'application lorsque le système se charge.
- PSS - C'est le nombre de pages dans la mémoire pour un processus, et est mesuré en Ko.
- Collecte des ordures - Le ramasse-miettes recherche tous les objets qui sont encore utilisés et marque le repos comme ordures.
DDMS (serveur Dalvik Debug Monitor)
C'est l'outil qui permet d'analyser la surveillance des performances d'exécution. Il aide également au profilage et au réglage des applications.
Offre principale de services par DDMS
- Statistiques d'allocations totales des objets du tas
- Statique des threads d'application
- Capture d'écran de l'appareil
- Explorateur de fichiers de périphérique
- Inspection des appels entrants et des SMS
- Inspection des données de localisation
- Console statique du réseau
- Logcat (Verbose, Debug, Assert, Error)
Fuite de mémoire:
Une application conserve un objet pendant une longue période même après avoir atteint l'objectif et cet objet n'est pas collecté par GC.
Détection de fuite de mémoire:
En règle générale, l'application Android affiche une boîte de dialogue contextuelle pour une application qui ne répond pas ou, dans le pire des cas, une exception de mémoire insuffisante. Chaque appareil a une taille de tas limitée et lorsqu'une application tente d'obtenir de la mémoire supplémentaire, des exceptions sont observées.
Afin de vérifier la taille totale du tas d'un appareil Android, nous pouvons utiliser les commandes ci-dessous:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Étapes pour lancer DDMS via ADT
Étape 1: Lancez le bundle adt (facilement disponible ici ) Ou installez le bundle ADT pour la configuration Windows en utilisant les liens ci-dessous.
fenêtres 32: https://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
fenêtres 64: https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
Étape 2: Cliquez sur SDK
Étape 3: Cliquez sur les outils
Étape 4: Cliquez sur monitor.bat (DDMS)
Remarque: Pour l'analyse du tas, le débogage apk est requis.
Une fois l'installation réussie du bundle ADT, accédez à l'invite de commande (définissez le chemin, si adb n'est pas reconnu comme une commande interne ou externe).
Recherchez le périphérique connecté à un système via la commande adb (périphériques adb). Une fois qu'un appareil est connecté, il est connecté à l'écran DDMS avec le nom de package d'une application.
Étapes pour lancer DDMS via Android Studio
Studio -> Outils -> Android -> Moniteur de périphérique Android -> Cliquez sur le bouton DDMS dans le menu.
Étapes de l'analyse d'un tas
- Sélectionnez le nom du package d'une application qui apparaît sur l'écran DDMS.
- Sélectionnez l'icône de mise à jour du tas.
- Appuyez sur cause GC avant de prendre des valeurs pour chaque action.
- Maintenant, à l'invite de commande, exécutez la commande - adb shell dumpsys meminfo et appuyez sur Entrée.
- Les valeurs apparaîtront sur l'invite de commande.
- PSS total, native, dalvik, taille du tas, libre de tas, alloué au tas sont les valeurs qui aideront les développeurs à déboguer les plantages de mémoire.
- Une meilleure représentation des données facilitera le travail d'un développeur.
- Les données doivent être comme:
- Valeur des objets après avoir cliqué sur cause GC.
- Total PSS
- Taille du tas natif
- Dalvik heap - taille du tas
- Total de la taille du tas
- Allocation de tas natif
- Alloc de tas de tas Dalvik
- Total de l'allocation de tas
- Heap natif - sans tas
- Dalvik tas - sans tas
- Total de tas libres
- Objets (après avoir cliqué sur la cause GC de DDMS)
- % utilisé% gratuit
Test idéal: Pour une meilleure analyse des applications, essayez d'exécuter différents scénarios en gardant une application en arrière-plan et en atterrissant sur la même page, effectuez un flux complet de ces scénarios couramment utilisés.
Essayez d'utiliser des périphériques bas de gamme, car le plantage le plus courant est observé en raison de la mémoire qui est une exception de mémoire insuffisante (OOM).
Écran DDMS
Exemples de valeurs Dalvik
Conclusion
Cet article peut être utilisé pour tester l'analyse de tas à l'aide de l'outil DDMS. Des valeurs correctes pour les paramètres aideront les développeurs Android à optimiser la mémoire.
La connaissance des outils de test est bonne, mais l'utilisation de ces outils de manière efficace est considérée comme un art.
Bon apprentissage!!
lecture recommandée
- Tutoriel Appium pour tester les applications mobiles Android et iOS
- Top 20+ outils de détection des fuites de mémoire pour Java, C ++ sur Linux et Windows
- Comment automatiser les applications Android à l'aide de l'outil TestComplete
- Premiers pas avec Robotium - L'outil de test d'interface utilisateur d'application Android le plus populaire
- 10 meilleures applications de gestion de projet en 2021 pour les appareils Android et iOS
- Tutoriel de test de l'interface utilisateur mobile (test de l'interface graphique des applications iOS et Android)
- Créer des tests Appium pour une application Android
- 10 MEILLEURES applications de suivi du temps pour les pigistes (2021 SELECTIVE)