how fix memory leak android apps using ddms tool
Πώς να δοκιμάσετε και να διορθώσετε τη διαρροή μνήμης για εφαρμογές Android:
Η βελτιστοποίηση μνήμης είναι μια μεγαλύτερη πρόκληση για οποιονδήποτε προγραμματιστή προτού προωθήσει μια εφαρμογή στο play store.
πώς να εφαρμόσετε ένα hashtable στο java
Η απόδοση μιας εφαρμογής είναι εξίσου σημαντική με τη λειτουργικότητά της. Αυτό το άρθρο βασίζεται στο Ανάλυση σωρού μιας εφαρμογής μέσω DDMS (Dalvik Debug Monitor Service).
Οι περισσότερες από τις εφαρμογές Android εκτελούνται σε JAVA και έχουν επίσης προβλήματα νήματος.
Σημαντική σημείωση - Το εργαλείο Dalvik Debug Monitor Server (DDMS) διατίθεται μόνο στο Android Studio 3.0 και σε χαμηλότερες εκδόσεις. Εάν χρησιμοποιείτε το Studio 3.0 και νεότερη έκδοση, βεβαιωθείτε ότι χρησιμοποιείτε το Android Profiler για το προφίλ της CPU, της μνήμης και της χρήσης του δικτύου της εφαρμογής σας.
Αυτό το σεμινάριο θα σας βοηθήσει να κατανοήσετε και να βελτιστοποιήσετε τη διαρροή μνήμης για μια εφαρμογή Android χρησιμοποιώντας το εργαλείο DDMS. Η ανάλυση της μνήμης θα δώσει μια ιδέα της μνήμης και η βελτιστοποίηση των τιμών της μνήμης θα έχει ως αποτέλεσμα λιγότερη διαρροή μνήμης.
Τι θα μάθετε:
- Όροι που χρησιμοποιούνται συνήθως
- DDMS (Dalvik Debug Monitor Server)
- Βήματα για την εκκίνηση του DDMS μέσω ADT
- Βήματα για την εκκίνηση του DDMS μέσω του Android Studio
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Όροι που χρησιμοποιούνται συνήθως
Παρακάτω αναφέρονται μερικοί από τους κοινούς όρους που θα χρησιμοποιούμε σε αυτό το έργο:
- Σωρός - Είναι η μνήμη χρόνου εκτέλεσης που διατίθεται για κατανομή και διανέμεται δυναμικά. Εξαρτάται από την πλατφόρμα.
- Ντάλβικ σωρός - Ο σωρός Dalvik είναι ένας συνδυασμός τάξεων και δεδομένων από το zygote.
- Ζυγώτης - Το Zygote βοηθά στην εκκίνηση διαδικασιών εφαρμογής όταν φορτώνεται το σύστημα.
- PSS - Είναι ο αριθμός των σελίδων στη μνήμη για μια διαδικασία και μετράται σε KB.
- Συλλογή απορριμάτων - Η συλλογή απορριμμάτων εντοπίζει όλα τα αντικείμενα που εξακολουθούν να χρησιμοποιούνται και τα σημάδια παραμένουν ως σκουπίδια.
DDMS (Dalvik Debug Monitor Server)
Αυτό είναι το εργαλείο που βοηθά στην ανάλυση της παρακολούθησης απόδοσης χρόνου εκτέλεσης. Βοηθά επίσης στη δημιουργία προφίλ και στο συντονισμό των εφαρμογών.
Κύρια προσφορά υπηρεσιών από την DDMS
- Σύνολο στατιστικών κατανομών αντικειμένων σωρού
- Στατική νήμα εφαρμογής
- Σύλληψη οθόνης συσκευής
- Εξερεύνηση αρχείων συσκευής
- Έλεγχος εισερχόμενων κλήσεων και SMS
- Επιθεώρηση δεδομένων τοποθεσίας
- Στατική κονσόλα δικτύου
- Logcat (Verbose, Debug, Assert, Error)
Ελλειψη μνήμης:
Μια εφαρμογή κρατά ένα αντικείμενο για μεγάλο χρονικό διάστημα ακόμη και μετά την εξυπηρέτηση του σκοπού και αυτό το αντικείμενο δεν συλλέγεται από την GC.
Ανίχνευση διαρροής μνήμης:
Γενικά, η εφαρμογή Android εμφανίζει ένα αναδυόμενο παράθυρο διαλόγου για μια εφαρμογή που δεν αποκρίνεται ή στη χειρότερη περίπτωση εξαιρείται η μνήμη. Κάθε συσκευή έχει περιορισμένο μέγεθος σωρού και όταν μια εφαρμογή προσπαθεί για επιπλέον μνήμη, παρατηρούνται εξαιρέσεις.
Για να ελέγξουμε το συνολικό μέγεθος σωρού μιας συσκευής Android, μπορούμε να χρησιμοποιήσουμε τις παρακάτω εντολές:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Βήματα για την εκκίνηση του DDMS μέσω ADT
Βήμα 1: Εκκινήστε το πακέτο διαφημίσεων (εύκολα διαθέσιμο εδώ Ή Εγκαταστήστε το πακέτο ADT για διαμόρφωση των Windows χρησιμοποιώντας τους παρακάτω συνδέσμους.
παράθυρα 32: https://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
παράθυρα 64: https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
Βήμα 2: Κάντε κλικ στο SDK
Βήμα # 3: Κάντε κλικ στα εργαλεία
Βήμα # 4: Κάντε κλικ στο monitor.bat (DDMS)
Σημείωση: Για ανάλυση σωρού, απαιτείται το debug apk.
Μετά την επιτυχή εγκατάσταση του πακέτου ADT, μεταβείτε στη γραμμή εντολών (ορίστε τη διαδρομή, εάν το adb δεν αναγνωρίζεται ως εσωτερική ή εξωτερική εντολή).
Ελέγξτε για τη συσκευή που είναι συνδεδεμένη σε ένα σύστημα μέσω της εντολής adb (συσκευές adb). Μόλις συνδεθεί μια συσκευή, συνδέεται στην οθόνη DDMS με το όνομα του πακέτου μιας εφαρμογής.
Βήματα για την εκκίνηση του DDMS μέσω του Android Studio
Studio -> Εργαλεία -> Android -> Οθόνη συσκευής Android -> Κάντε κλικ στο κουμπί DDMS από το Μενού.
Βήματα για την ανάλυση ενός σωρού
- Επιλέξτε το όνομα πακέτου μιας εφαρμογής που εμφανίζεται στην οθόνη DDMS.
- Επιλέξτε το εικονίδιο σωρού ενημέρωσης.
- Πατήστε στην αιτία GC πριν λάβετε τιμές για κάθε ενέργεια.
- Τώρα στη γραμμή εντολών εκτελέστε την εντολή - adb shell dumpsys meminfo και πατήστε enter.
- Οι τιμές θα εμφανιστούν στη γραμμή εντολών.
- Σύνολο PSS, εγγενές, dalvik, μέγεθος σωρού, χωρίς σωρό, κατανεμημένος σωρός είναι οι τιμές που θα βοηθήσουν τους προγραμματιστές να εντοπίσουν σφάλματα στη μνήμη.
- Η καλύτερη αναπαράσταση των δεδομένων θα κάνει τη δουλειά εύκολη για έναν προγραμματιστή.
- Τα δεδομένα πρέπει να είναι:
- Τιμή αντικειμένων αφού κάνετε κλικ στην αιτία GC.
- Σύνολο PSS
- Εγγενές μέγεθος σωρού - σωρού
- Dalvik σωρός - μέγεθος σωρού
- Σύνολο μεγέθους σωρού
- Εγγενής κατανομή σωρού - σωρού
- Dalvik σωρός - κατανομή σωρού
- Σύνολο κατανομής σωρού
- Εγγενής σωρός - χωρίς σωρούς
- Dalvik σωρός - χωρίς σωρούς
- Σύνολο σωρού χωρίς
- Αντικείμενα (αφού κάνετε κλικ στην αιτία GC από το DDMS)
- % χρησιμοποιημένο% δωρεάν
Ιδανική δοκιμή: Για καλύτερη ανάλυση εφαρμογών, προσπαθήστε να εκτελέσετε διαφορετικά σενάρια διατηρώντας μια εφαρμογή στο παρασκήνιο και καταλήγοντας στην ίδια σελίδα, εκτελέστε μια πλήρη ροή αυτών των κοινών σεναρίων.
Προσπαθήστε να χρησιμοποιήσετε συσκευές τελευταίας τεχνολογίας, καθώς το πιο συνηθισμένο σφάλμα παρατηρείται λόγω της μνήμης που είναι εξαίρεση Out Of Memory (OOM).
Οθόνη DDMS
Δείγματα αξιών Dalvik
συμπέρασμα
Αυτό το άρθρο μπορεί να χρησιμοποιηθεί για τη δοκιμή ανάλυσης σωρών χρησιμοποιώντας το εργαλείο DDMS. Οι σωστές τιμές για τις παραμέτρους θα βοηθήσουν τους προγραμματιστές Android να βελτιστοποιήσουν τη μνήμη.
Η γνώση των εργαλείων δοκιμών είναι καλή, αλλά η χρήση αυτών των εργαλείων με αποτελεσματικό τρόπο θεωρείται Τέχνη.
Καλή μάθηση !!
Συνιστώμενη ανάγνωση
- Εκπαιδευτικό πρόγραμμα για δοκιμές εφαρμογών Android και iOS για κινητά
- Κορυφαία 20+ εργαλεία ανίχνευσης διαρροών μνήμης για Java, C ++ σε Linux και Windows
- Πώς να αυτοματοποιήσετε εφαρμογές Android χρησιμοποιώντας το εργαλείο TestComplete
- Ξεκινώντας με το Robotium - Το πιο δημοφιλές εργαλείο δοκιμών διεπαφής χρήστη Android
- 10 καλύτερες εφαρμογές διαχείρισης έργου το 2021 για συσκευές Android και iOS
- Οδηγός δοκιμών UI για κινητά (Δοκιμή GUI για εφαρμογές iOS και Android)
- Δημιουργήστε δοκιμές Appium για μια εφαρμογή Android
- 10 καλύτερες εφαρμογές παρακολούθησης χρόνου για ελεύθερους επαγγελματίες (2021 SELECTIVE)