how fix memory leak android apps using ddms tool
So testen und beheben Sie Speicherverluste für Android-Anwendungen:
Die Speicheroptimierung ist für jeden Entwickler eine größere Herausforderung, bevor eine App in den Play Store verschoben wird.
Helpdesk-Fragen an Benutzer
Die Leistung einer App ist ebenso wichtig wie ihre Funktionalität. Dieser Artikel basiert auf dem Heap-Analyse einer Anwendung über DDMS (Dalvik Debug Monitor Service).
Die meisten Android-Anwendungen laufen auf JAVA und haben auch Threading-Probleme.
Wichtiger Hinweis - Das DDMS-Tool (Dalvik Debug Monitor Server) ist nur in Android Studio 3.0 und niedrigeren Versionen verfügbar. Wenn Sie Studio 3.0 oder höher verwenden, stellen Sie sicher, dass Sie Android Profiler verwenden, um die CPU-, Speicher- und Netzwerknutzung Ihrer App zu profilieren.
Dieses Tutorial hilft Ihnen, den Speicherverlust für eine Android-Anwendung mithilfe des DDMS-Tools zu verstehen und zu optimieren. Durch die Analyse des Speichers wird eine Vorstellung vom Speicher vermittelt, und durch die Optimierung der Speicherwerte wird weniger Speicher verloren.
Was du lernen wirst:
- Häufig verwendete Begriffe
- DDMS (Dalvik Debug Monitor Server)
- Schritte zum Starten von DDMS über ADT
- Schritte zum Starten von DDMS über Android Studio
- Fazit
- Literatur-Empfehlungen
Häufig verwendete Begriffe
Nachfolgend sind einige der gebräuchlichen Begriffe aufgeführt, die wir in diesem Projekt verwenden werden:
- Haufen - Es ist der Laufzeitspeicher, der für die Zuordnung verfügbar ist und dynamisch verteilt wird. Es ist plattformabhängig.
- Dalvik Haufen - Dalvik Heap ist eine Kombination aus Klassen und Daten von Zygote.
- Zygote - Zygote hilft beim Starten von App-Prozessen beim Laden des Systems.
- PSS - Dies ist die Anzahl der Seiten im Speicher für einen Prozess und wird in KB gemessen.
- Müllabfuhr - Die Garbage Collection sucht nach allen noch verwendeten Objekten und markiert Rest als Garbage.
DDMS (Dalvik Debug Monitor Server)
Dies ist das Tool zur Analyse der Laufzeitleistung. Es hilft auch bei der Profilerstellung und Optimierung von Anwendungen.
Hauptdienstleistungsangebot von DDMS
- Statistik der Gesamtzuordnungen von Heap-Objekten
- App-Thread-Statik
- Geräte-Screenshot
- Gerätedatei-Explorer
- Eingehende Anrufe und SMS-Inspektion
- Standortdatenprüfung
- Statische Netzwerkkonsole
- Logcat (Verbose, Debug, Assert, Error)
Speicherleck:
Eine Anwendung hält ein Objekt auch nach Erfüllung des Zwecks für eine lange Zeit und dieses Objekt wird von GC nicht erfasst.
Erkennung von Speicherlecks:
Im Allgemeinen zeigt die Android-Anwendung ein Dialogfeld für eine App an, die nicht reagiert oder im schlimmsten Fall eine Speicherausnahme aufweist. Jedes Gerät hat eine begrenzte Heap-Größe. Wenn eine Anwendung nach zusätzlichem Speicher sucht, werden Ausnahmen beobachtet.
Um die Gesamtgröße des Heapspeichers eines Android-Geräts zu überprüfen, können Sie die folgenden Befehle verwenden:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Schritte zum Starten von DDMS über ADT
Schritt 1: Starten Sie das adt-Bundle (leicht verfügbar) Hier ) Oder installieren Sie das ADT-Bundle für die Windows-Konfiguration über die folgenden Links.
Windows 32: https://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
Windows 64: https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
Schritt 2: Klicken Sie auf SDK
Schritt 3: Klicken Sie auf Werkzeuge
Schritt 4: Klicken Sie auf monitor.bat (DDMS)
Hinweis: Für die Heap-Analyse ist debug apk erforderlich.
Wechseln Sie nach erfolgreicher Installation des ADT-Bundles zur Eingabeaufforderung (Pfad festlegen, wenn adb nicht als interner oder externer Befehl erkannt wird).
Überprüfen Sie, ob das Gerät über den Befehl adb (adb-Geräte) mit einem System verbunden ist. Sobald ein Gerät verbunden ist, wird es mit dem Paketnamen einer Anwendung mit dem DDMS-Bildschirm verbunden.
Schritte zum Starten von DDMS über Android Studio
Studio -> Extras -> Android -> Android-Gerätemonitor -> Klicken Sie im Menü auf die Schaltfläche DDMS.
Schritte zur Analyse eines Haufens
- Wählen Sie den Paketnamen einer App aus, die auf dem DDMS-Bildschirm angezeigt wird.
- Wählen Sie das Update-Heap-Symbol.
- Tippen Sie auf Ursache GC, bevor Sie für jede Aktion Werte erfassen.
- Führen Sie nun an der Eingabeaufforderung den Befehl - adb shell dumpsys meminfo aus und drücken Sie die Eingabetaste.
- Werte werden an der Eingabeaufforderung angezeigt.
- PSS total, native, dalvik, Heap-Größe, Heap-frei, Heap-zugewiesen sind die Werte, die den Entwicklern helfen, die Speicherabstürze zu debuggen.
- Eine bessere Darstellung der Daten erleichtert einem Entwickler die Arbeit.
- Daten sollten wie folgt sein:
- Objektwert nach Klicken auf Ursache GC.
- PSS insgesamt
- Native Heap-Heap-Größe
- Dalvik Heap-Heap-Größe
- Summe der Heap-Größe
- Native Heap-Heap-Zuordnung
- Dalvik Heap-Heap-Zuweisung
- Summe der Heap-Zuordnung
- Native Heap-Heap frei
- Dalvik Haufen - Haufen frei
- Insgesamt Haufen frei
- Objekte (nach dem Klicken auf Ursache GC von DDMS)
- % verwendet% frei
Ideale Prüfung: Versuchen Sie zur besseren App-Analyse, verschiedene Szenarien auszuführen, indem Sie eine App im Hintergrund halten und auf derselben Seite landen, um einen vollständigen Ablauf dieser häufig verwendeten Szenarien durchzuführen.
Versuchen Sie, Geräte der unteren Preisklasse zu verwenden, da der häufigste Absturz aufgrund von OOM (Out Of Memory Exception) auftritt.
DDMS-Bildschirm
Beispiele für Dalvik-Werte
Fazit
Dieser Artikel kann zum Testen der Heap-Analyse mit dem DDMS-Tool verwendet werden. Richtige Werte für die Parameter helfen den Android-Entwicklern, den Speicher zu optimieren.
Die Kenntnisse über das Testen von Werkzeugen sind gut, aber die effiziente Verwendung dieser Werkzeuge wird als Kunst angesehen.
Viel Spaß beim Lernen !!
Literatur-Empfehlungen
- Appium-Tutorial zum Testen von Android- und iOS-Apps für Mobilgeräte
- Top 20+ Tools zur Erkennung von Speicherlecks für Java, C ++ unter Linux und Windows
- So automatisieren Sie Android-Anwendungen mit dem TestComplete Tool
- Erste Schritte mit Robotium - dem beliebtesten Test-Tool für Android-Anwendungen
- 10 besten Projektmanagement-Apps im Jahr 2021 für Android- und iOS-Geräte
- Lernprogramm zum Testen der mobilen Benutzeroberfläche (GUI-Test von iOS- und Android-Apps)
- Erstellen Sie Appium-Tests für eine Android-App
- 10 BEST Time Tracking Apps für Freiberufler (2021 SELECTIVE)