Wie teste ich die Leistung einer Android-Anwendung?

74

Wie kann ich eine Anwendung auf Leistung in Android testen? Was ist die Unterstützung in Android und wie verwende ich sie?

Bharat Pawar
quelle

Antworten:

97

Wenn Sie Ihre Anwendung profilieren möchten, um Leistungsengpässe zu finden, können Sie das traceviewTool verwenden . Auf diese Weise erhalten Sie eine grafische Ansicht der Leistungsspuren Ihrer Anwendung.

Um eine Ablaufverfolgung zu erstellen, fügen Sie Ihrem Code Folgendes hinzu, mit dem Sie die Ablaufverfolgung starten möchten:

Debug.startMethodTracing("myapp");

und geben Sie dann Folgendes ein, wenn Sie die Ablaufverfolgung beenden möchten:

Debug.stopMethodTracing();

Dadurch wird ein Trace-Dateiaufruf myapp.traceim Stammverzeichnis der SD-Karte erstellt. Wie es auf die SD-Karte geschrieben ist:

  • Wenn Sie den Emulator verwenden, müssen Sie Ihrer AVD eine SD-Karte hinzufügen .
  • Sie müssen Ihrer App die Berechtigung zum Schreiben der SD-Karte erteilen, indem Sie Ihrem Manifest Folgendes hinzufügen:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Sobald die Datei erstellt wurde, müssen Sie sie auf Ihren PC kopieren. Sie können dies mit dem folgenden adbBefehl tun :

adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace

Schließlich beginnen traceviewsie die Angabe vollständigen Pfad in die Trace - Datei:

traceview c:/my/dir/myapp.trace

Ich hatte einige Probleme traceviewmit OutOfMemoryAusnahmen. Ich habe dies unter Windows behoben, indem ich die letzte Zeile von traceview.batgeändert habe:

call java -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*

zu:

call java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*

Durch Hinzufügen der -Xmx1gOption kann traceviewmehr Speicher verwendet werden.

Dave Webb
quelle
Gibt es eine Möglichkeit, Informationen wie Reaktionsfähigkeit, Startlatenz, von einer Anwendung verwendete CPU-Zyklen zu erhalten
Bharat Pawar
1
Ich frage mich, ob Sie TraceView allein für UI-Leistungsbenchmarks verwenden oder ob Sie es tatsächlich automatisieren, beispielsweise in Kombination mit dem Robotium-Testframework (robotium.org). Gibt es diesbezüglich „Best Practices“?
Mathias Conradt
Können Sie den Trace in Echtzeit anzeigen, ohne die Datei kopieren zu müssen?
AlikElzin-Kilaka
Größe von myapp.trace ist 0. Warum?
CooL i3oY
1
Der erwähnte Link war tot. Aktualisiert: developer.android.com/studio/profile/traceview.html
Shailendra Madda
6

Auch theoretisch , DDMS können Speicherzuordnungen für das Programm bekommen und dann können Sie den Dump mit Profilometer analysieren. DDMS-Referenz.
Der Grund, warum ich theoretisch kursiv geschrieben habe, ist, dass ich selbst noch nicht versucht habe, so etwas zu tun.

Samuh
quelle
1
⚠️ Dalvik Debug Monitor Server (DDMS) - Dieses Tool ist veraltet. —— developer.android.com/studio/profile/monitor
Pang
3

Ich denke, traceView enthält zu viele Informationen, Sie können leicht verloren gehen.

Meine Lösung besteht darin, die Systemzeit an drei Stellen im Code zu protokollieren.

Vorher und nachher und zentrieren Sie sich auf den potenziellen langsamen Code.

Wie bei der binären Suche können Sie sie beim nächsten Mal Schritt für Schritt eingrenzen und schließlich den Tätercode finden.

coocood
quelle
0

Eine andere Möglichkeit zum Testen ist die Verwendung von TruClient unter Load Runner

Für Mobile Web sind folgende Schritte zu befolgen:

  1. Neues VuGen-Skript
  2. Mobiles Protokoll
  3. Wählen Sie TruClient Mobile Web
  4. Klicken Sie auf Erstellen
  5. Jetzt können Sie Skripte generieren
  6. Klicken Sie auf die Schaltfläche Skript entwickeln
  7. Das PoP-Up-Fenster wird angezeigt, um das Gerät auszuwählen
  8. Wählen Sie Aktionen und Sie können die Skripte aufzeichnen

Für Native Mobile sind folgende Schritte zu befolgen:

  1. Neues VuGen-Skript
  2. Mobiles Protokoll
  3. Wählen Sie TruClient Native Mobile
  4. Klicken Sie auf Erstellen
  5. Jetzt können Sie Skripte generieren
  6. Klicken Sie auf Skript entwickeln
  7. Das mit Firefox verbundene TruClient-Fenster wird angezeigt
  8. Klicken Sie auf Allgemeine Einstellungen
  9. Konfigurieren Sie den SERVER URL PORT
  10. Wenn Sie den Server-URL-Port nicht kennen, müssen Sie die OS MONITOR-Anwendung auf Ihrem Gerät installieren. Hier finden Sie die IP-Adresse
  11. Geben Sie Benutzername und Passwort ein
  12. Klicken Sie auf Fertig

Sie können die Skripte aufzeichnen und Ihre Tests durchführen ....

Paarthiban NK
quelle
0

Sie können Load Runner verwenden.,

Verwenden Sie diesen Link, um mehr darüber zu erfahren.,

http://www.perftesting.co.uk/recording-and-performance-testing-android-applications-with-hp-loadrunner-vugen/2011/11/14/

Folgende Schritte sind zu befolgen:

  1. Neues VuGen-Skript erstellen
  2. Wählen Sie Mobile Application-HTTP / HTML
  3. Aufnahmeoptionen -> Wählen Sie Record Emulator
  4. Geben Sie den Pfad zu Record Emulator als D: \ android \ AVD Manager.exe an
  5. In der Befehlszeile -avd AVD_NAME -netspeed full -netdelay keine wobei AVD_Name der Name Ihres Geräts ist
  6. Wählen Sie das Arbeitsverzeichnis
  7. Klicken Sie auf Fertig stellen

Jetzt können Sie Ihren Test durchführen.,

Paarthiban NK
quelle